; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35215.0 include listing.inc INCLUDELIB MSVCRTD INCLUDELIB OLDNAMES msvcjmc SEGMENT __8C83BECC_concurrencysal@h DB 01H __608E3340_sal@h DB 01H __FB67E29A_vadefs@h DB 01H __1D1B619C_vcruntime@h DB 01H __735960E1_corecrt@h DB 01H __60B45B40_corecrt_stdio_config@h DB 01H __CFA3741E_corecrt_wstdio@h DB 01H __B3FE3303_stdio@h DB 01H __211DB995_corecrt_malloc@h DB 01H __955456CD_stddef@h DB 01H __99AED4FB_corecrt_search@h DB 01H __8B813BF6_corecrt_wstdlib@h DB 01H __3D1CA2C3_limits@h DB 01H __E8FB0A68_stdlib@h DB 01H __C363A436_stb_image@h DB 01H __B7B53233_stdarg@h DB 01H __13DE2371_errno@h DB 01H __8C6AE390_vcruntime_string@h DB 01H __8ACB2152_corecrt_memcpy_s@h DB 01H __EA6C9D17_corecrt_memory@h DB 01H __0DF2AF52_corecrt_wstring@h DB 01H __6E889ECC_string@h DB 01H __1D9A7FA2_corecrt_math@h DB 01H __2E93F1C0_math@h DB 01H __9FB25DBE_assert@h DB 01H __5C8CA4D3_mmintrin@h DB 01H __7CD62D9E_malloc@h DB 01H __9DCE0DC8_xmmintrin@h DB 01H __F8AC8404_emmintrin@h DB 01H __47E843D2_intrin0@inl@h DB 01H __130964FF_setjmp@h DB 01H __270DEC8D_pmmintrin@h DB 01H __97D49F0F_tmmintrin@h DB 01H __BEEF8A8C_smmintrin@h DB 01H __DB8D0340_nmmintrin@h DB 01H __0E36F90E_wmmintrin@h DB 01H __C5A2B409_zmmintrin@h DB 01H __F2B616C3_immintrin@h DB 01H __4875F786_ammintrin@h DB 01H __353FD888_intrin@h DB 01H __1ACDCF28_stb_image@c DB 01H msvcjmc ENDS CONST SEGMENT stbi__bmask DD 00H DD 01H DD 03H DD 07H DD 0fH DD 01fH DD 03fH DD 07fH DD 0ffH DD 01ffH DD 03ffH DD 07ffH DD 0fffH DD 01fffH DD 03fffH DD 07fffH DD 0ffffH ?rgb@?5??stbi__process_frame_header@@9@9 DB 052H ; `stbi__process_frame_header'::`6'::rgb DB 047H DB 042H ORG $+9 stbi__jbias DD 00H DD 0ffffffffH DD 0fffffffdH DD 0fffffff9H DD 0fffffff1H DD 0ffffffe1H DD 0ffffffc1H DD 0ffffff81H DD 0ffffff01H DD 0fffffe01H DD 0fffffc01H DD 0fffff801H DD 0fffff001H DD 0ffffe001H DD 0ffffc001H DD 0ffff8001H stbi__jpeg_dezigzag DB 00H DB 01H DB 08H DB 010H DB 09H DB 02H DB 03H DB 0aH DB 011H DB 018H DB 020H DB 019H DB 012H DB 0bH DB 04H DB 05H DB 0cH DB 013H DB 01aH DB 021H DB 028H DB 030H DB 029H DB 022H DB 01bH DB 014H DB 0dH DB 06H DB 07H DB 0eH DB 015H DB 01cH DB 023H DB 02aH DB 031H DB 038H DB 039H DB 032H DB 02bH DB 024H DB 01dH DB 016H DB 0fH DB 017H DB 01eH DB 025H DB 02cH DB 033H DB 03aH DB 03bH DB 034H DB 02dH DB 026H DB 01fH DB 027H DB 02eH DB 035H DB 03cH DB 03dH DB 036H DB 02fH DB 037H DB 03eH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH DB 03fH ORG $+1 ?tag@?O@??stbi__process_marker@@9@9 DB 04aH ; `stbi__process_marker'::`14'::tag DB 046H DB 049H DB 046H DB 00H ORG $+3 ?tag@?BA@??stbi__process_marker@@9@9 DB 041H ; `stbi__process_marker'::`16'::tag DB 064H DB 06fH DB 062H DB 065H DB 00H ORG $+2 stbi__zlength_base DD 03H DD 04H DD 05H DD 06H DD 07H DD 08H DD 09H DD 0aH DD 0bH DD 0dH DD 0fH DD 011H DD 013H DD 017H DD 01bH DD 01fH DD 023H DD 02bH DD 033H DD 03bH DD 043H DD 053H DD 063H DD 073H DD 083H DD 0a3H DD 0c3H DD 0e3H DD 0102H DD 00H DD 00H ORG $+4 stbi__zlength_extra DD 00H DD 00H DD 00H DD 00H DD 00H DD 00H DD 00H DD 00H DD 01H DD 01H DD 01H DD 01H DD 02H DD 02H DD 02H DD 02H DD 03H DD 03H DD 03H DD 03H DD 04H DD 04H DD 04H DD 04H DD 05H DD 05H DD 05H DD 05H DD 00H DD 00H DD 00H ORG $+4 stbi__zdist_base DD 01H DD 02H DD 03H DD 04H DD 05H DD 07H DD 09H DD 0dH DD 011H DD 019H DD 021H DD 031H DD 041H DD 061H DD 081H DD 0c1H DD 0101H DD 0181H DD 0201H DD 0301H DD 0401H DD 0601H DD 0801H DD 0c01H DD 01001H DD 01801H DD 02001H DD 03001H DD 04001H DD 06001H DD 00H DD 00H stbi__zdist_extra DD 00H DD 00H DD 00H DD 00H DD 01H DD 01H DD 02H DD 02H DD 03H DD 03H DD 04H DD 04H DD 05H DD 05H DD 06H DD 06H DD 07H DD 07H DD 08H DD 08H DD 09H DD 09H DD 0aH DD 0aH DD 0bH DD 0bH DD 0cH DD 0cH DD 0dH DD 0dH ORG $+8 ?length_dezigzag@?1??stbi__compute_huffman_codes@@9@9 DB 010H ; `stbi__compute_huffman_codes'::`2'::length_dezigzag DB 011H DB 012H DB 00H DB 08H DB 07H DB 09H DB 06H DB 0aH DB 05H DB 0bH DB 04H DB 0cH DB 03H DB 0dH DB 02H DB 0eH DB 01H DB 0fH ORG $+13 stbi__zdefault_length DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 09H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 07H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H DB 08H stbi__zdefault_distance DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H DB 05H ?png_sig@?1??stbi__check_png_header@@9@9 DB 089H ; `stbi__check_png_header'::`2'::png_sig DB 050H DB 04eH DB 047H DB 0dH DB 0aH DB 01aH DB 0aH stbi__depth_scale_table DB 00H DB 0ffH DB 055H DB 00H DB 011H DB 00H DB 00H DB 00H DB 01H CONST ENDS PUBLIC stbi_load_from_memory PUBLIC stbi_load_from_callbacks PUBLIC stbi_load PUBLIC stbi_load_to_target PUBLIC stbi_load_from_file PUBLIC stbi_load_gif_from_memory PUBLIC stbi_load_16_from_memory PUBLIC stbi_load_16_from_callbacks PUBLIC stbi_load_16 PUBLIC stbi_load_from_file_16 PUBLIC stbi_loadf_from_memory PUBLIC stbi_loadf_from_callbacks PUBLIC stbi_loadf PUBLIC stbi_loadf_from_file PUBLIC stbi_hdr_to_ldr_gamma PUBLIC stbi_hdr_to_ldr_scale PUBLIC stbi_ldr_to_hdr_gamma PUBLIC stbi_ldr_to_hdr_scale PUBLIC stbi_is_hdr_from_callbacks PUBLIC stbi_is_hdr_from_memory PUBLIC stbi_is_hdr PUBLIC stbi_is_hdr_from_file PUBLIC stbi_failure_reason PUBLIC stbi_image_free PUBLIC stbi_info_from_memory PUBLIC stbi_info_from_callbacks PUBLIC stbi_is_16_bit_from_memory PUBLIC stbi_is_16_bit_from_callbacks PUBLIC stbi_info PUBLIC stbi_info_from_file PUBLIC stbi_is_16_bit PUBLIC stbi_is_16_bit_from_file PUBLIC stbi_set_unpremultiply_on_load PUBLIC stbi_convert_iphone_png_to_rgb PUBLIC stbi_set_flip_vertically_on_load PUBLIC stbi_set_unpremultiply_on_load_thread PUBLIC stbi_convert_iphone_png_to_rgb_thread PUBLIC stbi_set_flip_vertically_on_load_thread PUBLIC stbi_zlib_decode_malloc_guesssize PUBLIC stbi_zlib_decode_malloc_guesssize_headerflag PUBLIC stbi_zlib_decode_malloc PUBLIC stbi_zlib_decode_buffer PUBLIC stbi_zlib_decode_noheader_malloc PUBLIC stbi_zlib_decode_noheader_buffer PUBLIC __JustMyCode_Default PUBLIC ??_C@_0BD@CBEDEJPH@unknown?5image?5type@ ; `string' PUBLIC ??_C@_08NOGIMCHF@outofmem@ ; `string' PUBLIC ??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ ; `string' PUBLIC ??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ ; `string' PUBLIC ??_C@_02JDPG@rb@ ; `string' PUBLIC ??_C@_0M@JPDHFAGK@can?8t?5fopen@ ; `string' PUBLIC ??_C@_0CB@DDANHPKI@can?8t?5fopen?0?5Unable?5to?5open?5fil@ ; `string' PUBLIC ??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ ; `string' PUBLIC ??_C@_13COJANIEC@?$AA0@ ; `string' PUBLIC ??_C@_0M@MHDBFHD@unsupported@ ; `string' PUBLIC ??_C@_0O@DEFOLMLB@bad?5size?5list@ ; `string' PUBLIC ??_C@_0BB@FOKGPEKG@bad?5code?5lengths@ ; `string' PUBLIC ??_C@_1KE@JGKPJEBO@?$AA?$CI?$AA?$CI?$AA?$CI?$AAj?$AA?9?$AA?$DO?$AAc?$AAo?$AAd?$AAe?$AA_?$AAb?$AAu?$AAf?$AAf@ ; `string' PUBLIC ??_C@_0BB@IIMLINA@bad?5huffman?5code@ ; `string' PUBLIC ??_C@_09IFDKCGFO@bad?5delta@ ; `string' PUBLIC ??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ ; `string' PUBLIC ??_C@_0BA@KLNDOKJD@expected?5marker@ ; `string' PUBLIC ??_C@_0M@LPHNODCG@bad?5DRI?5len@ ; `string' PUBLIC ??_C@_0N@BOFJCHAP@bad?5DQT?5type@ ; `string' PUBLIC ??_C@_0O@CNHKKDIM@bad?5DQT?5table@ ; `string' PUBLIC ??_C@_0P@JLGKOCGN@bad?5DHT?5header@ ; `string' PUBLIC ??_C@_0M@CICAFFCH@bad?5COM?5len@ ; `string' PUBLIC ??_C@_0M@EENLKPDI@bad?5APP?5len@ ; `string' PUBLIC ??_C@_0P@NNGPHMMK@unknown?5marker@ ; `string' PUBLIC ??_C@_0BI@DHFJCMBA@bad?5SOS?5component?5count@ ; `string' PUBLIC ??_C@_0M@GNEHAHOH@bad?5SOS?5len@ ; `string' PUBLIC ??_C@_0M@NOCCBFAC@bad?5DC?5huff@ ; `string' PUBLIC ??_C@_0M@JGMCBLGG@bad?5AC?5huff@ ; `string' PUBLIC ??_C@_07EEJOMGGP@bad?5SOS@ ; `string' PUBLIC ??_C@_0M@DOFMJEMP@bad?5SOF?5len@ ; `string' PUBLIC ??_C@_0L@BCINMEBJ@only?58?9bit@ ; `string' PUBLIC ??_C@_0BB@LNEGOMA@no?5header?5height@ ; `string' PUBLIC ??_C@_07BIDACDEF@0?5width@ ; `string' PUBLIC ??_C@_09OJDLMMBJ@too?5large@ ; `string' PUBLIC ??_C@_0BE@DAPHADHL@bad?5component?5count@ ; `string' PUBLIC ??_C@_05BLPKENEJ@bad?5H@ ; `string' PUBLIC ??_C@_05MPLLHCJG@bad?5V@ ; `string' PUBLIC ??_C@_06LJIHDFHI@bad?5TQ@ ; `string' PUBLIC ??_C@_06CLMBLEP@no?5SOI@ ; `string' PUBLIC ??_C@_06IFCEAHIA@no?5SOF@ ; `string' PUBLIC ??_C@_0M@EPMOIECP@bad?5DNL?5len@ ; `string' PUBLIC ??_C@_0P@PNCLKCLJ@bad?5DNL?5height@ ; `string' PUBLIC ??_C@_0N@KBPNPPBJ@bad?5req_comp@ ; `string' PUBLIC ??_C@_1BG@HKNLHECB@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DM?$AA?$DN?$AA?5?$AA1?$AA6@ ; `string' PUBLIC ??_C@_09EOHLEIKL@bad?5sizes@ ; `string' PUBLIC ??_C@_0BA@MDNKOBMC@bad?5codelengths@ ; `string' PUBLIC ??_C@_0BE@IBFIPFO@output?5buffer?5limit@ ; `string' PUBLIC ??_C@_08DIAPIMGJ@bad?5dist@ ; `string' PUBLIC ??_C@_0N@IECDHMDI@zlib?5corrupt@ ; `string' PUBLIC ??_C@_0BB@PIPBCKIA@read?5past?5buffer@ ; `string' PUBLIC ??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ ; `string' PUBLIC ??_C@_0P@DOGMHEBI@no?5preset?5dict@ ; `string' PUBLIC ??_C@_0BA@MCNBDLPD@bad?5compression@ ; `string' PUBLIC ??_C@_0M@DMDNBACF@bad?5png?5sig@ ; `string' PUBLIC ??_C@_1FG@LGPEHEPM@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg@ ; `string' PUBLIC ??_C@_0BC@BHMPBBMG@not?5enough?5pixels@ ; `string' PUBLIC ??_C@_0P@FBBCPGMN@invalid?5filter@ ; `string' PUBLIC ??_C@_0O@MKGNGALN@invalid?5width@ ; `string' PUBLIC ??_C@_1CG@MFAHHIFB@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$CL?$AA?5?$AA1?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAo?$AAu@ ; `string' PUBLIC ??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ ; `string' PUBLIC ??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ ; `string' PUBLIC ??_C@_1CE@GKIDJEJM@?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg?$AA_?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN@ ; `string' PUBLIC ??_C@_0O@KBHBNJOK@multiple?5IHDR@ ; `string' PUBLIC ??_C@_0N@POJLKMKK@bad?5IHDR?5len@ ; `string' PUBLIC ??_C@_0BE@EJHIPKNO@1?12?14?18?116?9bit?5only@ ; `string' PUBLIC ??_C@_09MBBNGCKB@bad?5ctype@ ; `string' PUBLIC ??_C@_0BA@MDMBDDFG@bad?5comp?5method@ ; `string' PUBLIC ??_C@_0BC@GHLIKKMD@bad?5filter?5method@ ; `string' PUBLIC ??_C@_0BF@JCGDPBAA@bad?5interlace?5method@ ; `string' PUBLIC ??_C@_0O@FNFBHCOO@0?9pixel?5image@ ; `string' PUBLIC ??_C@_0P@JEAFOMAF@first?5not?5IHDR@ ; `string' PUBLIC ??_C@_0N@JCPAJAKB@invalid?5PLTE@ ; `string' PUBLIC ??_C@_0BA@PCPJHDKJ@tRNS?5after?5IDAT@ ; `string' PUBLIC ??_C@_0BB@CEDNNLBG@tRNS?5before?5PLTE@ ; `string' PUBLIC ??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ ; `string' PUBLIC ??_C@_0BA@ENDPGCHB@tRNS?5with?5alpha@ ; `string' PUBLIC ??_C@_07CKIELOEH@no?5PLTE@ ; `string' PUBLIC ??_C@_0BA@PLHGLONG@IDAT?5size?5limit@ ; `string' PUBLIC ??_C@_09MNNCNKEO@outofdata@ ; `string' PUBLIC ??_C@_07MLPECBNA@no?5IDAT@ ; `string' PUBLIC ??_C@_0BF@NOEEEFMF@bad?5bits_per_channel@ ; `string' PUBLIC ??_C@_1BA@EKLGALLJ@?$AAv?$AA?5?$AA?$DM?$AA?5?$AA2?$AA5?$AA6@ ; `string' PUBLIC ??_C@_1CO@LIFEKNEP@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA0?$AA?5?$AA?$CG?$AA?$CG?$AA?5?$AAb?$AAi@ ; `string' PUBLIC ??_C@_07IANEBNLB@not?5BMP@ ; `string' PUBLIC ??_C@_07IEJCHBDI@bad?5BMP@ ; `string' PUBLIC ??_C@_0M@KHBIBJBG@unknown?5BMP@ ; `string' PUBLIC ??_C@_07IMHMNOIB@BMP?5RLE@ ; `string' PUBLIC ??_C@_0N@ODCBCBFN@BMP?5JPEG?1PNG@ ; `string' PUBLIC ??_C@_0L@PJHPAMCH@bad?5header@ ; `string' PUBLIC ??_C@_0L@JDPIFELH@bad?5offset@ ; `string' PUBLIC ??_C@_07MALOAKCI@invalid@ ; `string' PUBLIC ??_C@_07JNJHIMGH@bad?5bpp@ ; `string' PUBLIC ??_C@_09DAEBACAB@bad?5masks@ ; `string' PUBLIC ??_C@_0L@DMAPJJO@bad?5format@ ; `string' PUBLIC ??_C@_0M@ILLOCNCO@bad?5palette@ ; `string' PUBLIC ??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ ; `string' PUBLIC ??_C@_07ECNCNLIK@not?5PSD@ ; `string' PUBLIC ??_C@_0O@CHBCDKKC@wrong?5version@ ; `string' PUBLIC ??_C@_0BE@PJBNGDBE@wrong?5channel?5count@ ; `string' PUBLIC ??_C@_0BG@NOLDLPP@unsupported?5bit?5depth@ ; `string' PUBLIC ??_C@_0BD@IOGGBMNK@wrong?5color?5format@ ; `string' PUBLIC ??_C@_07DPPMCAKL@corrupt@ ; `string' PUBLIC ??_C@_04KBFEPHFH@S?$IA?v4@ ; `string' PUBLIC ??_C@_04ELNJHLFH@PICT@ ; `string' PUBLIC ??_C@_08GGMBIFE@bad?5file@ ; `string' PUBLIC ??_C@_07KMJLPAII@not?5GIF@ ; `string' PUBLIC ??_C@_00CNPNBAHC@@ ; `string' PUBLIC ??_C@_0O@MGDACKOJ@no?5clear?5code@ ; `string' PUBLIC ??_C@_0P@GJNJCPDJ@too?5many?5codes@ ; `string' PUBLIC ??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ ; `string' PUBLIC ??_C@_0BF@GIAALCNJ@bad?5Image?5Descriptor@ ; `string' PUBLIC ??_C@_0BE@NAMJKDNF@missing?5color?5table@ ; `string' PUBLIC ??_C@_0N@DJABBOOH@unknown?5code@ ; `string' PUBLIC ??_C@_0M@HOIDFNFN@?$CD?$DPRADIANCE?6@ ; `string' PUBLIC ??_C@_07KFDJIKCK@?$CD?$DPRGBE?6@ ; `string' PUBLIC ??_C@_0L@NCPEAJBD@?$CD?$DPRADIANCE@ ; `string' PUBLIC ??_C@_06NDOKKIDJ@?$CD?$DPRGBE@ ; `string' PUBLIC ??_C@_07NCIOKENI@not?5HDR@ ; `string' PUBLIC ??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ ; `string' PUBLIC ??_C@_0BD@NKJFFLKL@unsupported?5format@ ; `string' PUBLIC ??_C@_03HKAKGGJN@?9Y?5@ ; `string' PUBLIC ??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ ; `string' PUBLIC ??_C@_03FOKDFDHG@?$CLX?5@ ; `string' PUBLIC ??_C@_0CA@JBEOCDFN@invalid?5decoded?5scanline?5length@ ; `string' PUBLIC ??_C@_07IDKIDMGJ@bad?5PNM@ ; `string' PUBLIC ??_C@_0BH@OBINMOBC@integer?5parse?5overflow@ ; `string' PUBLIC ??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ ; `string' PUBLIC __real@3f000000 PUBLIC __real@3f800000 PUBLIC __real@3ff0000000000000 PUBLIC __real@40400000 PUBLIC __real@437f0000 PUBLIC __real@477fff00 PUBLIC __xmm@00000200000002000000020000000200 PUBLIC __xmm@00080008000800080008000800080008 PUBLIC __xmm@00ff00ff00ff00ff00ff00ff00ff00ff PUBLIC __xmm@01010000010100000101000001010000 PUBLIC __xmm@08a914e808a914e808a914e808a914e8 PUBLIC __xmm@11c8e09e11c8e09e11c8e09e11c8e09e PUBLIC __xmm@11c8f9c311c8f9c311c8f9c311c8f9c3 PUBLIC __xmm@12d0046b12d0046b12d0046b12d0046b PUBLIC __xmm@166f166f166f166f166f166f166f166f PUBLIC __xmm@1c5a1c5a1c5a1c5a1c5a1c5a1c5a1c5a PUBLIC __xmm@80808080808080808080808080808080 PUBLIC __xmm@e09ee565e09ee565e09ee565e09ee565 PUBLIC __xmm@e9cf12d0e9cf12d0e9cf12d0e9cf12d0 PUBLIC __xmm@eb1a08a9eb1a08a9eb1a08a9eb1a08a9 PUBLIC __xmm@f493f493f493f493f493f493f493f493 PUBLIC __xmm@f9c31a9df9c31a9df9c31a9df9c31a9d PUBLIC __xmm@fa7efa7efa7efa7efa7efa7efa7efa7e EXTRN __imp_fopen_s:PROC EXTRN __imp_fclose:PROC EXTRN __imp_feof:PROC EXTRN __imp_ferror:PROC EXTRN __imp_fgetc:PROC EXTRN __imp_fread:PROC EXTRN __imp_fseek:PROC EXTRN __imp_ftell:PROC EXTRN __imp_ungetc:PROC EXTRN __imp_free:PROC EXTRN __imp_malloc:PROC EXTRN __imp_realloc:PROC EXTRN abs:PROC EXTRN _lrotl:PROC EXTRN __imp_strtol:PROC EXTRN memcpy:PROC EXTRN memset:PROC EXTRN strcmp:PROC EXTRN __imp_strncmp:PROC EXTRN pow:PROC EXTRN __imp_ldexp:PROC EXTRN __imp__wassert:PROC EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC EXTRN __GSHandlerCheck:PROC EXTRN __chkstk:PROC EXTRN __security_check_cookie:PROC EXTRN __ImageBase:BYTE EXTRN __security_cookie:QWORD EXTRN _fltused:DWORD EXTRN _tls_index:DWORD _TLS SEGMENT stbi__g_failure_reason DQ 01H DUP (?) _TLS ENDS _BSS SEGMENT stbi__vertically_flip_on_load_global DD 01H DUP (?) _BSS ENDS _TLS SEGMENT stbi__vertically_flip_on_load_local DD 01H DUP (?) stbi__vertically_flip_on_load_set DD 01H DUP (?) _TLS ENDS _BSS SEGMENT stbi__unpremultiply_on_load_global DD 01H DUP (?) stbi__de_iphone_flag_global DD 01H DUP (?) _BSS ENDS _TLS SEGMENT stbi__unpremultiply_on_load_local DD 01H DUP (?) stbi__unpremultiply_on_load_set DD 01H DUP (?) stbi__de_iphone_flag_local DD 01H DUP (?) stbi__de_iphone_flag_set DD 01H DUP (?) _TLS ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_from_memory DD imagerel $LN3 DD imagerel $LN3+199 DD imagerel $unwind$stbi_load_from_memory pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_from_callbacks DD imagerel $LN3 DD imagerel $LN3+200 DD imagerel $unwind$stbi_load_from_callbacks pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load DD imagerel $LN6 DD imagerel $LN6+195 DD imagerel $unwind$stbi_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_to_target DD imagerel $LN4 DD imagerel $LN4+160 DD imagerel $unwind$stbi_load_to_target pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_from_file DD imagerel $LN4 DD imagerel $LN4+252 DD imagerel $unwind$stbi_load_from_file pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_gif_from_memory DD imagerel $LN6 DD imagerel $LN6+373 DD imagerel $unwind$stbi_load_gif_from_memory pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_16_from_memory DD imagerel $LN3 DD imagerel $LN3+199 DD imagerel $unwind$stbi_load_16_from_memory pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_16_from_callbacks DD imagerel $LN3 DD imagerel $LN3+200 DD imagerel $unwind$stbi_load_16_from_callbacks pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_16 DD imagerel $LN6 DD imagerel $LN6+195 DD imagerel $unwind$stbi_load_16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_load_from_file_16 DD imagerel $LN4 DD imagerel $LN4+252 DD imagerel $unwind$stbi_load_from_file_16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_loadf_from_memory DD imagerel $LN3 DD imagerel $LN3+199 DD imagerel $unwind$stbi_loadf_from_memory pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_loadf_from_callbacks DD imagerel $LN3 DD imagerel $LN3+200 DD imagerel $unwind$stbi_loadf_from_callbacks pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_loadf DD imagerel $LN6 DD imagerel $LN6+195 DD imagerel $unwind$stbi_loadf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_loadf_from_file DD imagerel $LN3 DD imagerel $LN3+193 DD imagerel $unwind$stbi_loadf_from_file pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_hdr_to_ldr_gamma DD imagerel $LN3 DD imagerel $LN3+67 DD imagerel $unwind$stbi_hdr_to_ldr_gamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_hdr_to_ldr_scale DD imagerel $LN3 DD imagerel $LN3+67 DD imagerel $unwind$stbi_hdr_to_ldr_scale pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_ldr_to_hdr_gamma DD imagerel $LN3 DD imagerel $LN3+59 DD imagerel $unwind$stbi_ldr_to_hdr_gamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_ldr_to_hdr_scale DD imagerel $LN3 DD imagerel $LN3+59 DD imagerel $unwind$stbi_ldr_to_hdr_scale pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_is_hdr_from_callbacks DD imagerel $LN3 DD imagerel $LN3+159 DD imagerel $unwind$stbi_is_hdr_from_callbacks pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_is_hdr_from_memory DD imagerel $LN3 DD imagerel $LN3+158 DD imagerel $unwind$stbi_is_hdr_from_memory pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_is_hdr DD imagerel $LN4 DD imagerel $LN4+105 DD imagerel $unwind$stbi_is_hdr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_is_hdr_from_file DD imagerel $LN3 DD imagerel $LN3+187 DD imagerel $unwind$stbi_is_hdr_from_file pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_failure_reason DD imagerel $LN3 DD imagerel $LN3+68 DD imagerel $unwind$stbi_failure_reason pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_image_free DD imagerel $LN3 DD imagerel $LN3+56 DD imagerel $unwind$stbi_image_free pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_info_from_memory DD imagerel $LN3 DD imagerel $LN3+189 DD imagerel $unwind$stbi_info_from_memory pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_info_from_callbacks DD imagerel $LN3 DD imagerel $LN3+190 DD imagerel $unwind$stbi_info_from_callbacks pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_is_16_bit_from_memory DD imagerel $LN3 DD imagerel $LN3+158 DD imagerel $unwind$stbi_is_16_bit_from_memory pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_is_16_bit_from_callbacks DD imagerel $LN3 DD imagerel $LN3+159 DD imagerel $unwind$stbi_is_16_bit_from_callbacks pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_info DD imagerel $LN4 DD imagerel $LN4+148 DD imagerel $unwind$stbi_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_info_from_file DD imagerel $LN3 DD imagerel $LN3+229 DD imagerel $unwind$stbi_info_from_file pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_is_16_bit DD imagerel $LN4 DD imagerel $LN4+112 DD imagerel $unwind$stbi_is_16_bit pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_is_16_bit_from_file DD imagerel $LN3 DD imagerel $LN3+193 DD imagerel $unwind$stbi_is_16_bit_from_file pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_set_unpremultiply_on_load DD imagerel $LN3 DD imagerel $LN3+53 DD imagerel $unwind$stbi_set_unpremultiply_on_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_convert_iphone_png_to_rgb DD imagerel $LN3 DD imagerel $LN3+53 DD imagerel $unwind$stbi_convert_iphone_png_to_rgb pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_set_flip_vertically_on_load DD imagerel $LN3 DD imagerel $LN3+53 DD imagerel $unwind$stbi_set_flip_vertically_on_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_set_unpremultiply_on_load_thread DD imagerel $LN3 DD imagerel $LN3+109 DD imagerel $unwind$stbi_set_unpremultiply_on_load_thread pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_convert_iphone_png_to_rgb_thread DD imagerel $LN3 DD imagerel $LN3+109 DD imagerel $unwind$stbi_convert_iphone_png_to_rgb_thread pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_set_flip_vertically_on_load_thread DD imagerel $LN3 DD imagerel $LN3+109 DD imagerel $unwind$stbi_set_flip_vertically_on_load_thread pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_zlib_decode_malloc_guesssize DD imagerel $LN7 DD imagerel $LN7+310 DD imagerel $unwind$stbi_zlib_decode_malloc_guesssize pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_zlib_decode_malloc_guesssize_headerflag DD imagerel $LN7 DD imagerel $LN7+312 DD imagerel $unwind$stbi_zlib_decode_malloc_guesssize_headerflag pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_zlib_decode_malloc DD imagerel $LN3 DD imagerel $LN3+82 DD imagerel $unwind$stbi_zlib_decode_malloc pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_zlib_decode_buffer DD imagerel $LN5 DD imagerel $LN5+237 DD imagerel $unwind$stbi_zlib_decode_buffer pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_zlib_decode_noheader_malloc DD imagerel $LN7 DD imagerel $LN7+299 DD imagerel $unwind$stbi_zlib_decode_noheader_malloc pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi_zlib_decode_noheader_buffer DD imagerel $LN5 DD imagerel $LN5+237 DD imagerel $unwind$stbi_zlib_decode_noheader_buffer pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__cpuid3 DD imagerel stbi__cpuid3 DD imagerel stbi__cpuid3+150 DD imagerel $unwind$stbi__cpuid3 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__sse2_available DD imagerel stbi__sse2_available DD imagerel stbi__sse2_available+87 DD imagerel $unwind$stbi__sse2_available pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__refill_buffer DD imagerel stbi__refill_buffer DD imagerel stbi__refill_buffer+292 DD imagerel $unwind$stbi__refill_buffer pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__start_mem DD imagerel stbi__start_mem DD imagerel stbi__start_mem+206 DD imagerel $unwind$stbi__start_mem pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__start_callbacks DD imagerel stbi__start_callbacks DD imagerel stbi__start_callbacks+243 DD imagerel $unwind$stbi__start_callbacks pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__stdio_read DD imagerel stbi__stdio_read DD imagerel stbi__stdio_read+87 DD imagerel $unwind$stbi__stdio_read pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__stdio_skip DD imagerel stbi__stdio_skip DD imagerel stbi__stdio_skip+111 DD imagerel $unwind$stbi__stdio_skip pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__stdio_eof DD imagerel stbi__stdio_eof DD imagerel stbi__stdio_eof+104 DD imagerel $unwind$stbi__stdio_eof pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__start_file DD imagerel stbi__start_file DD imagerel stbi__start_file+74 DD imagerel $unwind$stbi__start_file pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__rewind DD imagerel stbi__rewind DD imagerel stbi__rewind+98 DD imagerel $unwind$stbi__rewind pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_test DD imagerel stbi__jpeg_test DD imagerel stbi__jpeg_test+163 DD imagerel $unwind$stbi__jpeg_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_load DD imagerel stbi__jpeg_load DD imagerel stbi__jpeg_load+228 DD imagerel $unwind$stbi__jpeg_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_info DD imagerel stbi__jpeg_info DD imagerel stbi__jpeg_info+171 DD imagerel $unwind$stbi__jpeg_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__png_test DD imagerel stbi__png_test DD imagerel stbi__png_test+73 DD imagerel $unwind$stbi__png_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__png_load DD imagerel stbi__png_load DD imagerel stbi__png_load+199 DD imagerel $unwind$stbi__png_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__png_info DD imagerel stbi__png_info DD imagerel stbi__png_info+177 DD imagerel $unwind$stbi__png_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__png_is16 DD imagerel stbi__png_is16 DD imagerel stbi__png_is16+182 DD imagerel $unwind$stbi__png_is16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bmp_test DD imagerel stbi__bmp_test DD imagerel stbi__bmp_test+73 DD imagerel $unwind$stbi__bmp_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bmp_load DD imagerel stbi__bmp_load DD imagerel stbi__bmp_load+4929 DD imagerel $unwind$stbi__bmp_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bmp_info DD imagerel stbi__bmp_info DD imagerel stbi__bmp_info+335 DD imagerel $unwind$stbi__bmp_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__tga_test DD imagerel stbi__tga_test DD imagerel stbi__tga_test+401 DD imagerel $unwind$stbi__tga_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__tga_load DD imagerel stbi__tga_load DD imagerel stbi__tga_load+3012 DD imagerel $unwind$stbi__tga_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__tga_info DD imagerel stbi__tga_info DD imagerel stbi__tga_info+726 DD imagerel $unwind$stbi__tga_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__psd_test DD imagerel stbi__psd_test DD imagerel stbi__psd_test+108 DD imagerel $unwind$stbi__psd_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__psd_load DD imagerel stbi__psd_load DD imagerel stbi__psd_load+3127 DD imagerel $unwind$stbi__psd_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__psd_info DD imagerel stbi__psd_info DD imagerel stbi__psd_info+478 DD imagerel $unwind$stbi__psd_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__psd_is16 DD imagerel stbi__psd_is16 DD imagerel stbi__psd_is16+249 DD imagerel $unwind$stbi__psd_is16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__hdr_test DD imagerel stbi__hdr_test DD imagerel stbi__hdr_test+121 DD imagerel $unwind$stbi__hdr_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__hdr_load DD imagerel stbi__hdr_load DD imagerel stbi__hdr_load+2654 DD imagerel $unwind$stbi__hdr_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__hdr_info DD imagerel stbi__hdr_info DD imagerel stbi__hdr_info+640 DD imagerel $unwind$stbi__hdr_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pic_test DD imagerel stbi__pic_test DD imagerel stbi__pic_test+73 DD imagerel $unwind$stbi__pic_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pic_load DD imagerel stbi__pic_load DD imagerel stbi__pic_load+793 DD imagerel $unwind$stbi__pic_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pic_info DD imagerel stbi__pic_info DD imagerel stbi__pic_info+707 DD imagerel $unwind$stbi__pic_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__gif_test DD imagerel stbi__gif_test DD imagerel stbi__gif_test+73 DD imagerel $unwind$stbi__gif_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__gif_load DD imagerel stbi__gif_load DD imagerel stbi__gif_load+363 DD imagerel $unwind$stbi__gif_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__load_gif_main DD imagerel stbi__load_gif_main DD imagerel stbi__load_gif_main+1131 DD imagerel $unwind$stbi__load_gif_main pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__gif_info DD imagerel stbi__gif_info DD imagerel stbi__gif_info+90 DD imagerel $unwind$stbi__gif_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pnm_test DD imagerel stbi__pnm_test DD imagerel stbi__pnm_test+121 DD imagerel $unwind$stbi__pnm_test pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pnm_load DD imagerel stbi__pnm_load DD imagerel stbi__pnm_load+906 DD imagerel $unwind$stbi__pnm_load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pnm_info DD imagerel stbi__pnm_info DD imagerel stbi__pnm_info+585 DD imagerel $unwind$stbi__pnm_info pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pnm_is16 DD imagerel stbi__pnm_is16 DD imagerel stbi__pnm_is16+76 DD imagerel $unwind$stbi__pnm_is16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__err DD imagerel stbi__err DD imagerel stbi__err+81 DD imagerel $unwind$stbi__err pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__malloc DD imagerel stbi__malloc DD imagerel stbi__malloc+55 DD imagerel $unwind$stbi__malloc pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__addsizes_valid DD imagerel stbi__addsizes_valid DD imagerel stbi__addsizes_valid+105 DD imagerel $unwind$stbi__addsizes_valid pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__mul2sizes_valid DD imagerel stbi__mul2sizes_valid DD imagerel stbi__mul2sizes_valid+131 DD imagerel $unwind$stbi__mul2sizes_valid pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__mad2sizes_valid DD imagerel stbi__mad2sizes_valid DD imagerel stbi__mad2sizes_valid+129 DD imagerel $unwind$stbi__mad2sizes_valid pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__mad3sizes_valid DD imagerel stbi__mad3sizes_valid DD imagerel stbi__mad3sizes_valid+171 DD imagerel $unwind$stbi__mad3sizes_valid pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__mad4sizes_valid DD imagerel stbi__mad4sizes_valid DD imagerel stbi__mad4sizes_valid+215 DD imagerel $unwind$stbi__mad4sizes_valid pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__malloc_mad2 DD imagerel stbi__malloc_mad2 DD imagerel stbi__malloc_mad2+111 DD imagerel $unwind$stbi__malloc_mad2 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__malloc_mad3 DD imagerel stbi__malloc_mad3 DD imagerel stbi__malloc_mad3+130 DD imagerel $unwind$stbi__malloc_mad3 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__malloc_mad4 DD imagerel stbi__malloc_mad4 DD imagerel stbi__malloc_mad4+147 DD imagerel $unwind$stbi__malloc_mad4 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__addints_valid DD imagerel stbi__addints_valid DD imagerel stbi__addints_valid+242 DD imagerel $unwind$stbi__addints_valid pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__mul2shorts_valid DD imagerel stbi__mul2shorts_valid DD imagerel stbi__mul2shorts_valid+376 DD imagerel $unwind$stbi__mul2shorts_valid pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__ldr_to_hdr DD imagerel stbi__ldr_to_hdr DD imagerel stbi__ldr_to_hdr+539 DD imagerel $unwind$stbi__ldr_to_hdr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__hdr_to_ldr DD imagerel stbi__hdr_to_ldr DD imagerel stbi__hdr_to_ldr+647 DD imagerel $unwind$stbi__hdr_to_ldr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__load_main DD imagerel stbi__load_main DD imagerel stbi__load_main+935 DD imagerel $unwind$stbi__load_main pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__convert_16_to_8 DD imagerel stbi__convert_16_to_8 DD imagerel stbi__convert_16_to_8+230 DD imagerel $unwind$stbi__convert_16_to_8 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__convert_8_to_16 DD imagerel stbi__convert_8_to_16 DD imagerel stbi__convert_8_to_16+246 DD imagerel $unwind$stbi__convert_8_to_16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__vertical_flip DD imagerel stbi__vertical_flip DD imagerel stbi__vertical_flip+515 DD imagerel $unwind$stbi__vertical_flip pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__vertical_flip_slices DD imagerel stbi__vertical_flip_slices DD imagerel stbi__vertical_flip_slices+168 DD imagerel $unwind$stbi__vertical_flip_slices pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__load_and_postprocess_8bit DD imagerel stbi__load_and_postprocess_8bit DD imagerel stbi__load_and_postprocess_8bit+518 DD imagerel $unwind$stbi__load_and_postprocess_8bit pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__load_and_postprocess_16bit DD imagerel stbi__load_and_postprocess_16bit DD imagerel stbi__load_and_postprocess_16bit+524 DD imagerel $unwind$stbi__load_and_postprocess_16bit pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__float_postprocess DD imagerel stbi__float_postprocess DD imagerel stbi__float_postprocess+247 DD imagerel $unwind$stbi__float_postprocess pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__fopen DD imagerel stbi__fopen DD imagerel stbi__fopen+166 DD imagerel $unwind$stbi__fopen pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__loadf_main DD imagerel stbi__loadf_main DD imagerel stbi__loadf_main+441 DD imagerel $unwind$stbi__loadf_main pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__get8 DD imagerel stbi__get8 DD imagerel stbi__get8+226 DD imagerel $unwind$stbi__get8 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__at_eof DD imagerel stbi__at_eof DD imagerel stbi__at_eof+163 DD imagerel $unwind$stbi__at_eof pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__skip DD imagerel stbi__skip DD imagerel stbi__skip+263 DD imagerel $unwind$stbi__skip pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__getn DD imagerel stbi__getn DD imagerel stbi__getn+415 DD imagerel $unwind$stbi__getn pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__get16be DD imagerel stbi__get16be DD imagerel stbi__get16be+97 DD imagerel $unwind$stbi__get16be pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__get32be DD imagerel stbi__get32be DD imagerel stbi__get32be+91 DD imagerel $unwind$stbi__get32be pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__get16le DD imagerel stbi__get16le DD imagerel stbi__get16le+85 DD imagerel $unwind$stbi__get16le pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__get32le DD imagerel stbi__get32le DD imagerel stbi__get32le+85 DD imagerel $unwind$stbi__get32le pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__compute_y DD imagerel stbi__compute_y DD imagerel stbi__compute_y+81 DD imagerel $unwind$stbi__compute_y pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__convert_format DD imagerel stbi__convert_format DD imagerel stbi__convert_format+2752 DD imagerel $unwind$stbi__convert_format pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__compute_y_16 DD imagerel stbi__compute_y_16 DD imagerel stbi__compute_y_16+81 DD imagerel $unwind$stbi__compute_y_16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__convert_format16 DD imagerel stbi__convert_format16 DD imagerel stbi__convert_format16+2804 DD imagerel $unwind$stbi__convert_format16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__build_huffman DD imagerel stbi__build_huffman DD imagerel stbi__build_huffman+698 DD imagerel $unwind$stbi__build_huffman pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__build_fast_ac DD imagerel stbi__build_fast_ac DD imagerel stbi__build_fast_ac+440 DD imagerel $unwind$stbi__build_fast_ac pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__grow_buffer_unsafe DD imagerel stbi__grow_buffer_unsafe DD imagerel stbi__grow_buffer_unsafe+314 DD imagerel $unwind$stbi__grow_buffer_unsafe pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_huff_decode DD imagerel stbi__jpeg_huff_decode DD imagerel stbi__jpeg_huff_decode+758 DD imagerel $unwind$stbi__jpeg_huff_decode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__extend_receive DD imagerel stbi__extend_receive DD imagerel stbi__extend_receive+285 DD imagerel $unwind$stbi__extend_receive pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_get_bits DD imagerel stbi__jpeg_get_bits DD imagerel stbi__jpeg_get_bits+238 DD imagerel $unwind$stbi__jpeg_get_bits pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_get_bit DD imagerel stbi__jpeg_get_bit DD imagerel stbi__jpeg_get_bit+171 DD imagerel $unwind$stbi__jpeg_get_bit pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_decode_block DD imagerel stbi__jpeg_decode_block DD imagerel stbi__jpeg_decode_block+987 DD imagerel $unwind$stbi__jpeg_decode_block pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_decode_block_prog_dc DD imagerel stbi__jpeg_decode_block_prog_dc DD imagerel stbi__jpeg_decode_block_prog_dc+593 DD imagerel $unwind$stbi__jpeg_decode_block_prog_dc pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_decode_block_prog_ac DD imagerel stbi__jpeg_decode_block_prog_ac DD imagerel stbi__jpeg_decode_block_prog_ac+1743 DD imagerel $unwind$stbi__jpeg_decode_block_prog_ac pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__clamp DD imagerel stbi__clamp DD imagerel stbi__clamp+89 DD imagerel $unwind$stbi__clamp pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__idct_block DD imagerel stbi__idct_block DD imagerel stbi__idct_block+3189 DD imagerel $unwind$stbi__idct_block pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__idct_simd DD imagerel stbi__idct_simd DD imagerel stbi__idct_simd+5983 DD imagerel $unwind$stbi__idct_simd pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__get_marker DD imagerel stbi__get_marker DD imagerel stbi__get_marker+168 DD imagerel $unwind$stbi__get_marker pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_reset DD imagerel stbi__jpeg_reset DD imagerel stbi__jpeg_reset+298 DD imagerel $unwind$stbi__jpeg_reset pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__parse_entropy_coded_data DD imagerel stbi__parse_entropy_coded_data DD imagerel stbi__parse_entropy_coded_data+3244 DD imagerel $unwind$stbi__parse_entropy_coded_data pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_dequantize DD imagerel stbi__jpeg_dequantize DD imagerel stbi__jpeg_dequantize+120 DD imagerel $unwind$stbi__jpeg_dequantize pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_finish DD imagerel stbi__jpeg_finish DD imagerel stbi__jpeg_finish+495 DD imagerel $unwind$stbi__jpeg_finish pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__process_marker DD imagerel stbi__process_marker DD imagerel stbi__process_marker+1908 DD imagerel $unwind$stbi__process_marker pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__process_scan_header DD imagerel stbi__process_scan_header DD imagerel stbi__process_scan_header+906 DD imagerel $unwind$stbi__process_scan_header pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__free_jpeg_components DD imagerel stbi__free_jpeg_components DD imagerel stbi__free_jpeg_components+397 DD imagerel $unwind$stbi__free_jpeg_components pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__process_frame_header DD imagerel stbi__process_frame_header DD imagerel stbi__process_frame_header+2436 DD imagerel $unwind$stbi__process_frame_header pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__decode_jpeg_header DD imagerel stbi__decode_jpeg_header DD imagerel stbi__decode_jpeg_header+398 DD imagerel $unwind$stbi__decode_jpeg_header pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__skip_jpeg_junk_at_end DD imagerel stbi__skip_jpeg_junk_at_end DD imagerel stbi__skip_jpeg_junk_at_end+167 DD imagerel $unwind$stbi__skip_jpeg_junk_at_end pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__decode_jpeg_image DD imagerel stbi__decode_jpeg_image DD imagerel stbi__decode_jpeg_image+561 DD imagerel $unwind$stbi__decode_jpeg_image pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$resample_row_1 DD imagerel resample_row_1 DD imagerel resample_row_1+64 DD imagerel $unwind$resample_row_1 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__resample_row_v_2 DD imagerel stbi__resample_row_v_2 DD imagerel stbi__resample_row_v_2+148 DD imagerel $unwind$stbi__resample_row_v_2 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__resample_row_h_2 DD imagerel stbi__resample_row_h_2 DD imagerel stbi__resample_row_h_2+522 DD imagerel $unwind$stbi__resample_row_h_2 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__resample_row_hv_2 DD imagerel stbi__resample_row_hv_2 DD imagerel stbi__resample_row_hv_2+444 DD imagerel $unwind$stbi__resample_row_hv_2 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__resample_row_hv_2_simd DD imagerel stbi__resample_row_hv_2_simd DD imagerel stbi__resample_row_hv_2_simd+1193 DD imagerel $unwind$stbi__resample_row_hv_2_simd pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__resample_row_generic DD imagerel stbi__resample_row_generic DD imagerel stbi__resample_row_generic+166 DD imagerel $unwind$stbi__resample_row_generic pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__YCbCr_to_RGB_row DD imagerel stbi__YCbCr_to_RGB_row DD imagerel stbi__YCbCr_to_RGB_row+510 DD imagerel $unwind$stbi__YCbCr_to_RGB_row pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__YCbCr_to_RGB_simd DD imagerel stbi__YCbCr_to_RGB_simd DD imagerel stbi__YCbCr_to_RGB_simd+1391 DD imagerel $unwind$stbi__YCbCr_to_RGB_simd pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__setup_jpeg DD imagerel stbi__setup_jpeg DD imagerel stbi__setup_jpeg+177 DD imagerel $unwind$stbi__setup_jpeg pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__cleanup_jpeg DD imagerel stbi__cleanup_jpeg DD imagerel stbi__cleanup_jpeg+71 DD imagerel $unwind$stbi__cleanup_jpeg pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__blinn_8x8 DD imagerel stbi__blinn_8x8 DD imagerel stbi__blinn_8x8+86 DD imagerel $unwind$stbi__blinn_8x8 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$load_jpeg_image DD imagerel load_jpeg_image DD imagerel load_jpeg_image+4825 DD imagerel $unwind$load_jpeg_image pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__jpeg_info_raw DD imagerel stbi__jpeg_info_raw DD imagerel stbi__jpeg_info_raw+232 DD imagerel $unwind$stbi__jpeg_info_raw pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bitreverse16 DD imagerel stbi__bitreverse16 DD imagerel stbi__bitreverse16+193 DD imagerel $unwind$stbi__bitreverse16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bit_reverse DD imagerel stbi__bit_reverse DD imagerel stbi__bit_reverse+106 DD imagerel $unwind$stbi__bit_reverse pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__zbuild_huffman DD imagerel stbi__zbuild_huffman DD imagerel stbi__zbuild_huffman+963 DD imagerel $unwind$stbi__zbuild_huffman pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__zeof DD imagerel stbi__zeof DD imagerel stbi__zeof+93 DD imagerel $unwind$stbi__zeof pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__zget8 DD imagerel stbi__zget8 DD imagerel stbi__zget8+119 DD imagerel $unwind$stbi__zget8 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__fill_bits DD imagerel stbi__fill_bits DD imagerel stbi__fill_bits+200 DD imagerel $unwind$stbi__fill_bits pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__zreceive DD imagerel stbi__zreceive DD imagerel stbi__zreceive+200 DD imagerel $unwind$stbi__zreceive pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__zhuffman_decode_slowpath DD imagerel stbi__zhuffman_decode_slowpath DD imagerel stbi__zhuffman_decode_slowpath+324 DD imagerel $unwind$stbi__zhuffman_decode_slowpath pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__zhuffman_decode DD imagerel stbi__zhuffman_decode DD imagerel stbi__zhuffman_decode+241 DD imagerel $unwind$stbi__zhuffman_decode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__zexpand DD imagerel stbi__zexpand DD imagerel stbi__zexpand+361 DD imagerel $unwind$stbi__zexpand pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__parse_huffman_block DD imagerel stbi__parse_huffman_block DD imagerel stbi__parse_huffman_block+761 DD imagerel $unwind$stbi__parse_huffman_block pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__compute_huffman_codes DD imagerel stbi__compute_huffman_codes DD imagerel stbi__compute_huffman_codes+949 DD imagerel $unwind$stbi__compute_huffman_codes pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__parse_uncompressed_block DD imagerel stbi__parse_uncompressed_block DD imagerel stbi__parse_uncompressed_block+603 DD imagerel $unwind$stbi__parse_uncompressed_block pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__parse_zlib_header DD imagerel stbi__parse_zlib_header DD imagerel stbi__parse_zlib_header+204 DD imagerel $unwind$stbi__parse_zlib_header pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__parse_zlib DD imagerel stbi__parse_zlib DD imagerel stbi__parse_zlib+343 DD imagerel $unwind$stbi__parse_zlib pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__do_zlib DD imagerel stbi__do_zlib DD imagerel stbi__do_zlib+158 DD imagerel $unwind$stbi__do_zlib pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__get_chunk_header DD imagerel stbi__get_chunk_header DD imagerel stbi__get_chunk_header+123 DD imagerel $unwind$stbi__get_chunk_header pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__check_png_header DD imagerel stbi__check_png_header DD imagerel stbi__check_png_header+120 DD imagerel $unwind$stbi__check_png_header pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__paeth DD imagerel stbi__paeth DD imagerel stbi__paeth+190 DD imagerel $unwind$stbi__paeth pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__create_png_image_raw DD imagerel stbi__create_png_image_raw DD imagerel stbi__create_png_image_raw+7148 DD imagerel $unwind$stbi__create_png_image_raw pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__create_png_image DD imagerel stbi__create_png_image DD imagerel stbi__create_png_image+1308 DD imagerel $unwind$stbi__create_png_image pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__compute_transparency DD imagerel stbi__compute_transparency DD imagerel stbi__compute_transparency+478 DD imagerel $unwind$stbi__compute_transparency pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__compute_transparency16 DD imagerel stbi__compute_transparency16 DD imagerel stbi__compute_transparency16+481 DD imagerel $unwind$stbi__compute_transparency16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__expand_png_palette DD imagerel stbi__expand_png_palette DD imagerel stbi__expand_png_palette+614 DD imagerel $unwind$stbi__expand_png_palette pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__de_iphone DD imagerel stbi__de_iphone DD imagerel stbi__de_iphone+823 DD imagerel $unwind$stbi__de_iphone pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__parse_png_file DD imagerel stbi__parse_png_file DD imagerel stbi__parse_png_file+3798 DD imagerel $unwind$stbi__parse_png_file pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__do_png DD imagerel stbi__do_png DD imagerel stbi__do_png+693 DD imagerel $unwind$stbi__do_png pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__png_info_raw DD imagerel stbi__png_info_raw DD imagerel stbi__png_info_raw+201 DD imagerel $unwind$stbi__png_info_raw pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bmp_test_raw DD imagerel stbi__bmp_test_raw DD imagerel stbi__bmp_test_raw+227 DD imagerel $unwind$stbi__bmp_test_raw pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__high_bit DD imagerel stbi__high_bit DD imagerel stbi__high_bit+225 DD imagerel $unwind$stbi__high_bit pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bitcount DD imagerel stbi__bitcount DD imagerel stbi__bitcount+199 DD imagerel $unwind$stbi__bitcount pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__shiftsigned DD imagerel stbi__shiftsigned DD imagerel stbi__shiftsigned+268 DD imagerel $unwind$stbi__shiftsigned pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bmp_set_mask_defaults DD imagerel stbi__bmp_set_mask_defaults DD imagerel stbi__bmp_set_mask_defaults+286 DD imagerel $unwind$stbi__bmp_set_mask_defaults pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__bmp_parse_header DD imagerel stbi__bmp_parse_header DD imagerel stbi__bmp_parse_header+1594 DD imagerel $unwind$stbi__bmp_parse_header pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__tga_get_comp DD imagerel stbi__tga_get_comp DD imagerel stbi__tga_get_comp+204 DD imagerel $unwind$stbi__tga_get_comp pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__tga_read_rgb16 DD imagerel stbi__tga_read_rgb16 DD imagerel stbi__tga_read_rgb16+225 DD imagerel $unwind$stbi__tga_read_rgb16 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__psd_decode_rle DD imagerel stbi__psd_decode_rle DD imagerel stbi__psd_decode_rle+336 DD imagerel $unwind$stbi__psd_decode_rle pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pic_is4 DD imagerel stbi__pic_is4 DD imagerel stbi__pic_is4+115 DD imagerel $unwind$stbi__pic_is4 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pic_test_core DD imagerel stbi__pic_test_core DD imagerel stbi__pic_test_core+139 DD imagerel $unwind$stbi__pic_test_core pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__readval DD imagerel stbi__readval DD imagerel stbi__readval+209 DD imagerel $unwind$stbi__readval pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__copyval DD imagerel stbi__copyval DD imagerel stbi__copyval+138 DD imagerel $unwind$stbi__copyval pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pic_load_core DD imagerel stbi__pic_load_core DD imagerel stbi__pic_load_core+1805 DD imagerel $unwind$stbi__pic_load_core pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__gif_test_raw DD imagerel stbi__gif_test_raw DD imagerel stbi__gif_test_raw+189 DD imagerel $unwind$stbi__gif_test_raw pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__gif_parse_colortable DD imagerel stbi__gif_parse_colortable DD imagerel stbi__gif_parse_colortable+278 DD imagerel $unwind$stbi__gif_parse_colortable pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__gif_header DD imagerel stbi__gif_header DD imagerel stbi__gif_header+609 DD imagerel $unwind$stbi__gif_header pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__gif_info_raw DD imagerel stbi__gif_info_raw DD imagerel stbi__gif_info_raw+223 DD imagerel $unwind$stbi__gif_info_raw pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__out_gif_code DD imagerel stbi__out_gif_code DD imagerel stbi__out_gif_code+753 DD imagerel $unwind$stbi__out_gif_code pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__process_gif_raster DD imagerel stbi__process_gif_raster DD imagerel stbi__process_gif_raster+1264 DD imagerel $unwind$stbi__process_gif_raster pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__gif_load_next DD imagerel stbi__gif_load_next DD imagerel stbi__gif_load_next+2528 DD imagerel $unwind$stbi__gif_load_next pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__load_gif_main_outofmem DD imagerel stbi__load_gif_main_outofmem DD imagerel stbi__load_gif_main_outofmem+217 DD imagerel $unwind$stbi__load_gif_main_outofmem pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__hdr_test_core DD imagerel stbi__hdr_test_core DD imagerel stbi__hdr_test_core+141 DD imagerel $unwind$stbi__hdr_test_core pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__hdr_gettoken DD imagerel stbi__hdr_gettoken DD imagerel stbi__hdr_gettoken+212 DD imagerel $unwind$stbi__hdr_gettoken pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__hdr_convert DD imagerel stbi__hdr_convert DD imagerel stbi__hdr_convert+690 DD imagerel $unwind$stbi__hdr_convert pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pnm_isspace DD imagerel stbi__pnm_isspace DD imagerel stbi__pnm_isspace+141 DD imagerel $unwind$stbi__pnm_isspace pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pnm_skip_whitespace DD imagerel stbi__pnm_skip_whitespace DD imagerel stbi__pnm_skip_whitespace+212 DD imagerel $unwind$stbi__pnm_skip_whitespace pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pnm_isdigit DD imagerel stbi__pnm_isdigit DD imagerel stbi__pnm_isdigit+93 DD imagerel $unwind$stbi__pnm_isdigit pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__pnm_getinteger DD imagerel stbi__pnm_getinteger DD imagerel stbi__pnm_getinteger+183 DD imagerel $unwind$stbi__pnm_getinteger pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__info_main DD imagerel stbi__info_main DD imagerel stbi__info_main+483 DD imagerel $unwind$stbi__info_main pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$stbi__is_16_main DD imagerel stbi__is_16_main DD imagerel stbi__is_16_main+113 DD imagerel $unwind$stbi__is_16_main pdata ENDS ; COMDAT __xmm@fa7efa7efa7efa7efa7efa7efa7efa7e CONST SEGMENT __xmm@fa7efa7efa7efa7efa7efa7efa7efa7e DB '~', 0faH, '~', 0faH, '~', 0faH DB '~', 0faH, '~', 0faH, '~', 0faH, '~', 0faH, '~', 0faH CONST ENDS ; COMDAT __xmm@f9c31a9df9c31a9df9c31a9df9c31a9d CONST SEGMENT __xmm@f9c31a9df9c31a9df9c31a9df9c31a9d DB 09dH, 01aH, 0c3H, 0f9H, 09dH, 01aH DB 0c3H, 0f9H, 09dH, 01aH, 0c3H, 0f9H, 09dH, 01aH, 0c3H, 0f9H CONST ENDS ; COMDAT __xmm@f493f493f493f493f493f493f493f493 CONST SEGMENT __xmm@f493f493f493f493f493f493f493f493 DB 093H, 0f4H, 093H, 0f4H, 093H, 0f4H DB 093H, 0f4H, 093H, 0f4H, 093H, 0f4H, 093H, 0f4H, 093H, 0f4H CONST ENDS ; COMDAT __xmm@eb1a08a9eb1a08a9eb1a08a9eb1a08a9 CONST SEGMENT __xmm@eb1a08a9eb1a08a9eb1a08a9eb1a08a9 DB 0a9H, 08H, 01aH, 0ebH, 0a9H, 08H DB 01aH, 0ebH, 0a9H, 08H, 01aH, 0ebH, 0a9H, 08H, 01aH, 0ebH CONST ENDS ; COMDAT __xmm@e9cf12d0e9cf12d0e9cf12d0e9cf12d0 CONST SEGMENT __xmm@e9cf12d0e9cf12d0e9cf12d0e9cf12d0 DB 0d0H, 012H, 0cfH, 0e9H, 0d0H, 012H DB 0cfH, 0e9H, 0d0H, 012H, 0cfH, 0e9H, 0d0H, 012H, 0cfH, 0e9H CONST ENDS ; COMDAT __xmm@e09ee565e09ee565e09ee565e09ee565 CONST SEGMENT __xmm@e09ee565e09ee565e09ee565e09ee565 DB 'e', 0e5H, 09eH, 0e0H, 'e', 0e5H DB 09eH, 0e0H, 'e', 0e5H, 09eH, 0e0H, 'e', 0e5H, 09eH, 0e0H CONST ENDS ; COMDAT __xmm@80808080808080808080808080808080 CONST SEGMENT __xmm@80808080808080808080808080808080 DB 080H, 080H, 080H, 080H, 080H, 080H DB 080H, 080H, 080H, 080H, 080H, 080H, 080H, 080H, 080H, 080H CONST ENDS ; COMDAT __xmm@1c5a1c5a1c5a1c5a1c5a1c5a1c5a1c5a CONST SEGMENT __xmm@1c5a1c5a1c5a1c5a1c5a1c5a1c5a1c5a DB 'Z', 01cH, 'Z', 01cH, 'Z', 01cH DB 'Z', 01cH, 'Z', 01cH, 'Z', 01cH, 'Z', 01cH, 'Z', 01cH CONST ENDS ; COMDAT __xmm@166f166f166f166f166f166f166f166f CONST SEGMENT __xmm@166f166f166f166f166f166f166f166f DB 'o', 016H, 'o', 016H, 'o', 016H DB 'o', 016H, 'o', 016H, 'o', 016H, 'o', 016H, 'o', 016H CONST ENDS ; COMDAT __xmm@12d0046b12d0046b12d0046b12d0046b CONST SEGMENT __xmm@12d0046b12d0046b12d0046b12d0046b DB 'k', 04H, 0d0H, 012H, 'k', 04H, 0d0H DB 012H, 'k', 04H, 0d0H, 012H, 'k', 04H, 0d0H, 012H CONST ENDS ; COMDAT __xmm@11c8f9c311c8f9c311c8f9c311c8f9c3 CONST SEGMENT __xmm@11c8f9c311c8f9c311c8f9c311c8f9c3 DB 0c3H, 0f9H, 0c8H, 011H, 0c3H, 0f9H DB 0c8H, 011H, 0c3H, 0f9H, 0c8H, 011H, 0c3H, 0f9H, 0c8H, 011H CONST ENDS ; COMDAT __xmm@11c8e09e11c8e09e11c8e09e11c8e09e CONST SEGMENT __xmm@11c8e09e11c8e09e11c8e09e11c8e09e DB 09eH, 0e0H, 0c8H, 011H, 09eH, 0e0H DB 0c8H, 011H, 09eH, 0e0H, 0c8H, 011H, 09eH, 0e0H, 0c8H, 011H CONST ENDS ; COMDAT __xmm@08a914e808a914e808a914e808a914e8 CONST SEGMENT __xmm@08a914e808a914e808a914e808a914e8 DB 0e8H, 014H, 0a9H, 08H, 0e8H, 014H DB 0a9H, 08H, 0e8H, 014H, 0a9H, 08H, 0e8H, 014H, 0a9H, 08H CONST ENDS ; COMDAT __xmm@01010000010100000101000001010000 CONST SEGMENT __xmm@01010000010100000101000001010000 DB 00H, 00H, 01H, 01H, 00H, 00H, 01H DB 01H, 00H, 00H, 01H, 01H, 00H, 00H, 01H, 01H CONST ENDS ; COMDAT __xmm@00ff00ff00ff00ff00ff00ff00ff00ff CONST SEGMENT __xmm@00ff00ff00ff00ff00ff00ff00ff00ff DB 0ffH, 00H, 0ffH, 00H, 0ffH, 00H DB 0ffH, 00H, 0ffH, 00H, 0ffH, 00H, 0ffH, 00H, 0ffH, 00H CONST ENDS ; COMDAT __xmm@00080008000800080008000800080008 CONST SEGMENT __xmm@00080008000800080008000800080008 DB 08H, 00H, 08H, 00H, 08H, 00H, 08H DB 00H, 08H, 00H, 08H, 00H, 08H, 00H, 08H, 00H CONST ENDS ; COMDAT __xmm@00000200000002000000020000000200 CONST SEGMENT __xmm@00000200000002000000020000000200 DB 00H, 02H, 00H, 00H, 00H, 02H, 00H DB 00H, 00H, 02H, 00H, 00H, 00H, 02H, 00H, 00H CONST ENDS ; COMDAT __real@477fff00 CONST SEGMENT __real@477fff00 DD 0477fff00r ; 65535 CONST ENDS ; COMDAT __real@437f0000 CONST SEGMENT __real@437f0000 DD 0437f0000r ; 255 CONST ENDS ; COMDAT __real@40400000 CONST SEGMENT __real@40400000 DD 040400000r ; 3 CONST ENDS ; COMDAT __real@3ff0000000000000 CONST SEGMENT __real@3ff0000000000000 DQ 03ff0000000000000r ; 1 CONST ENDS ; COMDAT __real@3f800000 CONST SEGMENT __real@3f800000 DD 03f800000r ; 1 CONST ENDS ; COMDAT __real@3f000000 CONST SEGMENT __real@3f000000 DD 03f000000r ; 0.5 CONST ENDS ; COMDAT rtc$TMZ rtc$TMZ SEGMENT _RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown rtc$TMZ ENDS ; COMDAT rtc$IMZ rtc$IMZ SEGMENT _RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase rtc$IMZ ENDS ; COMDAT ??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ CONST SEGMENT ??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ DB 'max value > 65535', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BH@OBINMOBC@integer?5parse?5overflow@ CONST SEGMENT ??_C@_0BH@OBINMOBC@integer?5parse?5overflow@ DB 'integer parse overflow', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07IDKIDMGJ@bad?5PNM@ CONST SEGMENT ??_C@_07IDKIDMGJ@bad?5PNM@ DB 'bad PNM', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CA@JBEOCDFN@invalid?5decoded?5scanline?5length@ CONST SEGMENT ??_C@_0CA@JBEOCDFN@invalid?5decoded?5scanline?5length@ DB 'invalid decode' DB 'd scanline length', 00H ; `string' CONST ENDS ; COMDAT ??_C@_03FOKDFDHG@?$CLX?5@ CONST SEGMENT ??_C@_03FOKDFDHG@?$CLX?5@ DB '+X ', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ CONST SEGMENT ??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ DB 'unsupported data layout' DB 00H ; `string' CONST ENDS ; COMDAT ??_C@_03HKAKGGJN@?9Y?5@ CONST SEGMENT ??_C@_03HKAKGGJN@?9Y?5@ DB '-Y ', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BD@NKJFFLKL@unsupported?5format@ CONST SEGMENT ??_C@_0BD@NKJFFLKL@unsupported?5format@ DB 'unsupported format', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ CONST SEGMENT ??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ DB 'FORMAT=32-bit_rle_rgbe' DB 00H ; `string' CONST ENDS ; COMDAT ??_C@_07NCIOKENI@not?5HDR@ CONST SEGMENT ??_C@_07NCIOKENI@not?5HDR@ DB 'not HDR', 00H ; `string' CONST ENDS ; COMDAT ??_C@_06NDOKKIDJ@?$CD?$DPRGBE@ CONST SEGMENT ??_C@_06NDOKKIDJ@?$CD?$DPRGBE@ DB '#?RGBE', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0L@NCPEAJBD@?$CD?$DPRADIANCE@ CONST SEGMENT ??_C@_0L@NCPEAJBD@?$CD?$DPRADIANCE@ DB '#?RADIANCE', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07KFDJIKCK@?$CD?$DPRGBE?6@ CONST SEGMENT ??_C@_07KFDJIKCK@?$CD?$DPRGBE?6@ DB '#?RGBE', 0aH, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@HOIDFNFN@?$CD?$DPRADIANCE?6@ CONST SEGMENT ??_C@_0M@HOIDFNFN@?$CD?$DPRADIANCE?6@ DB '#?RADIANCE', 0aH, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@DJABBOOH@unknown?5code@ CONST SEGMENT ??_C@_0N@DJABBOOH@unknown?5code@ DB 'unknown code', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BE@NAMJKDNF@missing?5color?5table@ CONST SEGMENT ??_C@_0BE@NAMJKDNF@missing?5color?5table@ DB 'missing color table', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BF@GIAALCNJ@bad?5Image?5Descriptor@ CONST SEGMENT ??_C@_0BF@GIAALCNJ@bad?5Image?5Descriptor@ DB 'bad Image Descriptor', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ CONST SEGMENT ??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ DB 'illegal code in raster', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0P@GJNJCPDJ@too?5many?5codes@ CONST SEGMENT ??_C@_0P@GJNJCPDJ@too?5many?5codes@ DB 'too many codes', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@MGDACKOJ@no?5clear?5code@ CONST SEGMENT ??_C@_0O@MGDACKOJ@no?5clear?5code@ DB 'no clear code', 00H ; `string' CONST ENDS ; COMDAT ??_C@_00CNPNBAHC@@ CONST SEGMENT ??_C@_00CNPNBAHC@@ DB 00H ; `string' CONST ENDS ; COMDAT ??_C@_07KMJLPAII@not?5GIF@ CONST SEGMENT ??_C@_07KMJLPAII@not?5GIF@ DB 'not GIF', 00H ; `string' CONST ENDS ; COMDAT ??_C@_08GGMBIFE@bad?5file@ CONST SEGMENT ??_C@_08GGMBIFE@bad?5file@ DB 'bad file', 00H ; `string' CONST ENDS ; COMDAT ??_C@_04ELNJHLFH@PICT@ CONST SEGMENT ??_C@_04ELNJHLFH@PICT@ DB 'PICT', 00H ; `string' CONST ENDS ; COMDAT ??_C@_04KBFEPHFH@S?$IA?v4@ CONST SEGMENT ??_C@_04KBFEPHFH@S?$IA?v4@ DB 'S', 080H, 0f6H, '4', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07DPPMCAKL@corrupt@ CONST SEGMENT ??_C@_07DPPMCAKL@corrupt@ DB 'corrupt', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BD@IOGGBMNK@wrong?5color?5format@ CONST SEGMENT ??_C@_0BD@IOGGBMNK@wrong?5color?5format@ DB 'wrong color format', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BG@NOLDLPP@unsupported?5bit?5depth@ CONST SEGMENT ??_C@_0BG@NOLDLPP@unsupported?5bit?5depth@ DB 'unsupported bit depth', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BE@PJBNGDBE@wrong?5channel?5count@ CONST SEGMENT ??_C@_0BE@PJBNGDBE@wrong?5channel?5count@ DB 'wrong channel count', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@CHBCDKKC@wrong?5version@ CONST SEGMENT ??_C@_0O@CHBCDKKC@wrong?5version@ DB 'wrong version', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07ECNCNLIK@not?5PSD@ CONST SEGMENT ??_C@_07ECNCNLIK@not?5PSD@ DB 'not PSD', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ CONST SEGMENT ??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ DB 't' DB 00H, 'g', 00H, 'a', 00H, '_', 00H, 'c', 00H, 'o', 00H, 'm', 00H DB 'p', 00H, ' ', 00H, '=', 00H, '=', 00H, ' ', 00H, 'S', 00H, 'T' DB 00H, 'B', 00H, 'I', 00H, '_', 00H, 'r', 00H, 'g', 00H, 'b', 00H DB 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@ILLOCNCO@bad?5palette@ CONST SEGMENT ??_C@_0M@ILLOCNCO@bad?5palette@ DB 'bad palette', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0L@DMAPJJO@bad?5format@ CONST SEGMENT ??_C@_0L@DMAPJJO@bad?5format@ DB 'bad format', 00H ; `string' CONST ENDS ; COMDAT ??_C@_09DAEBACAB@bad?5masks@ CONST SEGMENT ??_C@_09DAEBACAB@bad?5masks@ DB 'bad masks', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07JNJHIMGH@bad?5bpp@ CONST SEGMENT ??_C@_07JNJHIMGH@bad?5bpp@ DB 'bad bpp', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07MALOAKCI@invalid@ CONST SEGMENT ??_C@_07MALOAKCI@invalid@ DB 'invalid', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0L@JDPIFELH@bad?5offset@ CONST SEGMENT ??_C@_0L@JDPIFELH@bad?5offset@ DB 'bad offset', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0L@PJHPAMCH@bad?5header@ CONST SEGMENT ??_C@_0L@PJHPAMCH@bad?5header@ DB 'bad header', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@ODCBCBFN@BMP?5JPEG?1PNG@ CONST SEGMENT ??_C@_0N@ODCBCBFN@BMP?5JPEG?1PNG@ DB 'BMP JPEG/PNG', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07IMHMNOIB@BMP?5RLE@ CONST SEGMENT ??_C@_07IMHMNOIB@BMP?5RLE@ DB 'BMP RLE', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@KHBIBJBG@unknown?5BMP@ CONST SEGMENT ??_C@_0M@KHBIBJBG@unknown?5BMP@ DB 'unknown BMP', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07IEJCHBDI@bad?5BMP@ CONST SEGMENT ??_C@_07IEJCHBDI@bad?5BMP@ DB 'bad BMP', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07IANEBNLB@not?5BMP@ CONST SEGMENT ??_C@_07IANEBNLB@not?5BMP@ DB 'not BMP', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CO@LIFEKNEP@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA0?$AA?5?$AA?$CG?$AA?$CG?$AA?5?$AAb?$AAi@ CONST SEGMENT ??_C@_1CO@LIFEKNEP@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA0?$AA?5?$AA?$CG?$AA?$CG?$AA?5?$AAb?$AAi@ DB 'b' DB 00H, 'i', 00H, 't', 00H, 's', 00H, ' ', 00H, '>', 00H, '=', 00H DB ' ', 00H, '0', 00H, ' ', 00H, '&', 00H, '&', 00H, ' ', 00H, 'b' DB 00H, 'i', 00H, 't', 00H, 's', 00H, ' ', 00H, '<', 00H, '=', 00H DB ' ', 00H, '8', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1BA@EKLGALLJ@?$AAv?$AA?5?$AA?$DM?$AA?5?$AA2?$AA5?$AA6@ CONST SEGMENT ??_C@_1BA@EKLGALLJ@?$AAv?$AA?5?$AA?$DM?$AA?5?$AA2?$AA5?$AA6@ DB 'v', 00H, ' ' DB 00H, '<', 00H, ' ', 00H, '2', 00H, '5', 00H, '6', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BF@NOEEEFMF@bad?5bits_per_channel@ CONST SEGMENT ??_C@_0BF@NOEEEFMF@bad?5bits_per_channel@ DB 'bad bits_per_channel', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07MLPECBNA@no?5IDAT@ CONST SEGMENT ??_C@_07MLPECBNA@no?5IDAT@ DB 'no IDAT', 00H ; `string' CONST ENDS ; COMDAT ??_C@_09MNNCNKEO@outofdata@ CONST SEGMENT ??_C@_09MNNCNKEO@outofdata@ DB 'outofdata', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@PLHGLONG@IDAT?5size?5limit@ CONST SEGMENT ??_C@_0BA@PLHGLONG@IDAT?5size?5limit@ DB 'IDAT size limit', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07CKIELOEH@no?5PLTE@ CONST SEGMENT ??_C@_07CKIELOEH@no?5PLTE@ DB 'no PLTE', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@ENDPGCHB@tRNS?5with?5alpha@ CONST SEGMENT ??_C@_0BA@ENDPGCHB@tRNS?5with?5alpha@ DB 'tRNS with alpha', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ CONST SEGMENT ??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ DB 'bad tRNS len', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BB@CEDNNLBG@tRNS?5before?5PLTE@ CONST SEGMENT ??_C@_0BB@CEDNNLBG@tRNS?5before?5PLTE@ DB 'tRNS before PLTE', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@PCPJHDKJ@tRNS?5after?5IDAT@ CONST SEGMENT ??_C@_0BA@PCPJHDKJ@tRNS?5after?5IDAT@ DB 'tRNS after IDAT', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@JCPAJAKB@invalid?5PLTE@ CONST SEGMENT ??_C@_0N@JCPAJAKB@invalid?5PLTE@ DB 'invalid PLTE', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0P@JEAFOMAF@first?5not?5IHDR@ CONST SEGMENT ??_C@_0P@JEAFOMAF@first?5not?5IHDR@ DB 'first not IHDR', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@FNFBHCOO@0?9pixel?5image@ CONST SEGMENT ??_C@_0O@FNFBHCOO@0?9pixel?5image@ DB '0-pixel image', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BF@JCGDPBAA@bad?5interlace?5method@ CONST SEGMENT ??_C@_0BF@JCGDPBAA@bad?5interlace?5method@ DB 'bad interlace method', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BC@GHLIKKMD@bad?5filter?5method@ CONST SEGMENT ??_C@_0BC@GHLIKKMD@bad?5filter?5method@ DB 'bad filter method', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@MDMBDDFG@bad?5comp?5method@ CONST SEGMENT ??_C@_0BA@MDMBDDFG@bad?5comp?5method@ DB 'bad comp method', 00H ; `string' CONST ENDS ; COMDAT ??_C@_09MBBNGCKB@bad?5ctype@ CONST SEGMENT ??_C@_09MBBNGCKB@bad?5ctype@ DB 'bad ctype', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BE@EJHIPKNO@1?12?14?18?116?9bit?5only@ CONST SEGMENT ??_C@_0BE@EJHIPKNO@1?12?14?18?116?9bit?5only@ DB '1/2/4/8/16-bit only', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@POJLKMKK@bad?5IHDR?5len@ CONST SEGMENT ??_C@_0N@POJLKMKK@bad?5IHDR?5len@ DB 'bad IHDR len', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@KBHBNJOK@multiple?5IHDR@ CONST SEGMENT ??_C@_0O@KBHBNJOK@multiple?5IHDR@ DB 'multiple IHDR', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CE@GKIDJEJM@?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg?$AA_?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN@ CONST SEGMENT ??_C@_1CE@GKIDJEJM@?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg?$AA_?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN@ DB 's' DB 00H, '-', 00H, '>', 00H, 'i', 00H, 'm', 00H, 'g', 00H, '_', 00H DB 'o', 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ', 00H, '=' DB 00H, '=', 00H, ' ', 00H, '4', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ CONST SEGMENT ??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ DB 'o' DB 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ', 00H, '=', 00H DB '=', 00H, ' ', 00H, '2', 00H, ' ', 00H, '|', 00H, '|', 00H, ' ' DB 00H, 'o', 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ', 00H DB '=', 00H, '=', 00H, ' ', 00H, '4', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ CONST SEGMENT ??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ DB 'i' DB 00H, 'm', 00H, 'g', 00H, '_', 00H, 'n', 00H, ' ', 00H, '=', 00H DB '=', 00H, ' ', 00H, '3', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1CG@MFAHHIFB@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$CL?$AA?5?$AA1?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAo?$AAu@ CONST SEGMENT ??_C@_1CG@MFAHHIFB@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$CL?$AA?5?$AA1?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAo?$AAu@ DB 'i' DB 00H, 'm', 00H, 'g', 00H, '_', 00H, 'n', 00H, ' ', 00H, '+', 00H DB ' ', 00H, '1', 00H, ' ', 00H, '=', 00H, '=', 00H, ' ', 00H, 'o' DB 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@MKGNGALN@invalid?5width@ CONST SEGMENT ??_C@_0O@MKGNGALN@invalid?5width@ DB 'invalid width', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0P@FBBCPGMN@invalid?5filter@ CONST SEGMENT ??_C@_0P@FBBCPGMN@invalid?5filter@ DB 'invalid filter', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BC@BHMPBBMG@not?5enough?5pixels@ CONST SEGMENT ??_C@_0BC@BHMPBBMG@not?5enough?5pixels@ DB 'not enough pixels', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1FG@LGPEHEPM@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg@ CONST SEGMENT ??_C@_1FG@LGPEHEPM@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg@ DB 'o' DB 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ', 00H, '=', 00H DB '=', 00H, ' ', 00H, 's', 00H, '-', 00H, '>', 00H, 'i', 00H, 'm' DB 00H, 'g', 00H, '_', 00H, 'n', 00H, ' ', 00H, '|', 00H, '|', 00H DB ' ', 00H, 'o', 00H, 'u', 00H, 't', 00H, '_', 00H, 'n', 00H, ' ' DB 00H, '=', 00H, '=', 00H, ' ', 00H, 's', 00H, '-', 00H, '>', 00H DB 'i', 00H, 'm', 00H, 'g', 00H, '_', 00H, 'n', 00H, ' ', 00H, '+' DB 00H, ' ', 00H, '1', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@DMDNBACF@bad?5png?5sig@ CONST SEGMENT ??_C@_0M@DMDNBACF@bad?5png?5sig@ DB 'bad png sig', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@MCNBDLPD@bad?5compression@ CONST SEGMENT ??_C@_0BA@MCNBDLPD@bad?5compression@ DB 'bad compression', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0P@DOGMHEBI@no?5preset?5dict@ CONST SEGMENT ??_C@_0P@DOGMHEBI@no?5preset?5dict@ DB 'no preset dict', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ CONST SEGMENT ??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ DB 'bad zlib header', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BB@PIPBCKIA@read?5past?5buffer@ CONST SEGMENT ??_C@_0BB@PIPBCKIA@read?5past?5buffer@ DB 'read past buffer', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@IECDHMDI@zlib?5corrupt@ CONST SEGMENT ??_C@_0N@IECDHMDI@zlib?5corrupt@ DB 'zlib corrupt', 00H ; `string' CONST ENDS ; COMDAT ??_C@_08DIAPIMGJ@bad?5dist@ CONST SEGMENT ??_C@_08DIAPIMGJ@bad?5dist@ DB 'bad dist', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BE@IBFIPFO@output?5buffer?5limit@ CONST SEGMENT ??_C@_0BE@IBFIPFO@output?5buffer?5limit@ DB 'output buffer limit', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@MDNKOBMC@bad?5codelengths@ CONST SEGMENT ??_C@_0BA@MDNKOBMC@bad?5codelengths@ DB 'bad codelengths', 00H ; `string' CONST ENDS ; COMDAT ??_C@_09EOHLEIKL@bad?5sizes@ CONST SEGMENT ??_C@_09EOHLEIKL@bad?5sizes@ DB 'bad sizes', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1BG@HKNLHECB@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DM?$AA?$DN?$AA?5?$AA1?$AA6@ CONST SEGMENT ??_C@_1BG@HKNLHECB@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DM?$AA?$DN?$AA?5?$AA1?$AA6@ DB 'b' DB 00H, 'i', 00H, 't', 00H, 's', 00H, ' ', 00H, '<', 00H, '=', 00H DB ' ', 00H, '1', 00H, '6', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@KBPNPPBJ@bad?5req_comp@ CONST SEGMENT ??_C@_0N@KBPNPPBJ@bad?5req_comp@ DB 'bad req_comp', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0P@PNCLKCLJ@bad?5DNL?5height@ CONST SEGMENT ??_C@_0P@PNCLKCLJ@bad?5DNL?5height@ DB 'bad DNL height', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@EPMOIECP@bad?5DNL?5len@ CONST SEGMENT ??_C@_0M@EPMOIECP@bad?5DNL?5len@ DB 'bad DNL len', 00H ; `string' CONST ENDS ; COMDAT ??_C@_06IFCEAHIA@no?5SOF@ CONST SEGMENT ??_C@_06IFCEAHIA@no?5SOF@ DB 'no SOF', 00H ; `string' CONST ENDS ; COMDAT ??_C@_06CLMBLEP@no?5SOI@ CONST SEGMENT ??_C@_06CLMBLEP@no?5SOI@ DB 'no SOI', 00H ; `string' CONST ENDS ; COMDAT ??_C@_06LJIHDFHI@bad?5TQ@ CONST SEGMENT ??_C@_06LJIHDFHI@bad?5TQ@ DB 'bad TQ', 00H ; `string' CONST ENDS ; COMDAT ??_C@_05MPLLHCJG@bad?5V@ CONST SEGMENT ??_C@_05MPLLHCJG@bad?5V@ DB 'bad V', 00H ; `string' CONST ENDS ; COMDAT ??_C@_05BLPKENEJ@bad?5H@ CONST SEGMENT ??_C@_05BLPKENEJ@bad?5H@ DB 'bad H', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BE@DAPHADHL@bad?5component?5count@ CONST SEGMENT ??_C@_0BE@DAPHADHL@bad?5component?5count@ DB 'bad component count', 00H ; `string' CONST ENDS ; COMDAT ??_C@_09OJDLMMBJ@too?5large@ CONST SEGMENT ??_C@_09OJDLMMBJ@too?5large@ DB 'too large', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07BIDACDEF@0?5width@ CONST SEGMENT ??_C@_07BIDACDEF@0?5width@ DB '0 width', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BB@LNEGOMA@no?5header?5height@ CONST SEGMENT ??_C@_0BB@LNEGOMA@no?5header?5height@ DB 'no header height', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0L@BCINMEBJ@only?58?9bit@ CONST SEGMENT ??_C@_0L@BCINMEBJ@only?58?9bit@ DB 'only 8-bit', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@DOFMJEMP@bad?5SOF?5len@ CONST SEGMENT ??_C@_0M@DOFMJEMP@bad?5SOF?5len@ DB 'bad SOF len', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07EEJOMGGP@bad?5SOS@ CONST SEGMENT ??_C@_07EEJOMGGP@bad?5SOS@ DB 'bad SOS', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@JGMCBLGG@bad?5AC?5huff@ CONST SEGMENT ??_C@_0M@JGMCBLGG@bad?5AC?5huff@ DB 'bad AC huff', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@NOCCBFAC@bad?5DC?5huff@ CONST SEGMENT ??_C@_0M@NOCCBFAC@bad?5DC?5huff@ DB 'bad DC huff', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@GNEHAHOH@bad?5SOS?5len@ CONST SEGMENT ??_C@_0M@GNEHAHOH@bad?5SOS?5len@ DB 'bad SOS len', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BI@DHFJCMBA@bad?5SOS?5component?5count@ CONST SEGMENT ??_C@_0BI@DHFJCMBA@bad?5SOS?5component?5count@ DB 'bad SOS component coun' DB 't', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0P@NNGPHMMK@unknown?5marker@ CONST SEGMENT ??_C@_0P@NNGPHMMK@unknown?5marker@ DB 'unknown marker', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@EENLKPDI@bad?5APP?5len@ CONST SEGMENT ??_C@_0M@EENLKPDI@bad?5APP?5len@ DB 'bad APP len', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@CICAFFCH@bad?5COM?5len@ CONST SEGMENT ??_C@_0M@CICAFFCH@bad?5COM?5len@ DB 'bad COM len', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0P@JLGKOCGN@bad?5DHT?5header@ CONST SEGMENT ??_C@_0P@JLGKOCGN@bad?5DHT?5header@ DB 'bad DHT header', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@CNHKKDIM@bad?5DQT?5table@ CONST SEGMENT ??_C@_0O@CNHKKDIM@bad?5DQT?5table@ DB 'bad DQT table', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@BOFJCHAP@bad?5DQT?5type@ CONST SEGMENT ??_C@_0N@BOFJCHAP@bad?5DQT?5type@ DB 'bad DQT type', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@LPHNODCG@bad?5DRI?5len@ CONST SEGMENT ??_C@_0M@LPHNODCG@bad?5DRI?5len@ DB 'bad DRI len', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@KLNDOKJD@expected?5marker@ CONST SEGMENT ??_C@_0BA@KLNDOKJD@expected?5marker@ DB 'expected marker', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ CONST SEGMENT ??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ DB 'can''t merge dc and ac' DB 00H ; `string' CONST ENDS ; COMDAT ??_C@_09IFDKCGFO@bad?5delta@ CONST SEGMENT ??_C@_09IFDKCGFO@bad?5delta@ DB 'bad delta', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BB@IIMLINA@bad?5huffman?5code@ CONST SEGMENT ??_C@_0BB@IIMLINA@bad?5huffman?5code@ DB 'bad huffman code', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1KE@JGKPJEBO@?$AA?$CI?$AA?$CI?$AA?$CI?$AAj?$AA?9?$AA?$DO?$AAc?$AAo?$AAd?$AAe?$AA_?$AAb?$AAu?$AAf?$AAf@ CONST SEGMENT ??_C@_1KE@JGKPJEBO@?$AA?$CI?$AA?$CI?$AA?$CI?$AAj?$AA?9?$AA?$DO?$AAc?$AAo?$AAd?$AAe?$AA_?$AAb?$AAu?$AAf?$AAf@ DB '(' DB 00H, '(', 00H, '(', 00H, 'j', 00H, '-', 00H, '>', 00H, 'c', 00H DB 'o', 00H, 'd', 00H, 'e', 00H, '_', 00H, 'b', 00H, 'u', 00H, 'f' DB 00H, 'f', 00H, 'e', 00H, 'r', 00H, ')', 00H, ' ', 00H, '>', 00H DB '>', 00H, ' ', 00H, '(', 00H, '3', 00H, '2', 00H, ' ', 00H, '-' DB 00H, ' ', 00H, 'h', 00H, '-', 00H, '>', 00H, 's', 00H, 'i', 00H DB 'z', 00H, 'e', 00H, '[', 00H, 'c', 00H, ']', 00H, ')', 00H, ')' DB 00H, ' ', 00H, '&', 00H, ' ', 00H, 's', 00H, 't', 00H, 'b', 00H DB 'i', 00H, '_', 00H, '_', 00H, 'b', 00H, 'm', 00H, 'a', 00H, 's' DB 00H, 'k', 00H, '[', 00H, 'h', 00H, '-', 00H, '>', 00H, 's', 00H DB 'i', 00H, 'z', 00H, 'e', 00H, '[', 00H, 'c', 00H, ']', 00H, ']' DB 00H, ')', 00H, ' ', 00H, '=', 00H, '=', 00H, ' ', 00H, 'h', 00H DB '-', 00H, '>', 00H, 'c', 00H, 'o', 00H, 'd', 00H, 'e', 00H, '[' DB 00H, 'c', 00H, ']', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BB@FOKGPEKG@bad?5code?5lengths@ CONST SEGMENT ??_C@_0BB@FOKGPEKG@bad?5code?5lengths@ DB 'bad code lengths', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@DEFOLMLB@bad?5size?5list@ CONST SEGMENT ??_C@_0O@DEFOLMLB@bad?5size?5list@ DB 'bad size list', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@MHDBFHD@unsupported@ CONST SEGMENT ??_C@_0M@MHDBFHD@unsupported@ DB 'unsupported', 00H ; `string' CONST ENDS ; COMDAT ??_C@_13COJANIEC@?$AA0@ CONST SEGMENT ??_C@_13COJANIEC@?$AA0@ DB '0', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ CONST SEGMENT ??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ DB 'r' DB 00H, 'e', 00H, 'q', 00H, '_', 00H, 'c', 00H, 'o', 00H, 'm', 00H DB 'p', 00H, ' ', 00H, '>', 00H, '=', 00H, ' ', 00H, '1', 00H, ' ' DB 00H, '&', 00H, '&', 00H, ' ', 00H, 'r', 00H, 'e', 00H, 'q', 00H DB '_', 00H, 'c', 00H, 'o', 00H, 'm', 00H, 'p', 00H, ' ', 00H, '<' DB 00H, '=', 00H, ' ', 00H, '4', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CB@DDANHPKI@can?8t?5fopen?0?5Unable?5to?5open?5fil@ CONST SEGMENT ??_C@_0CB@DDANHPKI@can?8t?5fopen?0?5Unable?5to?5open?5fil@ DB 'can''t fop' DB 'en, Unable to open file', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0M@JPDHFAGK@can?8t?5fopen@ CONST SEGMENT ??_C@_0M@JPDHFAGK@can?8t?5fopen@ DB 'can''t fopen', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02JDPG@rb@ CONST SEGMENT ??_C@_02JDPG@rb@ DB 'rb', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ CONST SEGMENT ??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ DB 'r' DB 00H, 'i', 00H, '.', 00H, 'b', 00H, 'i', 00H, 't', 00H, 's', 00H DB '_', 00H, 'p', 00H, 'e', 00H, 'r', 00H, '_', 00H, 'c', 00H, 'h' DB 00H, 'a', 00H, 'n', 00H, 'n', 00H, 'e', 00H, 'l', 00H, ' ', 00H DB '=', 00H, '=', 00H, ' ', 00H, '8', 00H, ' ', 00H, '|', 00H, '|' DB 00H, ' ', 00H, 'r', 00H, 'i', 00H, '.', 00H, 'b', 00H, 'i', 00H DB 't', 00H, 's', 00H, '_', 00H, 'p', 00H, 'e', 00H, 'r', 00H, '_' DB 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'n', 00H, 'n', 00H, 'e', 00H DB 'l', 00H, ' ', 00H, '=', 00H, '=', 00H, ' ', 00H, '1', 00H, '6' DB 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ CONST SEGMENT ??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ DB 'D' DB 00H, ':', 00H, '\', 00H, 'p', 00H, 'l', 00H, 'a', 00H, 't', 00H DB 'f', 00H, 'o', 00H, 'r', 00H, 'm', 00H, '-', 00H, 'd', 00H, 'e' DB 00H, 'v', 00H, '\', 00H, 'S', 00H, 't', 00H, 'g', 00H, 'S', 00H DB 'h', 00H, 'a', 00H, 'r', 00H, 'p', 00H, '.', 00H, 'N', 00H, 'a' DB 00H, 't', 00H, 'i', 00H, 'v', 00H, 'e', 00H, '\', 00H, 's', 00H DB 'n', 00H, '-', 00H, 's', 00H, 'r', 00H, 'c', 00H, '\', 00H, 's' DB 00H, 't', 00H, 'b', 00H, '_', 00H, 'i', 00H, 'm', 00H, 'a', 00H DB 'g', 00H, 'e', 00H, '.', 00H, 'c', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_08NOGIMCHF@outofmem@ CONST SEGMENT ??_C@_08NOGIMCHF@outofmem@ DB 'outofmem', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BD@CBEDEJPH@unknown?5image?5type@ CONST SEGMENT ??_C@_0BD@CBEDEJPH@unknown?5image?5type@ DB 'unknown image type', 00H ; `string' CONST ENDS _DATA SEGMENT stbi__stdio_callbacks DQ FLAT:stbi__stdio_read DQ FLAT:stbi__stdio_skip DQ FLAT:stbi__stdio_eof stbi__l2h_gamma DD 0400ccccdr ; 2.2 stbi__l2h_scale DD 03f800000r ; 1 stbi__h2l_gamma_i DD 03ee8ba2er ; 0.454545 stbi__h2l_scale_i DD 03f800000r ; 1 first_row_filter DB 00H DB 01H DB 00H DB 05H DB 06H ORG $+3 ?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 DB 'XXXX PNG chunk not kno' DB 'wn', 00H ; `stbi__parse_png_file'::`31'::invalid_chunk ORG $+7 ?mul_table@?1??stbi__shiftsigned@@9@9 DD 00H ; `stbi__shiftsigned'::`2'::mul_table DD 0ffH DD 055H DD 049H DD 011H DD 021H DD 041H DD 081H DD 01H ORG $+4 ?shift_table@?1??stbi__shiftsigned@@9@9 DD 00H ; `stbi__shiftsigned'::`2'::shift_table DD 00H DD 00H DD 01H DD 00H DD 02H DD 04H DD 06H DD 00H _DATA ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__is_16_main DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__info_main DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pnm_getinteger DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pnm_isdigit DD 025051201H DD 010d2312H DD 07006001fH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pnm_skip_whitespace DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pnm_isspace DD 025051201H DD 010d2312H DD 07006001fH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__hdr_convert DD 025051d01H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__hdr_gettoken DD 025051801H DD 01132318H DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__hdr_test_core DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__load_gif_main_outofmem DD 025051d01H DD 0118231dH DD 07011001fH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__gif_load_next DD 025052201H DD 011d2322H DD 07016004dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__process_gif_raster DD 025051801H DD 01132318H DD 0700c0051H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__out_gif_code DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__gif_info_raw DD 025052201H DD 011d2322H DD 070160021H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__gif_header DD 025052201H DD 011d2322H DD 070160021H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__gif_parse_colortable DD 025052201H DD 011d2322H DD 070160021H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__gif_test_raw DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 044H DW 06f4H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pic_load_core DD 025054b19H DD 011c2321H DD 070150083H DD 05014H DD imagerel __GSHandlerCheck DD 0400H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__pic_load_core$rtcName$0 DB 070H DB 061H DB 063H DB 06bH DB 065H DB 074H DB 073H DB 00H stbi__pic_load_core$rtcName$1 DB 076H DB 061H DB 06cH DB 075H DB 065H DB 00H ORG $+2 stbi__pic_load_core$rtcName$2 DB 076H DB 061H DB 06cH DB 075H DB 065H DB 00H ORG $+10 stbi__pic_load_core$rtcVarDesc DD 0264H DD 04H DQ FLAT:stbi__pic_load_core$rtcName$2 DD 01e4H DD 04H DQ FLAT:stbi__pic_load_core$rtcName$1 DD 0a8H DD 01eH DQ FLAT:stbi__pic_load_core$rtcName$0 ORG $+144 stbi__pic_load_core$rtcFrameData DD 03H DD 00H DQ FLAT:stbi__pic_load_core$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__copyval DD 025051c01H DD 0117231cH DD 070100025H DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__readval DD 025051c01H DD 0117231cH DD 070100025H DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pic_test_core DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pic_is4 DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__psd_decode_rle DD 025051d01H DD 0118231dH DD 07011002dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__tga_read_rgb16 DD 025051801H DD 01132318H DD 0700c0031H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__tga_get_comp DD 025051b01H DD 0116231bH DD 0700f001fH DD 0500eH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bmp_parse_header DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bmp_set_mask_defaults DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__shiftsigned DD 025051b01H DD 0116231bH DD 0700f001dH DD 0500eH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bitcount DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__high_bit DD 025051201H DD 010d2312H DD 070060021H DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bmp_test_raw DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__png_info_raw DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__do_png DD 035052201H DD 011d3322H DD 070160023H DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03fH DW 0ebdH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__parse_png_file DD 045054619H DD 0117431cH DD 070100143H DD 0500fH DD imagerel __GSHandlerCheck DD 0a00H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__parse_png_file$rtcName$0 DB 070H DB 061H DB 06cH DB 065H DB 074H DB 074H DB 065H DB 00H stbi__parse_png_file$rtcName$1 DB 074H DB 063H DB 00H ORG $+1 stbi__parse_png_file$rtcName$2 DB 074H DB 063H DB 031H DB 036H DB 00H ORG $+3 stbi__parse_png_file$rtcName$3 DB 063H DB 00H ORG $+2 stbi__parse_png_file$rtcName$4 DB 072H DB 061H DB 077H DB 05fH DB 06cH DB 065H DB 06eH DB 00H stbi__parse_png_file$rtcVarDesc DD 06c4H DD 04H DQ FLAT:stbi__parse_png_file$rtcName$4 DD 0628H DD 08H DQ FLAT:stbi__parse_png_file$rtcName$3 DD 04c4H DD 06H DQ FLAT:stbi__parse_png_file$rtcName$2 DD 04a4H DD 03H DQ FLAT:stbi__parse_png_file$rtcName$1 DD 050H DD 0400H DQ FLAT:stbi__parse_png_file$rtcName$0 ORG $+240 stbi__parse_png_file$rtcFrameData DD 05H DD 00H DQ FLAT:stbi__parse_png_file$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__de_iphone DD 025051301H DD 010e2313H DD 070070041H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__expand_png_palette DD 025052201H DD 011d2322H DD 070160039H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__compute_transparency16 DD 025051d01H DD 0118231dH DD 07011002dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__compute_transparency DD 025051d01H DD 0118231dH DD 07011002dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__create_png_image DD 045053b01H DD 011d4322H DD 070160085H DD 05015H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__create_png_image$rtcName$0 DB 078H DB 06fH DB 072H DB 069H DB 067H DB 00H ORG $+2 stbi__create_png_image$rtcName$1 DB 079H DB 06fH DB 072H DB 069H DB 067H DB 00H ORG $+2 stbi__create_png_image$rtcName$2 DB 078H DB 073H DB 070H DB 063H DB 00H ORG $+3 stbi__create_png_image$rtcName$3 DB 079H DB 073H DB 070H DB 063H DB 00H ORG $+3 stbi__create_png_image$rtcVarDesc DD 0188H DD 01cH DQ FLAT:stbi__create_png_image$rtcName$3 DD 0148H DD 01cH DQ FLAT:stbi__create_png_image$rtcName$2 DD 0108H DD 01cH DQ FLAT:stbi__create_png_image$rtcName$1 DD 0c8H DD 01cH DQ FLAT:stbi__create_png_image$rtcName$0 ORG $+192 stbi__create_png_image$rtcFrameData DD 04H DD 00H DQ FLAT:stbi__create_png_image$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__create_png_image_raw DD 025052201H DD 011d2322H DD 07016008dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__paeth DD 025051b01H DD 0116231bH DD 0700f002dH DD 0500eH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__check_png_header DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__get_chunk_header DD 025052c01H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__get_chunk_header$rtcName$0 DB 063H DB 00H ORG $+14 stbi__get_chunk_header$rtcVarDesc DD 028H DD 08H DQ FLAT:stbi__get_chunk_header$rtcName$0 ORG $+48 stbi__get_chunk_header$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__get_chunk_header$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__do_zlib DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__parse_zlib DD 025051701H DD 01122317H DD 0700b0025H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__parse_zlib_header DD 025051301H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__parse_uncompressed_block DD 025052c01H DD 010e2313H DD 07007002dH DD 05006H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__parse_uncompressed_block$rtcName$0 DB 068H DB 065H DB 061H DB 064H DB 065H DB 072H DB 00H ORG $+9 stbi__parse_uncompressed_block$rtcVarDesc DD 024H DD 04H DQ FLAT:stbi__parse_uncompressed_block$rtcName$0 ORG $+48 stbi__parse_uncompressed_block$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__parse_uncompressed_block$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03cH DW 039cH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__compute_huffman_codes DD 025054319H DD 01142319H DD 070070201H DD 05006H DD imagerel __GSHandlerCheck DD 0ff0H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__compute_huffman_codes$rtcName$0 DB 07aH DB 05fH DB 063H DB 06fH DB 064H DB 065H DB 06cH DB 065H DB 06eH DB 067H DB 074H DB 068H DB 00H ORG $+3 stbi__compute_huffman_codes$rtcName$1 DB 06cH DB 065H DB 06eH DB 063H DB 06fH DB 064H DB 065H DB 073H DB 00H ORG $+7 stbi__compute_huffman_codes$rtcName$2 DB 063H DB 06fH DB 064H DB 065H DB 06cH DB 065H DB 06eH DB 067H DB 074H DB 068H DB 05fH DB 073H DB 069H DB 07aH DB 065H DB 073H DB 00H ORG $+15 stbi__compute_huffman_codes$rtcVarDesc DD 0a28H DD 013H DQ FLAT:stbi__compute_huffman_codes$rtcName$2 DD 0840H DD 01c7H DQ FLAT:stbi__compute_huffman_codes$rtcName$1 DD 030H DD 07e4H DQ FLAT:stbi__compute_huffman_codes$rtcName$0 ORG $+144 stbi__compute_huffman_codes$rtcFrameData DD 03H DD 00H DQ FLAT:stbi__compute_huffman_codes$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__parse_huffman_block DD 025051301H DD 010e2313H DD 070070035H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__zexpand DD 025051d01H DD 0118231dH DD 07011002dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__zhuffman_decode DD 025051801H DD 01132318H DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__zhuffman_decode_slowpath DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__zreceive DD 025051701H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__fill_bits DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__zget8 DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__zeof DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 040H DW 03aaH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__zbuild_huffman DD 025054719H DD 0118231dH DD 070110053H DD 05010H DD imagerel __GSHandlerCheck DD 0288H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__zbuild_huffman$rtcName$0 DB 06eH DB 065H DB 078H DB 074H DB 05fH DB 063H DB 06fH DB 064H DB 065H DB 00H ORG $+2 stbi__zbuild_huffman$rtcName$1 DB 073H DB 069H DB 07aH DB 065H DB 073H DB 00H ORG $+14 stbi__zbuild_huffman$rtcVarDesc DD 0f0H DD 044H DQ FLAT:stbi__zbuild_huffman$rtcName$1 DD 090H DD 040H DQ FLAT:stbi__zbuild_huffman$rtcName$0 ORG $+96 stbi__zbuild_huffman$rtcFrameData DD 02H DD 00H DQ FLAT:stbi__zbuild_huffman$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bit_reverse DD 025051601H DD 01112316H DD 0700a001dH DD 05009H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bitreverse16 DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_info_raw DD 025052201H DD 011d2322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 012c0H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$load_jpeg_image DD 035054c19H DD 011d3322H DD 0701600a9H DD 05015H DD imagerel __GSHandlerCheck DD 0538H xdata ENDS ; COMDAT CONST CONST SEGMENT load_jpeg_image$rtcName$0 DB 063H DB 06fH DB 075H DB 074H DB 070H DB 075H DB 074H DB 00H load_jpeg_image$rtcName$1 DB 072H DB 065H DB 073H DB 05fH DB 063H DB 06fH DB 06dH DB 070H DB 00H ORG $+15 load_jpeg_image$rtcVarDesc DD 0160H DD 0c0H DQ FLAT:load_jpeg_image$rtcName$1 DD 0118H DD 020H DQ FLAT:load_jpeg_image$rtcName$0 ORG $+96 load_jpeg_image$rtcFrameData DD 02H DD 00H DQ FLAT:load_jpeg_image$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__blinn_8x8 DD 025051601H DD 01112316H DD 0700a0021H DD 05009H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__cleanup_jpeg DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__setup_jpeg DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__YCbCr_to_RGB_simd DD 025052201H DD 011d2322H DD 070160147H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__YCbCr_to_RGB_row DD 025052201H DD 011d2322H DD 070160039H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__resample_row_generic DD 025052201H DD 011d2322H DD 070160025H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__resample_row_hv_2_simd DD 025052201H DD 011d2322H DD 0701600e9H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__resample_row_hv_2 DD 025052201H DD 011d2322H DD 070160029H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__resample_row_h_2 DD 025052201H DD 011d2322H DD 070160029H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__resample_row_v_2 DD 025052201H DD 011d2322H DD 070160021H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$resample_row_1 DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__decode_jpeg_image DD 025051301H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__skip_jpeg_junk_at_end DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__decode_jpeg_header DD 025051701H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__process_frame_header DD 025051701H DD 01122317H DD 0700b003dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__free_jpeg_components DD 025051c01H DD 0117231cH DD 070100021H DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__process_scan_header DD 025051301H DD 010e2313H DD 070070035H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03aH DW 075bH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__process_marker DD 025054119H DD 01122317H DD 0700b0081H DD 0500aH DD imagerel __GSHandlerCheck DD 03f8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__process_marker$rtcName$0 DB 073H DB 069H DB 07aH DB 065H DB 073H DB 00H ORG $+10 stbi__process_marker$rtcVarDesc DD 0110H DD 040H DQ FLAT:stbi__process_marker$rtcName$0 ORG $+48 stbi__process_marker$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__process_marker$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_finish DD 025051301H DD 010e2313H DD 070070035H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_dequantize DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 036H DW 0c93H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__parse_entropy_coded_data DD 045053d19H DD 010e4313H DD 0700700f5H DD 05006H DD imagerel __GSHandlerCheck DD 0798H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__parse_entropy_coded_data$rtcName$0 DB 064H DB 061H DB 074H DB 061H DB 00H ORG $+3 stbi__parse_entropy_coded_data$rtcName$1 DB 064H DB 061H DB 074H DB 061H DB 00H ORG $+3 stbi__parse_entropy_coded_data$rtcVarDesc DD 0250H DD 080H DQ FLAT:stbi__parse_entropy_coded_data$rtcName$1 DD 090H DD 080H DQ FLAT:stbi__parse_entropy_coded_data$rtcName$0 ORG $+96 stbi__parse_entropy_coded_data$rtcFrameData DD 02H DD 00H DQ FLAT:stbi__parse_entropy_coded_data$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_reset DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__get_marker DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__idct_simd DD 025052201H DD 011d2322H DD 0701004afH DD 0500fH xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03fH DW 0c5cH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__idct_block DD 025054619H DD 0117231cH DD 0701000edH DD 0500fH DD imagerel __GSHandlerCheck DD 0758H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__idct_block$rtcName$0 DB 076H DB 061H DB 06cH DB 00H ORG $+12 stbi__idct_block$rtcVarDesc DD 050H DD 0100H DQ FLAT:stbi__idct_block$rtcName$0 ORG $+48 stbi__idct_block$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__idct_block$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__clamp DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_decode_block_prog_ac DD 025052201H DD 011d2322H DD 070160051H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_decode_block_prog_dc DD 025052201H DD 011d2322H DD 070160029H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_decode_block DD 025052201H DD 011d2322H DD 070160041H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_get_bit DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_get_bits DD 025051701H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__extend_receive DD 025051701H DD 01122317H DD 0700b0025H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_huff_decode DD 025051801H DD 01132318H DD 0700c002dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__grow_buffer_unsafe DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__build_fast_ac DD 025051801H DD 01132318H DD 0700c003dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__build_huffman DD 025051801H DD 01132318H DD 0700c0039H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__convert_format16 DD 025052101H DD 011c2321H DD 070150031H DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__compute_y_16 DD 025051b01H DD 0116231bH DD 0700f001dH DD 0500eH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__convert_format DD 025052101H DD 011c2321H DD 070150031H DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__compute_y DD 025051b01H DD 0116231bH DD 0700f001dH DD 0500eH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__get32le DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__get16le DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__get32be DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__get16be DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__getn DD 025051d01H DD 0118231dH DD 070110029H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__skip DD 025051701H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__at_eof DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__get8 DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 01a0H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__loadf_main DD 035054c19H DD 011d3322H DD 07016002fH DD 05015H DD imagerel __GSHandlerCheck DD 0160H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__loadf_main$rtcName$0 DB 072H DB 069H DB 00H ORG $+13 stbi__loadf_main$rtcVarDesc DD 058H DD 0cH DQ FLAT:stbi__loadf_main$rtcName$0 ORG $+48 stbi__loadf_main$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__loadf_main$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 03bH DB 08dH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__fopen DD 025054219H DD 01132318H DD 0700c0021H DD 0500bH DD imagerel __GSHandlerCheck DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__fopen$rtcName$0 DB 066H DB 00H ORG $+14 stbi__fopen$rtcVarDesc DD 028H DD 08H DQ FLAT:stbi__fopen$rtcName$0 ORG $+48 stbi__fopen$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__fopen$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__float_postprocess DD 025052201H DD 011d2322H DD 070160021H DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 01f3H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__load_and_postprocess_16bit DD 045054c19H DD 011d4322H DD 07016002fH DD 05015H DD imagerel __GSHandlerCheck DD 0168H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__load_and_postprocess_16bit$rtcName$0 DB 072H DB 069H DB 00H ORG $+13 stbi__load_and_postprocess_16bit$rtcVarDesc DD 048H DD 0cH DQ FLAT:stbi__load_and_postprocess_16bit$rtcName$0 ORG $+48 stbi__load_and_postprocess_16bit$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__load_and_postprocess_16bit$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 01edH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__load_and_postprocess_8bit DD 045054c19H DD 011d4322H DD 07016002fH DD 05015H DD imagerel __GSHandlerCheck DD 0168H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__load_and_postprocess_8bit$rtcName$0 DB 072H DB 069H DB 00H ORG $+13 stbi__load_and_postprocess_8bit$rtcVarDesc DD 048H DD 0cH DQ FLAT:stbi__load_and_postprocess_8bit$rtcName$0 ORG $+48 stbi__load_and_postprocess_8bit$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__load_and_postprocess_8bit$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__vertical_flip_slices DD 025052101H DD 011c2321H DD 070150029H DD 05014H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 044H DW 01eaH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__vertical_flip DD 025054b19H DD 011c2321H DD 07015019fH DD 05014H DD imagerel __GSHandlerCheck DD 0ce0H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__vertical_flip$rtcName$0 DB 074H DB 065H DB 06dH DB 070H DB 00H ORG $+11 stbi__vertical_flip$rtcVarDesc DD 070H DD 0800H DQ FLAT:stbi__vertical_flip$rtcName$0 ORG $+48 stbi__vertical_flip$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__vertical_flip$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__convert_8_to_16 DD 025052101H DD 011c2321H DD 070150029H DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__convert_16_to_8 DD 025052101H DD 011c2321H DD 070150029H DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__load_main DD 045052201H DD 011d4322H DD 070160025H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__hdr_to_ldr DD 025052101H DD 011c2321H DD 070150035H DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__ldr_to_hdr DD 035052101H DD 011c3321H DD 07015002fH DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__mul2shorts_valid DD 025051801H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__addints_valid DD 025051601H DD 01112316H DD 0700a001fH DD 05009H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__malloc_mad4 DD 035052001H DD 011b3320H DD 07014001fH DD 05013H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__malloc_mad3 DD 025052001H DD 011b2320H DD 07014001dH DD 05013H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__malloc_mad2 DD 025051b01H DD 0116231bH DD 0700f001dH DD 0500eH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__mad4sizes_valid DD 025052001H DD 011b2320H DD 07014001fH DD 05013H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__mad3sizes_valid DD 025052001H DD 011b2320H DD 07014001fH DD 05013H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__mad2sizes_valid DD 025051b01H DD 0116231bH DD 0700f001fH DD 0500eH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__mul2sizes_valid DD 025051601H DD 01112316H DD 0700a001fH DD 05009H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__addsizes_valid DD 025051601H DD 01112316H DD 0700a001fH DD 05009H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__malloc DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__err DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pnm_is16 DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 0230H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pnm_info DD 025054c19H DD 011d2322H DD 070160031H DD 05015H DD imagerel __GSHandlerCheck DD 0178H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__pnm_info$rtcName$0 DB 064H DB 075H DB 06dH DB 06dH DB 079H DB 00H ORG $+2 stbi__pnm_info$rtcName$1 DB 063H DB 00H ORG $+6 stbi__pnm_info$rtcVarDesc DD 064H DD 01H DQ FLAT:stbi__pnm_info$rtcName$1 DD 044H DD 04H DQ FLAT:stbi__pnm_info$rtcName$0 ORG $+96 stbi__pnm_info$rtcFrameData DD 02H DD 00H DQ FLAT:stbi__pnm_info$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pnm_load DD 035052201H DD 011d3322H DD 070160023H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pnm_test DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__gif_info DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 04bH DW 0452H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__load_gif_main DD 035055219H DD 01233328H DD 0701611ffH DD 05015H DD imagerel __GSHandlerCheck DD 08fe0H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__load_gif_main$rtcName$0 DB 067H DB 00H ORG $+14 stbi__load_gif_main$rtcVarDesc DD 0c0H DD 08870H DQ FLAT:stbi__load_gif_main$rtcName$0 ORG $+48 stbi__load_gif_main$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__load_gif_main$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 04bH DW 0152H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__gif_load DD 035055219H DD 01233328H DD 0701611ddH DD 05015H DD imagerel __GSHandlerCheck DD 08ed8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__gif_load$rtcName$0 DB 067H DB 00H ORG $+14 stbi__gif_load$rtcVarDesc DD 060H DD 08870H DQ FLAT:stbi__gif_load$rtcName$0 ORG $+48 stbi__gif_load$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__gif_load$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__gif_test DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 02aaH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pic_info DD 025054c19H DD 011d2322H DD 070160039H DD 05015H DD imagerel __GSHandlerCheck DD 01b8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__pic_info$rtcName$0 DB 064H DB 075H DB 06dH DB 06dH DB 079H DB 00H ORG $+2 stbi__pic_info$rtcName$1 DB 070H DB 061H DB 063H DB 06bH DB 065H DB 074H DB 073H DB 00H stbi__pic_info$rtcVarDesc DD 0a8H DD 01eH DQ FLAT:stbi__pic_info$rtcName$1 DD 084H DD 04H DQ FLAT:stbi__pic_info$rtcName$0 ORG $+96 stbi__pic_info$rtcFrameData DD 02H DD 00H DQ FLAT:stbi__pic_info$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 0300H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pic_load DD 035054c19H DD 011d3322H DD 070160035H DD 05015H DD imagerel __GSHandlerCheck DD 0190H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__pic_load$rtcName$0 DB 069H DB 06eH DB 074H DB 065H DB 072H DB 06eH DB 061H DB 06cH DB 05fH DB 063H DB 06fH DB 06dH DB 070H DB 00H ORG $+2 stbi__pic_load$rtcVarDesc DD 0b4H DD 04H DQ FLAT:stbi__pic_load$rtcName$0 ORG $+48 stbi__pic_load$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__pic_load$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__pic_test DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 0267H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__hdr_info DD 025054c19H DD 011d2322H DD 0701600ddH DD 05015H DD imagerel __GSHandlerCheck DD 06d8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__hdr_info$rtcName$0 DB 062H DB 075H DB 066H DB 066H DB 065H DB 072H DB 00H ORG $+1 stbi__hdr_info$rtcName$1 DB 074H DB 06fH DB 06bH DB 065H DB 06eH DB 00H ORG $+2 stbi__hdr_info$rtcName$2 DB 064H DB 075H DB 06dH DB 06dH DB 079H DB 00H ORG $+10 stbi__hdr_info$rtcVarDesc DD 0484H DD 04H DQ FLAT:stbi__hdr_info$rtcName$2 DD 0448H DD 08H DQ FLAT:stbi__hdr_info$rtcName$1 DD 030H DD 0400H DQ FLAT:stbi__hdr_info$rtcName$0 ORG $+144 stbi__hdr_info$rtcFrameData DD 03H DD 00H DQ FLAT:stbi__hdr_info$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 0a45H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__hdr_load DD 035054c19H DD 011d3322H DD 070160139H DD 05015H DD imagerel __GSHandlerCheck DD 09b0H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__hdr_load$rtcName$0 DB 062H DB 075H DB 066H DB 066H DB 065H DB 072H DB 00H ORG $+1 stbi__hdr_load$rtcName$1 DB 074H DB 06fH DB 06bH DB 065H DB 06eH DB 00H ORG $+2 stbi__hdr_load$rtcName$2 DB 072H DB 067H DB 062H DB 065H DB 00H ORG $+3 stbi__hdr_load$rtcName$3 DB 072H DB 067H DB 062H DB 065H DB 00H ORG $+3 stbi__hdr_load$rtcVarDesc DD 0674H DD 04H DQ FLAT:stbi__hdr_load$rtcName$3 DD 0654H DD 04H DQ FLAT:stbi__hdr_load$rtcName$2 DD 0458H DD 08H DQ FLAT:stbi__hdr_load$rtcName$1 DD 040H DD 0400H DQ FLAT:stbi__hdr_load$rtcName$0 ORG $+192 stbi__hdr_load$rtcFrameData DD 04H DD 00H DQ FLAT:stbi__hdr_load$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__hdr_test DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__psd_is16 DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 01c5H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__psd_info DD 025054c19H DD 011d2322H DD 070160029H DD 05015H DD imagerel __GSHandlerCheck DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__psd_info$rtcName$0 DB 064H DB 075H DB 06dH DB 06dH DB 079H DB 00H ORG $+10 stbi__psd_info$rtcVarDesc DD 044H DD 04H DQ FLAT:stbi__psd_info$rtcName$0 ORG $+48 stbi__psd_info$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__psd_info$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__psd_load DD 035052201H DD 011d3322H DD 070160097H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__psd_test DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__tga_info DD 025052201H DD 011d2322H DD 07016003dH DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 0babH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__tga_load DD 035054c19H DD 011d3322H DD 0701600d5H DD 05015H DD imagerel __GSHandlerCheck DD 0690H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__tga_load$rtcName$0 DB 074H DB 067H DB 061H DB 05fH DB 072H DB 067H DB 062H DB 031H DB 036H DB 00H ORG $+6 stbi__tga_load$rtcName$1 DB 072H DB 061H DB 077H DB 05fH DB 064H DB 061H DB 074H DB 061H DB 00H ORG $+7 stbi__tga_load$rtcVarDesc DD 0294H DD 04H DQ FLAT:stbi__tga_load$rtcName$1 DD 01d4H DD 04H DQ FLAT:stbi__tga_load$rtcName$0 ORG $+96 stbi__tga_load$rtcFrameData DD 02H DD 00H DQ FLAT:stbi__tga_load$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__tga_test DD 025051301H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 0136H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bmp_info DD 025054c19H DD 011d2322H DD 070160029H DD 05015H DD imagerel __GSHandlerCheck DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__bmp_info$rtcName$0 DB 069H DB 06eH DB 066H DB 06fH DB 00H ORG $+11 stbi__bmp_info$rtcVarDesc DD 048H DD 024H DQ FLAT:stbi__bmp_info$rtcName$0 ORG $+48 stbi__bmp_info$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__bmp_info$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 01328H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bmp_load DD 035054c19H DD 011d3322H DD 0701601a9H DD 05015H DD imagerel __GSHandlerCheck DD 0d30H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__bmp_load$rtcName$0 DB 070H DB 061H DB 06cH DB 00H stbi__bmp_load$rtcName$1 DB 069H DB 06eH DB 066H DB 06fH DB 00H ORG $+7 stbi__bmp_load$rtcVarDesc DD 05f8H DD 024H DQ FLAT:stbi__bmp_load$rtcName$1 DD 0100H DD 0400H DQ FLAT:stbi__bmp_load$rtcName$0 ORG $+96 stbi__bmp_load$rtcFrameData DD 02H DD 00H DQ FLAT:stbi__bmp_load$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__bmp_test DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 036H DB 09dH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__png_is16 DD 025053d19H DD 010e2313H DD 070070025H DD 05006H DD imagerel __GSHandlerCheck DD 0118H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__png_is16$rtcName$0 DB 070H DB 00H ORG $+14 stbi__png_is16$rtcVarDesc DD 028H DD 028H DQ FLAT:stbi__png_is16$rtcName$0 ORG $+48 stbi__png_is16$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__png_is16$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 098H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__png_info DD 025054c19H DD 011d2322H DD 070160025H DD 05015H DD imagerel __GSHandlerCheck DD 0118H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__png_info$rtcName$0 DB 070H DB 00H ORG $+14 stbi__png_info$rtcVarDesc DD 028H DD 028H DQ FLAT:stbi__png_info$rtcName$0 ORG $+48 stbi__png_info$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__png_info$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0aeH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__png_load DD 035054c19H DD 011d3322H DD 070160027H DD 05015H DD imagerel __GSHandlerCheck DD 0128H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__png_load$rtcName$0 DB 070H DB 00H ORG $+14 stbi__png_load$rtcVarDesc DD 038H DD 028H DQ FLAT:stbi__png_load$rtcName$0 ORG $+48 stbi__png_load$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__png_load$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__png_test DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_info DD 025052201H DD 011d2322H DD 070160025H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_load DD 035052201H DD 011d3322H DD 070160027H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__jpeg_test DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__rewind DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__start_file DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__stdio_eof DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__stdio_skip DD 025051701H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__stdio_read DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__start_callbacks DD 025061e01H DD 0119231eH DD 07012001eH DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__start_mem DD 025051d01H DD 0118231dH DD 07011001fH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__refill_buffer DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__sse2_available DD 025050f01H DD 010a230fH DD 070030021H DD 05002H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 02bH DB 07cH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi__cpuid3 DD 025063219H DD 010b2310H DD 070040022H DD 050023003H DD imagerel __GSHandlerCheck DD 0108H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi__cpuid3$rtcName$0 DB 069H DB 06eH DB 066H DB 06fH DB 00H ORG $+11 stbi__cpuid3$rtcVarDesc DD 028H DD 010H DQ FLAT:stbi__cpuid3$rtcName$0 ORG $+48 stbi__cpuid3$rtcFrameData DD 01H DD 00H DQ FLAT:stbi__cpuid3$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 04aH DB 0d4H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_zlib_decode_noheader_buffer DD 035055119H DD 01223327H DD 0701502cbH DD 05014H DD imagerel __GSHandlerCheck DD 01648H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_zlib_decode_noheader_buffer$rtcName$0 DB 061H DB 00H ORG $+14 stbi_zlib_decode_noheader_buffer$rtcVarDesc DD 040H DD 01000H DQ FLAT:stbi_zlib_decode_noheader_buffer$rtcName$0 ORG $+48 stbi_zlib_decode_noheader_buffer$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_zlib_decode_noheader_buffer$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 045H DW 0112H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_zlib_decode_noheader_malloc DD 035054c19H DD 011d3322H DD 0701002cfH DD 0500fH DD imagerel __GSHandlerCheck DD 01668H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_zlib_decode_noheader_malloc$rtcName$0 DB 061H DB 00H ORG $+14 stbi_zlib_decode_noheader_malloc$rtcVarDesc DD 040H DD 01000H DQ FLAT:stbi_zlib_decode_noheader_malloc$rtcName$0 ORG $+48 stbi_zlib_decode_noheader_malloc$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_zlib_decode_noheader_malloc$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 04aH DB 0d4H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_zlib_decode_buffer DD 035055119H DD 01223327H DD 0701502cbH DD 05014H DD imagerel __GSHandlerCheck DD 01648H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_zlib_decode_buffer$rtcName$0 DB 061H DB 00H ORG $+14 stbi_zlib_decode_buffer$rtcVarDesc DD 040H DD 01000H DQ FLAT:stbi_zlib_decode_buffer$rtcName$0 ORG $+48 stbi_zlib_decode_buffer$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_zlib_decode_buffer$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_zlib_decode_malloc DD 025051c01H DD 0117231cH DD 07010001dH DD 0500fH xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 04aH DW 011fH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_zlib_decode_malloc_guesssize_headerflag DD 035055119H DD 01223327H DD 0701502cfH DD 05014H DD imagerel __GSHandlerCheck DD 01668H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_zlib_decode_malloc_guesssize_headerflag$rtcName$0 DB 061H DB 00H ORG $+14 stbi_zlib_decode_malloc_guesssize_headerflag$rtcVarDesc DD 040H DD 01000H DQ FLAT:stbi_zlib_decode_malloc_guesssize_headerflag$rtcName$0 ORG $+48 stbi_zlib_decode_malloc_guesssize_headerflag$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_zlib_decode_malloc_guesssize_headerflag$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 04aH DW 011dH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_zlib_decode_malloc_guesssize DD 035055119H DD 01223327H DD 0701502cfH DD 05014H DD imagerel __GSHandlerCheck DD 01668H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_zlib_decode_malloc_guesssize$rtcName$0 DB 061H DB 00H ORG $+14 stbi_zlib_decode_malloc_guesssize$rtcVarDesc DD 040H DD 01000H DQ FLAT:stbi_zlib_decode_malloc_guesssize$rtcName$0 ORG $+48 stbi_zlib_decode_malloc_guesssize$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_zlib_decode_malloc_guesssize$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_set_flip_vertically_on_load_thread DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_convert_iphone_png_to_rgb_thread DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_set_unpremultiply_on_load_thread DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_set_flip_vertically_on_load DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_convert_iphone_png_to_rgb DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_set_unpremultiply_on_load DD 025051201H DD 010d2312H DD 07006001dH DD 05005H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 036H DB 0a8H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_is_16_bit_from_file DD 025053d19H DD 010e2313H DD 070070045H DD 05006H DD imagerel __GSHandlerCheck DD 0218H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_is_16_bit_from_file$rtcName$0 DB 073H DB 00H ORG $+14 stbi_is_16_bit_from_file$rtcVarDesc DD 050H DD 0e0H DQ FLAT:stbi_is_16_bit_from_file$rtcName$0 ORG $+48 stbi_is_16_bit_from_file$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_is_16_bit_from_file$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_is_16_bit DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0ccH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_info_from_file DD 025054c19H DD 011d2322H DD 070160045H DD 05015H DD imagerel __GSHandlerCheck DD 0218H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_info_from_file$rtcName$0 DB 073H DB 00H ORG $+14 stbi_info_from_file$rtcVarDesc DD 050H DD 0e0H DQ FLAT:stbi_info_from_file$rtcName$0 ORG $+48 stbi_info_from_file$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_info_from_file$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_info DD 025052201H DD 011d2322H DD 070160025H DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 03bH DB 086H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_is_16_bit_from_callbacks DD 025054219H DD 01132318H DD 0700c003dH DD 0500bH DD imagerel __GSHandlerCheck DD 01d8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_is_16_bit_from_callbacks$rtcName$0 DB 073H DB 00H ORG $+14 stbi_is_16_bit_from_callbacks$rtcVarDesc DD 030H DD 0e0H DQ FLAT:stbi_is_16_bit_from_callbacks$rtcName$0 ORG $+48 stbi_is_16_bit_from_callbacks$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_is_16_bit_from_callbacks$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 03aH DB 085H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_is_16_bit_from_memory DD 025054119H DD 01122317H DD 0700b003dH DD 0500aH DD imagerel __GSHandlerCheck DD 01d8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_is_16_bit_from_memory$rtcName$0 DB 073H DB 00H ORG $+14 stbi_is_16_bit_from_memory$rtcVarDesc DD 030H DD 0e0H DQ FLAT:stbi_is_16_bit_from_memory$rtcName$0 ORG $+48 stbi_is_16_bit_from_memory$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_is_16_bit_from_memory$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0a5H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_info_from_callbacks DD 025054c19H DD 011d2322H DD 07016003dH DD 05015H DD imagerel __GSHandlerCheck DD 01d8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_info_from_callbacks$rtcName$0 DB 073H DB 00H ORG $+14 stbi_info_from_callbacks$rtcVarDesc DD 030H DD 0e0H DQ FLAT:stbi_info_from_callbacks$rtcName$0 ORG $+48 stbi_info_from_callbacks$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_info_from_callbacks$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 044H DB 0a4H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_info_from_memory DD 025054b19H DD 011c2321H DD 07015003dH DD 05014H DD imagerel __GSHandlerCheck DD 01d8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_info_from_memory$rtcName$0 DB 073H DB 00H ORG $+14 stbi_info_from_memory$rtcVarDesc DD 030H DD 0e0H DQ FLAT:stbi_info_from_memory$rtcName$0 ORG $+48 stbi_info_from_memory$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_info_from_memory$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_image_free DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_failure_reason DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 036H DB 0a2H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_is_hdr_from_file DD 025053d19H DD 010e2313H DD 070070045H DD 05006H DD imagerel __GSHandlerCheck DD 0218H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_is_hdr_from_file$rtcName$0 DB 073H DB 00H ORG $+14 stbi_is_hdr_from_file$rtcVarDesc DD 070H DD 0e0H DQ FLAT:stbi_is_hdr_from_file$rtcName$0 ORG $+48 stbi_is_hdr_from_file$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_is_hdr_from_file$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_is_hdr DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 03aH DB 085H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_is_hdr_from_memory DD 025054119H DD 01122317H DD 0700b003dH DD 0500aH DD imagerel __GSHandlerCheck DD 01d8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_is_hdr_from_memory$rtcName$0 DB 073H DB 00H ORG $+14 stbi_is_hdr_from_memory$rtcVarDesc DD 030H DD 0e0H DQ FLAT:stbi_is_hdr_from_memory$rtcName$0 ORG $+48 stbi_is_hdr_from_memory$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_is_hdr_from_memory$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 03bH DB 086H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_is_hdr_from_callbacks DD 025054219H DD 01132318H DD 0700c003dH DD 0500bH DD imagerel __GSHandlerCheck DD 01d8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_is_hdr_from_callbacks$rtcName$0 DB 073H DB 00H ORG $+14 stbi_is_hdr_from_callbacks$rtcVarDesc DD 030H DD 0e0H DQ FLAT:stbi_is_hdr_from_callbacks$rtcName$0 ORG $+48 stbi_is_hdr_from_callbacks$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_is_hdr_from_callbacks$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_ldr_to_hdr_scale DD 025051401H DD 010f2314H DD 07008001dH DD 05007H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_ldr_to_hdr_gamma DD 025051401H DD 010f2314H DD 07008001dH DD 05007H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_hdr_to_ldr_scale DD 025051401H DD 010f2314H DD 07008001dH DD 05007H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_hdr_to_ldr_gamma DD 025051401H DD 010f2314H DD 07008001dH DD 05007H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0a8H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_loadf_from_file DD 035054c19H DD 011d3322H DD 07016003fH DD 05015H DD imagerel __GSHandlerCheck DD 01e8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_loadf_from_file$rtcName$0 DB 073H DB 00H ORG $+14 stbi_loadf_from_file$rtcVarDesc DD 040H DD 0e0H DQ FLAT:stbi_loadf_from_file$rtcName$0 ORG $+48 stbi_loadf_from_file$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_loadf_from_file$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_loadf DD 035052201H DD 011d3322H DD 070160027H DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0afH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_loadf_from_callbacks DD 035054c19H DD 011d3322H DD 07016003fH DD 05015H DD imagerel __GSHandlerCheck DD 01e8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_loadf_from_callbacks$rtcName$0 DB 073H DB 00H ORG $+14 stbi_loadf_from_callbacks$rtcVarDesc DD 040H DD 0e0H DQ FLAT:stbi_loadf_from_callbacks$rtcName$0 ORG $+48 stbi_loadf_from_callbacks$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_loadf_from_callbacks$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 044H DB 0aeH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_loadf_from_memory DD 035054b19H DD 011c3321H DD 07015003fH DD 05014H DD imagerel __GSHandlerCheck DD 01e8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_loadf_from_memory$rtcName$0 DB 073H DB 00H ORG $+14 stbi_loadf_from_memory$rtcVarDesc DD 040H DD 0e0H DQ FLAT:stbi_loadf_from_memory$rtcName$0 ORG $+48 stbi_loadf_from_memory$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_loadf_from_memory$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0e3H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_from_file_16 DD 035054c19H DD 011d3322H DD 070160043H DD 05015H DD imagerel __GSHandlerCheck DD 0208H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_load_from_file_16$rtcName$0 DB 073H DB 00H ORG $+14 stbi_load_from_file_16$rtcVarDesc DD 060H DD 0e0H DQ FLAT:stbi_load_from_file_16$rtcName$0 ORG $+48 stbi_load_from_file_16$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_load_from_file_16$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_16 DD 035052201H DD 011d3322H DD 070160027H DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0afH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_16_from_callbacks DD 035054c19H DD 011d3322H DD 07016003fH DD 05015H DD imagerel __GSHandlerCheck DD 01e8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_load_16_from_callbacks$rtcName$0 DB 073H DB 00H ORG $+14 stbi_load_16_from_callbacks$rtcVarDesc DD 040H DD 0e0H DQ FLAT:stbi_load_16_from_callbacks$rtcName$0 ORG $+48 stbi_load_16_from_callbacks$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_load_16_from_callbacks$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 044H DB 0aeH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_16_from_memory DD 035054b19H DD 011c3321H DD 07015003fH DD 05014H DD imagerel __GSHandlerCheck DD 01e8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_load_16_from_memory$rtcName$0 DB 073H DB 00H ORG $+14 stbi_load_16_from_memory$rtcVarDesc DD 040H DD 0e0H DQ FLAT:stbi_load_16_from_memory$rtcName$0 ORG $+48 stbi_load_16_from_memory$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_load_16_from_memory$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 044H DW 015cH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_gif_from_memory DD 045054b19H DD 011c4321H DD 070150045H DD 05014H DD imagerel __GSHandlerCheck DD 0218H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_load_gif_from_memory$rtcName$0 DB 073H DB 00H ORG $+14 stbi_load_gif_from_memory$rtcVarDesc DD 070H DD 0e0H DQ FLAT:stbi_load_gif_from_memory$rtcName$0 ORG $+48 stbi_load_gif_from_memory$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_load_gif_from_memory$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0e3H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_from_file DD 035054c19H DD 011d3322H DD 070160043H DD 05015H DD imagerel __GSHandlerCheck DD 0208H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_load_from_file$rtcName$0 DB 073H DB 00H ORG $+14 stbi_load_from_file$rtcVarDesc DD 060H DD 0e0H DQ FLAT:stbi_load_from_file$rtcName$0 ORG $+48 stbi_load_from_file$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_load_from_file$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_to_target DD 035052201H DD 011d3322H DD 070160027H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load DD 035052201H DD 011d3322H DD 070160027H DD 05015H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0afH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_from_callbacks DD 035054c19H DD 011d3322H DD 07016003fH DD 05015H DD imagerel __GSHandlerCheck DD 01e8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_load_from_callbacks$rtcName$0 DB 073H DB 00H ORG $+14 stbi_load_from_callbacks$rtcVarDesc DD 040H DD 0e0H DQ FLAT:stbi_load_from_callbacks$rtcName$0 ORG $+48 stbi_load_from_callbacks$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_load_from_callbacks$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 044H DB 0aeH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$stbi_load_from_memory DD 035054b19H DD 011c3321H DD 07015003fH DD 05014H DD imagerel __GSHandlerCheck DD 01e8H xdata ENDS ; COMDAT CONST CONST SEGMENT stbi_load_from_memory$rtcName$0 DB 073H DB 00H ORG $+14 stbi_load_from_memory$rtcVarDesc DD 040H DD 0e0H DQ FLAT:stbi_load_from_memory$rtcName$0 ORG $+48 stbi_load_from_memory$rtcFrameData DD 01H DD 00H DQ FLAT:stbi_load_from_memory$rtcVarDesc CONST ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default _TEXT SEGMENT __JustMyCode_Default PROC ; COMDAT 00000 c2 00 00 ret 0 __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__is_16_main _TEXT SEGMENT s$ = 224 stbi__is_16_main PROC ; COMDAT ; 8159 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 8160 : #ifndef STBI_NO_PNG ; 8161 : if (stbi__png_is16(s)) 00020 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__png_is16 0002c 85 c0 test eax, eax 0002e 74 07 je SHORT $LN2@stbi__is_1 ; 8162 : return 1; 00030 b8 01 00 00 00 mov eax, 1 00035 eb 30 jmp SHORT $LN1@stbi__is_1 $LN2@stbi__is_1: ; 8163 : #endif ; 8164 : ; 8165 : #ifndef STBI_NO_PSD ; 8166 : if (stbi__psd_is16(s)) 00037 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0003e e8 00 00 00 00 call stbi__psd_is16 00043 85 c0 test eax, eax 00045 74 07 je SHORT $LN3@stbi__is_1 ; 8167 : return 1; 00047 b8 01 00 00 00 mov eax, 1 0004c eb 19 jmp SHORT $LN1@stbi__is_1 $LN3@stbi__is_1: ; 8168 : #endif ; 8169 : ; 8170 : #ifndef STBI_NO_PNM ; 8171 : if (stbi__pnm_is16(s)) 0004e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00055 e8 00 00 00 00 call stbi__pnm_is16 0005a 85 c0 test eax, eax 0005c 74 07 je SHORT $LN4@stbi__is_1 ; 8172 : return 1; 0005e b8 01 00 00 00 mov eax, 1 00063 eb 02 jmp SHORT $LN1@stbi__is_1 $LN4@stbi__is_1: ; 8173 : #endif ; 8174 : return 0; 00065 33 c0 xor eax, eax $LN1@stbi__is_1: ; 8175 : } 00067 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0006e 5f pop rdi 0006f 5d pop rbp 00070 c3 ret 0 stbi__is_16_main ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__info_main _TEXT SEGMENT s$ = 224 x$ = 232 y$ = 240 comp$ = 248 stbi__info_main PROC ; COMDAT ; 8109 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 8110 : #ifndef STBI_NO_JPEG ; 8111 : if (stbi__jpeg_info(s, x, y, comp)) 0002f 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 00036 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 0003d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 00044 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0004b e8 00 00 00 00 call stbi__jpeg_info 00050 85 c0 test eax, eax 00052 74 0a je SHORT $LN2@stbi__info ; 8112 : return 1; 00054 b8 01 00 00 00 mov eax, 1 00059 e9 7b 01 00 00 jmp $LN1@stbi__info $LN2@stbi__info: ; 8113 : #endif ; 8114 : ; 8115 : #ifndef STBI_NO_PNG ; 8116 : if (stbi__png_info(s, x, y, comp)) 0005e 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 00065 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 0006c 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 00073 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0007a e8 00 00 00 00 call stbi__png_info 0007f 85 c0 test eax, eax 00081 74 0a je SHORT $LN3@stbi__info ; 8117 : return 1; 00083 b8 01 00 00 00 mov eax, 1 00088 e9 4c 01 00 00 jmp $LN1@stbi__info $LN3@stbi__info: ; 8118 : #endif ; 8119 : ; 8120 : #ifndef STBI_NO_GIF ; 8121 : if (stbi__gif_info(s, x, y, comp)) 0008d 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 00094 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 0009b 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 000a2 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 000a9 e8 00 00 00 00 call stbi__gif_info 000ae 85 c0 test eax, eax 000b0 74 0a je SHORT $LN4@stbi__info ; 8122 : return 1; 000b2 b8 01 00 00 00 mov eax, 1 000b7 e9 1d 01 00 00 jmp $LN1@stbi__info $LN4@stbi__info: ; 8123 : #endif ; 8124 : ; 8125 : #ifndef STBI_NO_BMP ; 8126 : if (stbi__bmp_info(s, x, y, comp)) 000bc 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 000c3 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 000ca 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 000d1 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 000d8 e8 00 00 00 00 call stbi__bmp_info 000dd 85 c0 test eax, eax 000df 74 0a je SHORT $LN5@stbi__info ; 8127 : return 1; 000e1 b8 01 00 00 00 mov eax, 1 000e6 e9 ee 00 00 00 jmp $LN1@stbi__info $LN5@stbi__info: ; 8128 : #endif ; 8129 : ; 8130 : #ifndef STBI_NO_PSD ; 8131 : if (stbi__psd_info(s, x, y, comp)) 000eb 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 000f2 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 000f9 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 00100 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00107 e8 00 00 00 00 call stbi__psd_info 0010c 85 c0 test eax, eax 0010e 74 0a je SHORT $LN6@stbi__info ; 8132 : return 1; 00110 b8 01 00 00 00 mov eax, 1 00115 e9 bf 00 00 00 jmp $LN1@stbi__info $LN6@stbi__info: ; 8133 : #endif ; 8134 : ; 8135 : #ifndef STBI_NO_PIC ; 8136 : if (stbi__pic_info(s, x, y, comp)) 0011a 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 00121 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 00128 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 0012f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00136 e8 00 00 00 00 call stbi__pic_info 0013b 85 c0 test eax, eax 0013d 74 0a je SHORT $LN7@stbi__info ; 8137 : return 1; 0013f b8 01 00 00 00 mov eax, 1 00144 e9 90 00 00 00 jmp $LN1@stbi__info $LN7@stbi__info: ; 8138 : #endif ; 8139 : ; 8140 : #ifndef STBI_NO_PNM ; 8141 : if (stbi__pnm_info(s, x, y, comp)) 00149 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 00150 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 00157 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 0015e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00165 e8 00 00 00 00 call stbi__pnm_info 0016a 85 c0 test eax, eax 0016c 74 07 je SHORT $LN8@stbi__info ; 8142 : return 1; 0016e b8 01 00 00 00 mov eax, 1 00173 eb 64 jmp SHORT $LN1@stbi__info $LN8@stbi__info: ; 8143 : #endif ; 8144 : ; 8145 : #ifndef STBI_NO_HDR ; 8146 : if (stbi__hdr_info(s, x, y, comp)) 00175 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 0017c 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 00183 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 0018a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00191 e8 00 00 00 00 call stbi__hdr_info 00196 85 c0 test eax, eax 00198 74 07 je SHORT $LN9@stbi__info ; 8147 : return 1; 0019a b8 01 00 00 00 mov eax, 1 0019f eb 38 jmp SHORT $LN1@stbi__info $LN9@stbi__info: ; 8148 : #endif ; 8149 : ; 8150 : // test tga last because it's a crappy test! ; 8151 : #ifndef STBI_NO_TGA ; 8152 : if (stbi__tga_info(s, x, y, comp)) 001a1 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 001a8 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 001af 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 001b6 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 001bd e8 00 00 00 00 call stbi__tga_info 001c2 85 c0 test eax, eax 001c4 74 07 je SHORT $LN10@stbi__info ; 8153 : return 1; 001c6 b8 01 00 00 00 mov eax, 1 001cb eb 0c jmp SHORT $LN1@stbi__info $LN10@stbi__info: ; 8154 : #endif ; 8155 : return stbi__err("unknown image type", "Image not of any known type, or corrupt"); 001cd 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@CBEDEJPH@unknown?5image?5type@ 001d4 e8 00 00 00 00 call stbi__err $LN1@stbi__info: ; 8156 : } 001d9 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 001e0 5f pop rdi 001e1 5d pop rbp 001e2 c3 ret 0 stbi__info_main ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pnm_getinteger _TEXT SEGMENT value$ = 4 s$ = 256 c$ = 264 stbi__pnm_getinteger PROC ; COMDAT ; 8038 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 8039 : int value = 0; 00025 c7 45 04 00 00 00 00 mov DWORD PTR value$[rbp], 0 $LN2@stbi__pnm_: ; 8040 : ; 8041 : while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { 0002c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00033 e8 00 00 00 00 call stbi__at_eof 00038 85 c0 test eax, eax 0003a 75 6e jne SHORT $LN3@stbi__pnm_ 0003c 48 8b 85 08 01 00 00 mov rax, QWORD PTR c$[rbp] 00043 0f b6 08 movzx ecx, BYTE PTR [rax] 00046 e8 00 00 00 00 call stbi__pnm_isdigit 0004b 85 c0 test eax, eax 0004d 74 5b je SHORT $LN3@stbi__pnm_ ; 8042 : value = value * 10 + (*c - '0'); 0004f 6b 45 04 0a imul eax, DWORD PTR value$[rbp], 10 00053 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR c$[rbp] 0005a 0f be 09 movsx ecx, BYTE PTR [rcx] 0005d 8d 44 08 d0 lea eax, DWORD PTR [rax+rcx-48] 00061 89 45 04 mov DWORD PTR value$[rbp], eax ; 8043 : *c = (char)stbi__get8(s); 00064 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0006b e8 00 00 00 00 call stbi__get8 00070 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR c$[rbp] 00077 88 01 mov BYTE PTR [rcx], al ; 8044 : if ((value > 214748364) || (value == 214748364 && *c > '7')) 00079 81 7d 04 cc cc cc 0c cmp DWORD PTR value$[rbp], 214748364 ; 0cccccccH 00080 7f 18 jg SHORT $LN5@stbi__pnm_ 00082 81 7d 04 cc cc cc 0c cmp DWORD PTR value$[rbp], 214748364 ; 0cccccccH 00089 75 1d jne SHORT $LN4@stbi__pnm_ 0008b 48 8b 85 08 01 00 00 mov rax, QWORD PTR c$[rbp] 00092 0f be 00 movsx eax, BYTE PTR [rax] 00095 83 f8 37 cmp eax, 55 ; 00000037H 00098 7e 0e jle SHORT $LN4@stbi__pnm_ $LN5@stbi__pnm_: ; 8045 : return stbi__err( 0009a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BH@OBINMOBC@integer?5parse?5overflow@ 000a1 e8 00 00 00 00 call stbi__err 000a6 eb 05 jmp SHORT $LN1@stbi__pnm_ $LN4@stbi__pnm_: ; 8046 : "integer parse overflow", ; 8047 : "Parsing an integer in the PPM header overflowed a 32-bit int"); ; 8048 : } 000a8 eb 82 jmp SHORT $LN2@stbi__pnm_ $LN3@stbi__pnm_: ; 8049 : ; 8050 : return value; 000aa 8b 45 04 mov eax, DWORD PTR value$[rbp] $LN1@stbi__pnm_: ; 8051 : } 000ad 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000b4 5f pop rdi 000b5 5d pop rbp 000b6 c3 ret 0 stbi__pnm_getinteger ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pnm_isdigit _TEXT SEGMENT tv68 = 192 c$ = 240 stbi__pnm_isdigit PROC ; COMDAT ; 8033 : { 00000 88 4c 24 08 mov BYTE PTR [rsp+8], cl 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 8034 : return c >= '0' && c <= '9'; 0001f 0f be 85 f0 00 00 00 movsx eax, BYTE PTR c$[rbp] 00026 83 f8 30 cmp eax, 48 ; 00000030H 00029 7c 18 jl SHORT $LN3@stbi__pnm_ 0002b 0f be 85 f0 00 00 00 movsx eax, BYTE PTR c$[rbp] 00032 83 f8 39 cmp eax, 57 ; 00000039H 00035 7f 0c jg SHORT $LN3@stbi__pnm_ 00037 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 00041 eb 0a jmp SHORT $LN4@stbi__pnm_ $LN3@stbi__pnm_: 00043 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 $LN4@stbi__pnm_: 0004d 8b 85 c0 00 00 00 mov eax, DWORD PTR tv68[rbp] ; 8035 : } 00053 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 0005a 5f pop rdi 0005b 5d pop rbp 0005c c3 ret 0 stbi__pnm_isdigit ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pnm_skip_whitespace _TEXT SEGMENT s$ = 224 c$ = 232 stbi__pnm_skip_whitespace PROC ; COMDAT ; 8019 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 $LN2@stbi__pnm_: $LN5@stbi__pnm_: ; 8020 : for (;;) { ; 8021 : while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) 00025 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0002c e8 00 00 00 00 call stbi__at_eof 00031 85 c0 test eax, eax 00033 75 2a jne SHORT $LN6@stbi__pnm_ 00035 48 8b 85 e8 00 00 00 mov rax, QWORD PTR c$[rbp] 0003c 0f b6 08 movzx ecx, BYTE PTR [rax] 0003f e8 00 00 00 00 call stbi__pnm_isspace 00044 85 c0 test eax, eax 00046 74 17 je SHORT $LN6@stbi__pnm_ ; 8022 : *c = (char)stbi__get8(s); 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0004f e8 00 00 00 00 call stbi__get8 00054 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR c$[rbp] 0005b 88 01 mov BYTE PTR [rcx], al 0005d eb c6 jmp SHORT $LN5@stbi__pnm_ $LN6@stbi__pnm_: ; 8023 : ; 8024 : if (stbi__at_eof(s) || *c != '#') 0005f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00066 e8 00 00 00 00 call stbi__at_eof 0006b 85 c0 test eax, eax 0006d 75 0f jne SHORT $LN10@stbi__pnm_ 0006f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR c$[rbp] 00076 0f be 00 movsx eax, BYTE PTR [rax] 00079 83 f8 23 cmp eax, 35 ; 00000023H 0007c 74 02 je SHORT $LN9@stbi__pnm_ $LN10@stbi__pnm_: ; 8025 : break; 0007e eb 4a jmp SHORT $LN3@stbi__pnm_ $LN9@stbi__pnm_: $LN7@stbi__pnm_: ; 8026 : ; 8027 : while (!stbi__at_eof(s) && *c != '\n' && *c != '\r') 00080 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00087 e8 00 00 00 00 call stbi__at_eof 0008c 85 c0 test eax, eax 0008e 75 35 jne SHORT $LN8@stbi__pnm_ 00090 48 8b 85 e8 00 00 00 mov rax, QWORD PTR c$[rbp] 00097 0f be 00 movsx eax, BYTE PTR [rax] 0009a 83 f8 0a cmp eax, 10 0009d 74 26 je SHORT $LN8@stbi__pnm_ 0009f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR c$[rbp] 000a6 0f be 00 movsx eax, BYTE PTR [rax] 000a9 83 f8 0d cmp eax, 13 000ac 74 17 je SHORT $LN8@stbi__pnm_ ; 8028 : *c = (char)stbi__get8(s); 000ae 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 000b5 e8 00 00 00 00 call stbi__get8 000ba 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR c$[rbp] 000c1 88 01 mov BYTE PTR [rcx], al 000c3 eb bb jmp SHORT $LN7@stbi__pnm_ $LN8@stbi__pnm_: ; 8029 : } 000c5 e9 5b ff ff ff jmp $LN2@stbi__pnm_ $LN3@stbi__pnm_: ; 8030 : } 000ca 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 000d1 5f pop rdi 000d2 5d pop rbp 000d3 c3 ret 0 stbi__pnm_skip_whitespace ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pnm_isspace _TEXT SEGMENT tv76 = 192 c$ = 240 stbi__pnm_isspace PROC ; COMDAT ; 8014 : { 00000 88 4c 24 08 mov BYTE PTR [rsp+8], cl 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 8015 : return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; 0001f 0f be 85 f0 00 00 00 movsx eax, BYTE PTR c$[rbp] 00026 83 f8 20 cmp eax, 32 ; 00000020H 00029 74 48 je SHORT $LN3@stbi__pnm_ 0002b 0f be 85 f0 00 00 00 movsx eax, BYTE PTR c$[rbp] 00032 83 f8 09 cmp eax, 9 00035 74 3c je SHORT $LN3@stbi__pnm_ 00037 0f be 85 f0 00 00 00 movsx eax, BYTE PTR c$[rbp] 0003e 83 f8 0a cmp eax, 10 00041 74 30 je SHORT $LN3@stbi__pnm_ 00043 0f be 85 f0 00 00 00 movsx eax, BYTE PTR c$[rbp] 0004a 83 f8 0b cmp eax, 11 0004d 74 24 je SHORT $LN3@stbi__pnm_ 0004f 0f be 85 f0 00 00 00 movsx eax, BYTE PTR c$[rbp] 00056 83 f8 0c cmp eax, 12 00059 74 18 je SHORT $LN3@stbi__pnm_ 0005b 0f be 85 f0 00 00 00 movsx eax, BYTE PTR c$[rbp] 00062 83 f8 0d cmp eax, 13 00065 74 0c je SHORT $LN3@stbi__pnm_ 00067 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv76[rbp], 0 00071 eb 0a jmp SHORT $LN4@stbi__pnm_ $LN3@stbi__pnm_: 00073 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv76[rbp], 1 $LN4@stbi__pnm_: 0007d 8b 85 c0 00 00 00 mov eax, DWORD PTR tv76[rbp] ; 8016 : } 00083 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 0008a 5f pop rdi 0008b 5d pop rbp 0008c c3 ret 0 stbi__pnm_isspace ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__hdr_convert _TEXT SEGMENT f1$1 = 4 tv152 = 212 output$ = 256 input$ = 264 req_comp$ = 272 stbi__hdr_convert PROC ; COMDAT ; 7545 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 7546 : if (input[3] != 0) { 0002a b8 01 00 00 00 mov eax, 1 0002f 48 6b c0 03 imul rax, rax, 3 00033 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR input$[rbp] 0003a 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0003e 85 c0 test eax, eax 00040 0f 84 8d 01 00 00 je $LN4@stbi__hdr_ ; 7547 : float f1; ; 7548 : // Exponent ; 7549 : f1 = (float)ldexp(1.0f, input[3] - (int)(128 + 8)); 00046 b8 01 00 00 00 mov eax, 1 0004b 48 6b c0 03 imul rax, rax, 3 0004f 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR input$[rbp] 00056 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0005a 2d 88 00 00 00 sub eax, 136 ; 00000088H 0005f 8b d0 mov edx, eax 00061 f2 0f 10 05 00 00 00 00 movsd xmm0, QWORD PTR __real@3ff0000000000000 00069 ff 15 00 00 00 00 call QWORD PTR __imp_ldexp 0006f f2 0f 5a c0 cvtsd2ss xmm0, xmm0 00073 f3 0f 11 45 04 movss DWORD PTR f1$1[rbp], xmm0 ; 7550 : if (req_comp <= 2) 00078 83 bd 10 01 00 00 02 cmp DWORD PTR req_comp$[rbp], 2 0007f 7f 6b jg SHORT $LN6@stbi__hdr_ ; 7551 : output[0] = (input[0] + input[1] + input[2]) * f1 / 3; 00081 b8 01 00 00 00 mov eax, 1 00086 48 6b c0 00 imul rax, rax, 0 0008a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR input$[rbp] 00091 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00095 b9 01 00 00 00 mov ecx, 1 0009a 48 6b c9 01 imul rcx, rcx, 1 0009e 48 8b 95 08 01 00 00 mov rdx, QWORD PTR input$[rbp] 000a5 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 000a9 03 c1 add eax, ecx 000ab b9 01 00 00 00 mov ecx, 1 000b0 48 6b c9 02 imul rcx, rcx, 2 000b4 48 8b 95 08 01 00 00 mov rdx, QWORD PTR input$[rbp] 000bb 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 000bf 03 c1 add eax, ecx 000c1 f3 0f 2a c0 cvtsi2ss xmm0, eax 000c5 f3 0f 59 45 04 mulss xmm0, DWORD PTR f1$1[rbp] 000ca f3 0f 5e 05 00 00 00 00 divss xmm0, DWORD PTR __real@40400000 000d2 b8 04 00 00 00 mov eax, 4 000d7 48 6b c0 00 imul rax, rax, 0 000db 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 000e2 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 000e7 e9 96 00 00 00 jmp $LN7@stbi__hdr_ $LN6@stbi__hdr_: ; 7552 : else { ; 7553 : output[0] = input[0] * f1; 000ec b8 01 00 00 00 mov eax, 1 000f1 48 6b c0 00 imul rax, rax, 0 000f5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR input$[rbp] 000fc 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00100 f3 0f 2a c0 cvtsi2ss xmm0, eax 00104 f3 0f 59 45 04 mulss xmm0, DWORD PTR f1$1[rbp] 00109 b8 04 00 00 00 mov eax, 4 0010e 48 6b c0 00 imul rax, rax, 0 00112 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 00119 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 ; 7554 : output[1] = input[1] * f1; 0011e b8 01 00 00 00 mov eax, 1 00123 48 6b c0 01 imul rax, rax, 1 00127 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR input$[rbp] 0012e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00132 f3 0f 2a c0 cvtsi2ss xmm0, eax 00136 f3 0f 59 45 04 mulss xmm0, DWORD PTR f1$1[rbp] 0013b b8 04 00 00 00 mov eax, 4 00140 48 6b c0 01 imul rax, rax, 1 00144 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 0014b f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 ; 7555 : output[2] = input[2] * f1; 00150 b8 01 00 00 00 mov eax, 1 00155 48 6b c0 02 imul rax, rax, 2 00159 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR input$[rbp] 00160 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00164 f3 0f 2a c0 cvtsi2ss xmm0, eax 00168 f3 0f 59 45 04 mulss xmm0, DWORD PTR f1$1[rbp] 0016d b8 04 00 00 00 mov eax, 4 00172 48 6b c0 02 imul rax, rax, 2 00176 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 0017d f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 $LN7@stbi__hdr_: ; 7556 : } ; 7557 : if (req_comp == 2) 00182 83 bd 10 01 00 00 02 cmp DWORD PTR req_comp$[rbp], 2 00189 75 1d jne SHORT $LN8@stbi__hdr_ ; 7558 : output[1] = 1; 0018b b8 04 00 00 00 mov eax, 4 00190 48 6b c0 01 imul rax, rax, 1 00194 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 0019b f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 001a3 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 $LN8@stbi__hdr_: ; 7559 : if (req_comp == 4) 001a8 83 bd 10 01 00 00 04 cmp DWORD PTR req_comp$[rbp], 4 001af 75 1d jne SHORT $LN9@stbi__hdr_ ; 7560 : output[3] = 1; 001b1 b8 04 00 00 00 mov eax, 4 001b6 48 6b c0 03 imul rax, rax, 3 001ba 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 001c1 f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 001c9 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 $LN9@stbi__hdr_: ; 7561 : } else { 001ce e9 d5 00 00 00 jmp $LN5@stbi__hdr_ $LN4@stbi__hdr_: ; 7562 : switch (req_comp) { 001d3 8b 85 10 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 001d9 89 85 d4 00 00 00 mov DWORD PTR tv152[rbp], eax 001df 83 bd d4 00 00 00 01 cmp DWORD PTR tv152[rbp], 1 001e6 0f 84 a4 00 00 00 je $LN13@stbi__hdr_ 001ec 83 bd d4 00 00 00 02 cmp DWORD PTR tv152[rbp], 2 001f3 74 7e je SHORT $LN12@stbi__hdr_ 001f5 83 bd d4 00 00 00 03 cmp DWORD PTR tv152[rbp], 3 001fc 74 2b je SHORT $LN11@stbi__hdr_ 001fe 83 bd d4 00 00 00 04 cmp DWORD PTR tv152[rbp], 4 00205 74 05 je SHORT $LN10@stbi__hdr_ 00207 e9 9c 00 00 00 jmp $LN2@stbi__hdr_ $LN10@stbi__hdr_: ; 7563 : case 4: ; 7564 : output[3] = 1; /* fallthrough */ 0020c b8 04 00 00 00 mov eax, 4 00211 48 6b c0 03 imul rax, rax, 3 00215 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 0021c f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 00224 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 $LN11@stbi__hdr_: ; 7565 : case 3: ; 7566 : output[0] = output[1] = output[2] = 0; 00229 b8 04 00 00 00 mov eax, 4 0022e 48 6b c0 02 imul rax, rax, 2 00232 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 00239 0f 57 c0 xorps xmm0, xmm0 0023c f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 00241 b8 04 00 00 00 mov eax, 4 00246 48 6b c0 01 imul rax, rax, 1 0024a 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 00251 0f 57 c0 xorps xmm0, xmm0 00254 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 00259 b8 04 00 00 00 mov eax, 4 0025e 48 6b c0 00 imul rax, rax, 0 00262 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 00269 0f 57 c0 xorps xmm0, xmm0 0026c f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 ; 7567 : break; 00271 eb 35 jmp SHORT $LN2@stbi__hdr_ $LN12@stbi__hdr_: ; 7568 : case 2: ; 7569 : output[1] = 1; /* fallthrough */ 00273 b8 04 00 00 00 mov eax, 4 00278 48 6b c0 01 imul rax, rax, 1 0027c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 00283 f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 0028b f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 $LN13@stbi__hdr_: ; 7570 : case 1: ; 7571 : output[0] = 0; 00290 b8 04 00 00 00 mov eax, 4 00295 48 6b c0 00 imul rax, rax, 0 00299 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR output$[rbp] 002a0 0f 57 c0 xorps xmm0, xmm0 002a3 f3 0f 11 04 01 movss DWORD PTR [rcx+rax], xmm0 $LN2@stbi__hdr_: $LN5@stbi__hdr_: ; 7572 : break; ; 7573 : } ; 7574 : } ; 7575 : } 002a8 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 002af 5f pop rdi 002b0 5d pop rbp 002b1 c3 ret 0 stbi__hdr_convert ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__hdr_gettoken _TEXT SEGMENT len$ = 4 c$ = 36 z$ = 288 buffer$ = 296 stbi__hdr_gettoken PROC ; COMDAT ; 7523 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 7524 : int len = 0; 00025 c7 45 04 00 00 00 00 mov DWORD PTR len$[rbp], 0 ; 7525 : char c = '\0'; 0002c c6 45 24 00 mov BYTE PTR c$[rbp], 0 ; 7526 : ; 7527 : c = (char)stbi__get8(z); 00030 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR z$[rbp] 00037 e8 00 00 00 00 call stbi__get8 0003c 88 45 24 mov BYTE PTR c$[rbp], al $LN2@stbi__hdr_: ; 7528 : ; 7529 : while (!stbi__at_eof(z) && c != '\n') { 0003f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR z$[rbp] 00046 e8 00 00 00 00 call stbi__at_eof 0004b 85 c0 test eax, eax 0004d 75 65 jne SHORT $LN3@stbi__hdr_ 0004f 0f be 45 24 movsx eax, BYTE PTR c$[rbp] 00053 83 f8 0a cmp eax, 10 00056 74 5c je SHORT $LN3@stbi__hdr_ ; 7530 : buffer[len++] = c; 00058 48 63 45 04 movsxd rax, DWORD PTR len$[rbp] 0005c 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR buffer$[rbp] 00063 0f b6 55 24 movzx edx, BYTE PTR c$[rbp] 00067 88 14 01 mov BYTE PTR [rcx+rax], dl 0006a 8b 45 04 mov eax, DWORD PTR len$[rbp] 0006d ff c0 inc eax 0006f 89 45 04 mov DWORD PTR len$[rbp], eax ; 7531 : if (len == STBI__HDR_BUFLEN - 1) { 00072 81 7d 04 ff 03 00 00 cmp DWORD PTR len$[rbp], 1023 ; 000003ffH 00079 75 28 jne SHORT $LN6@stbi__hdr_ $LN4@stbi__hdr_: ; 7532 : // flush to end of line ; 7533 : while (!stbi__at_eof(z) && stbi__get8(z) != '\n') 0007b 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR z$[rbp] 00082 e8 00 00 00 00 call stbi__at_eof 00087 85 c0 test eax, eax 00089 75 16 jne SHORT $LN5@stbi__hdr_ 0008b 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR z$[rbp] 00092 e8 00 00 00 00 call stbi__get8 00097 0f b6 c0 movzx eax, al 0009a 83 f8 0a cmp eax, 10 0009d 74 02 je SHORT $LN5@stbi__hdr_ ; 7534 : ; 0009f eb da jmp SHORT $LN4@stbi__hdr_ $LN5@stbi__hdr_: ; 7535 : break; 000a1 eb 11 jmp SHORT $LN3@stbi__hdr_ $LN6@stbi__hdr_: ; 7536 : } ; 7537 : c = (char)stbi__get8(z); 000a3 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR z$[rbp] 000aa e8 00 00 00 00 call stbi__get8 000af 88 45 24 mov BYTE PTR c$[rbp], al ; 7538 : } 000b2 eb 8b jmp SHORT $LN2@stbi__hdr_ $LN3@stbi__hdr_: ; 7539 : ; 7540 : buffer[len] = 0; 000b4 48 63 45 04 movsxd rax, DWORD PTR len$[rbp] 000b8 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR buffer$[rbp] 000bf c6 04 01 00 mov BYTE PTR [rcx+rax], 0 ; 7541 : return buffer; 000c3 48 8b 85 28 01 00 00 mov rax, QWORD PTR buffer$[rbp] ; 7542 : } 000ca 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000d1 5f pop rdi 000d2 5d pop rbp 000d3 c3 ret 0 stbi__hdr_gettoken ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__hdr_test_core _TEXT SEGMENT i$ = 4 s$ = 256 signature$ = 264 stbi__hdr_test_core PROC ; COMDAT ; 7501 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 7502 : int i; ; 7503 : for (i = 0; signature[i]; ++i) 00025 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 0002c eb 08 jmp SHORT $LN4@stbi__hdr_ $LN2@stbi__hdr_: 0002e 8b 45 04 mov eax, DWORD PTR i$[rbp] 00031 ff c0 inc eax 00033 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__hdr_: 00036 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0003a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR signature$[rbp] 00041 0f be 04 01 movsx eax, BYTE PTR [rcx+rax] 00045 85 c0 test eax, eax 00047 74 28 je SHORT $LN3@stbi__hdr_ ; 7504 : if (stbi__get8(s) != signature[i]) 00049 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00050 e8 00 00 00 00 call stbi__get8 00055 0f b6 c0 movzx eax, al 00058 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 0005c 48 8b 95 08 01 00 00 mov rdx, QWORD PTR signature$[rbp] 00063 0f be 0c 0a movsx ecx, BYTE PTR [rdx+rcx] 00067 3b c1 cmp eax, ecx 00069 74 04 je SHORT $LN5@stbi__hdr_ ; 7505 : return 0; 0006b 33 c0 xor eax, eax 0006d eb 14 jmp SHORT $LN1@stbi__hdr_ $LN5@stbi__hdr_: 0006f eb bd jmp SHORT $LN2@stbi__hdr_ $LN3@stbi__hdr_: ; 7506 : stbi__rewind(s); 00071 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00078 e8 00 00 00 00 call stbi__rewind 0007d 90 npad 1 ; 7507 : return 1; 0007e b8 01 00 00 00 mov eax, 1 $LN1@stbi__hdr_: ; 7508 : } 00083 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 0008a 5f pop rdi 0008b 5d pop rbp 0008c c3 ret 0 stbi__hdr_test_core ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__load_gif_main_outofmem _TEXT SEGMENT tv78 = 192 g$ = 240 out$ = 248 delays$ = 256 stbi__load_gif_main_outofmem PROC ; COMDAT ; 7354 : { 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 7355 : STBI_FREE(g->out); 0002a 48 8b 85 f0 00 00 00 mov rax, QWORD PTR g$[rbp] 00031 48 8b 48 08 mov rcx, QWORD PTR [rax+8] 00035 ff 15 00 00 00 00 call QWORD PTR __imp_free 0003b 90 npad 1 ; 7356 : STBI_FREE(g->history); 0003c 48 8b 85 f0 00 00 00 mov rax, QWORD PTR g$[rbp] 00043 48 8b 48 18 mov rcx, QWORD PTR [rax+24] 00047 ff 15 00 00 00 00 call QWORD PTR __imp_free 0004d 90 npad 1 ; 7357 : STBI_FREE(g->background); 0004e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR g$[rbp] 00055 48 8b 48 10 mov rcx, QWORD PTR [rax+16] 00059 ff 15 00 00 00 00 call QWORD PTR __imp_free 0005f 90 npad 1 ; 7358 : ; 7359 : if (out) 00060 48 83 bd f8 00 00 00 00 cmp QWORD PTR out$[rbp], 0 00068 74 0e je SHORT $LN2@stbi__load ; 7360 : STBI_FREE(out); 0006a 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR out$[rbp] 00071 ff 15 00 00 00 00 call QWORD PTR __imp_free 00077 90 npad 1 $LN2@stbi__load: ; 7361 : if (delays && *delays) 00078 48 83 bd 00 01 00 00 00 cmp QWORD PTR delays$[rbp], 0 00080 74 1e je SHORT $LN3@stbi__load 00082 48 8b 85 00 01 00 00 mov rax, QWORD PTR delays$[rbp] 00089 48 83 38 00 cmp QWORD PTR [rax], 0 0008d 74 11 je SHORT $LN3@stbi__load ; 7362 : STBI_FREE(*delays); 0008f 48 8b 85 00 01 00 00 mov rax, QWORD PTR delays$[rbp] 00096 48 8b 08 mov rcx, QWORD PTR [rax] 00099 ff 15 00 00 00 00 call QWORD PTR __imp_free 0009f 90 npad 1 $LN3@stbi__load: ; 7363 : return stbi__errpuc("outofmem", "Out of memory"); 000a0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 000a7 e8 00 00 00 00 call stbi__err 000ac 85 c0 test eax, eax 000ae 74 0d je SHORT $LN5@stbi__load 000b0 48 c7 85 c0 00 00 00 00 00 00 00 mov QWORD PTR tv78[rbp], 0 000bb eb 0b jmp SHORT $LN6@stbi__load $LN5@stbi__load: 000bd 48 c7 85 c0 00 00 00 00 00 00 00 mov QWORD PTR tv78[rbp], 0 $LN6@stbi__load: 000c8 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv78[rbp] ; 7364 : } 000cf 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000d6 5f pop rdi 000d7 5d pop rbp 000d8 c3 ret 0 stbi__load_gif_main_outofmem ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__gif_load_next _TEXT SEGMENT dispose$ = 4 first_frame$ = 36 pi$ = 68 pcount$ = 100 tag$1 = 132 x$2 = 164 y$3 = 196 w$4 = 228 h$5 = 260 o$6 = 296 len$7 = 324 ext$8 = 356 tv232 = 564 tv296 = 564 tv83 = 568 tv142 = 568 tv250 = 568 tv315 = 568 tv409 = 568 tv578 = 568 s$ = 608 g$ = 616 comp$ = 624 req_comp$ = 632 two_back$ = 640 stbi__gif_load_next PROC ; COMDAT ; 7169 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 68 02 00 00 sub rsp, 616 ; 00000268H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 7170 : int dispose; ; 7171 : int first_frame; ; 7172 : int pi; ; 7173 : int pcount; ; 7174 : STBI_NOTUSED(req_comp); ; 7175 : ; 7176 : // on first frame, any non-written pixels get the background colour (non-transparent) ; 7177 : first_frame = 0; 0002f c7 45 24 00 00 00 00 mov DWORD PTR first_frame$[rbp], 0 ; 7178 : if (g->out == 0) { 00036 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 00042 0f 85 a5 01 00 00 jne $LN18@stbi__gif_ ; 7179 : if (!stbi__gif_header(s, g, comp, 0)) 00048 45 33 c9 xor r9d, r9d 0004b 4c 8b 85 70 02 00 00 mov r8, QWORD PTR comp$[rbp] 00052 48 8b 95 68 02 00 00 mov rdx, QWORD PTR g$[rbp] 00059 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 00060 e8 00 00 00 00 call stbi__gif_header 00065 85 c0 test eax, eax 00067 75 07 jne SHORT $LN20@stbi__gif_ ; 7180 : return 0; // stbi__g_failure_reason set by stbi__gif_header 00069 33 c0 xor eax, eax 0006b e9 66 09 00 00 jmp $LN1@stbi__gif_ $LN20@stbi__gif_: ; 7181 : if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) 00070 45 33 c9 xor r9d, r9d 00073 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0007a 44 8b 40 04 mov r8d, DWORD PTR [rax+4] 0007e 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00085 8b 10 mov edx, DWORD PTR [rax] 00087 b9 04 00 00 00 mov ecx, 4 0008c e8 00 00 00 00 call stbi__mad3sizes_valid 00091 85 c0 test eax, eax 00093 75 34 jne SHORT $LN21@stbi__gif_ ; 7182 : return stbi__errpuc("too large", "GIF image is too large"); 00095 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 0009c e8 00 00 00 00 call stbi__err 000a1 85 c0 test eax, eax 000a3 74 0d je SHORT $LN55@stbi__gif_ 000a5 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv83[rbp], 0 000b0 eb 0b jmp SHORT $LN56@stbi__gif_ $LN55@stbi__gif_: 000b2 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv83[rbp], 0 $LN56@stbi__gif_: 000bd 48 8b 85 38 02 00 00 mov rax, QWORD PTR tv83[rbp] 000c4 e9 0d 09 00 00 jmp $LN1@stbi__gif_ $LN21@stbi__gif_: ; 7183 : pcount = g->w * g->h; 000c9 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 000d0 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 000d7 8b 00 mov eax, DWORD PTR [rax] 000d9 0f af 41 04 imul eax, DWORD PTR [rcx+4] 000dd 89 45 64 mov DWORD PTR pcount$[rbp], eax ; 7184 : g->out = (stbi_uc *)stbi__malloc(4 * pcount); 000e0 8b 45 64 mov eax, DWORD PTR pcount$[rbp] 000e3 c1 e0 02 shl eax, 2 000e6 48 98 cdqe 000e8 48 8b c8 mov rcx, rax 000eb e8 00 00 00 00 call stbi__malloc 000f0 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 000f7 48 89 41 08 mov QWORD PTR [rcx+8], rax ; 7185 : g->background = (stbi_uc *)stbi__malloc(4 * pcount); 000fb 8b 45 64 mov eax, DWORD PTR pcount$[rbp] 000fe c1 e0 02 shl eax, 2 00101 48 98 cdqe 00103 48 8b c8 mov rcx, rax 00106 e8 00 00 00 00 call stbi__malloc 0010b 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00112 48 89 41 10 mov QWORD PTR [rcx+16], rax ; 7186 : g->history = (stbi_uc *)stbi__malloc(pcount); 00116 48 63 45 64 movsxd rax, DWORD PTR pcount$[rbp] 0011a 48 8b c8 mov rcx, rax 0011d e8 00 00 00 00 call stbi__malloc 00122 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00129 48 89 41 18 mov QWORD PTR [rcx+24], rax ; 7187 : if (!g->out || !g->background || !g->history) 0012d 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00134 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 00139 74 1c je SHORT $LN23@stbi__gif_ 0013b 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00142 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 00147 74 0e je SHORT $LN23@stbi__gif_ 00149 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00150 48 83 78 18 00 cmp QWORD PTR [rax+24], 0 00155 75 34 jne SHORT $LN22@stbi__gif_ $LN23@stbi__gif_: ; 7188 : return stbi__errpuc("outofmem", "Out of memory"); 00157 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0015e e8 00 00 00 00 call stbi__err 00163 85 c0 test eax, eax 00165 74 0d je SHORT $LN57@stbi__gif_ 00167 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv142[rbp], 0 00172 eb 0b jmp SHORT $LN58@stbi__gif_ $LN57@stbi__gif_: 00174 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv142[rbp], 0 $LN58@stbi__gif_: 0017f 48 8b 85 38 02 00 00 mov rax, QWORD PTR tv142[rbp] 00186 e9 4b 08 00 00 jmp $LN1@stbi__gif_ $LN22@stbi__gif_: ; 7189 : ; 7190 : // image is treated as "transparent" at the start - ie, nothing overwrites the current background; ; 7191 : // background colour is only used for pixels that are not rendered first frame, after that "background" ; 7192 : // color refers to the color that was there the previous frame. ; 7193 : memset(g->out, 0x00, 4 * pcount); 0018b 8b 45 64 mov eax, DWORD PTR pcount$[rbp] 0018e c1 e0 02 shl eax, 2 00191 48 98 cdqe 00193 4c 8b c0 mov r8, rax 00196 33 d2 xor edx, edx 00198 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0019f 48 8b 48 08 mov rcx, QWORD PTR [rax+8] 001a3 e8 00 00 00 00 call memset 001a8 90 npad 1 ; 7194 : memset(g->background, 0x00, 001a9 8b 45 64 mov eax, DWORD PTR pcount$[rbp] 001ac c1 e0 02 shl eax, 2 001af 48 98 cdqe 001b1 4c 8b c0 mov r8, rax 001b4 33 d2 xor edx, edx 001b6 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 001bd 48 8b 48 10 mov rcx, QWORD PTR [rax+16] 001c1 e8 00 00 00 00 call memset 001c6 90 npad 1 ; 7195 : 4 * pcount); // state of the background (starts transparent) ; 7196 : memset(g->history, 0x00, 001c7 48 63 45 64 movsxd rax, DWORD PTR pcount$[rbp] 001cb 4c 8b c0 mov r8, rax 001ce 33 d2 xor edx, edx 001d0 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 001d7 48 8b 48 18 mov rcx, QWORD PTR [rax+24] 001db e8 00 00 00 00 call memset 001e0 90 npad 1 ; 7197 : pcount); // pixels that were affected previous frame ; 7198 : first_frame = 1; 001e1 c7 45 24 01 00 00 00 mov DWORD PTR first_frame$[rbp], 1 ; 7199 : } else { 001e8 e9 6b 01 00 00 jmp $LN19@stbi__gif_ $LN18@stbi__gif_: ; 7200 : // second frame - how do we dispose of the previous one? ; 7201 : dispose = (g->eflags & 0x1C) >> 2; 001ed 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 001f4 8b 40 30 mov eax, DWORD PTR [rax+48] 001f7 83 e0 1c and eax, 28 001fa c1 f8 02 sar eax, 2 001fd 89 45 04 mov DWORD PTR dispose$[rbp], eax ; 7202 : pcount = g->w * g->h; 00200 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00207 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 0020e 8b 00 mov eax, DWORD PTR [rax] 00210 0f af 41 04 imul eax, DWORD PTR [rcx+4] 00214 89 45 64 mov DWORD PTR pcount$[rbp], eax ; 7203 : ; 7204 : if ((dispose == 3) && (two_back == 0)) { 00217 83 7d 04 03 cmp DWORD PTR dispose$[rbp], 3 0021b 75 11 jne SHORT $LN24@stbi__gif_ 0021d 48 83 bd 80 02 00 00 00 cmp QWORD PTR two_back$[rbp], 0 00225 75 07 jne SHORT $LN24@stbi__gif_ ; 7205 : dispose = 00227 c7 45 04 02 00 00 00 mov DWORD PTR dispose$[rbp], 2 $LN24@stbi__gif_: ; 7206 : 2; // if I don't have an image to revert back to, default to the old background ; 7207 : } ; 7208 : ; 7209 : if (dispose == 3) { // use previous graphic 0022e 83 7d 04 03 cmp DWORD PTR dispose$[rbp], 3 00232 75 72 jne SHORT $LN25@stbi__gif_ ; 7210 : for (pi = 0; pi < pcount; ++pi) { 00234 c7 45 44 00 00 00 00 mov DWORD PTR pi$[rbp], 0 0023b eb 08 jmp SHORT $LN4@stbi__gif_ $LN2@stbi__gif_: 0023d 8b 45 44 mov eax, DWORD PTR pi$[rbp] 00240 ff c0 inc eax 00242 89 45 44 mov DWORD PTR pi$[rbp], eax $LN4@stbi__gif_: 00245 8b 45 64 mov eax, DWORD PTR pcount$[rbp] 00248 39 45 44 cmp DWORD PTR pi$[rbp], eax 0024b 7d 57 jge SHORT $LN3@stbi__gif_ ; 7211 : if (g->history[pi]) { 0024d 48 63 45 44 movsxd rax, DWORD PTR pi$[rbp] 00251 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00258 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] 0025c 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00260 85 c0 test eax, eax 00262 74 3e je SHORT $LN27@stbi__gif_ ; 7212 : memcpy(&g->out[pi * 4], &two_back[pi * 4], 4); 00264 8b 45 44 mov eax, DWORD PTR pi$[rbp] 00267 c1 e0 02 shl eax, 2 0026a 48 98 cdqe 0026c 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR two_back$[rbp] 00273 48 03 c8 add rcx, rax 00276 48 8b c1 mov rax, rcx 00279 8b 4d 44 mov ecx, DWORD PTR pi$[rbp] 0027c c1 e1 02 shl ecx, 2 0027f 48 63 c9 movsxd rcx, ecx 00282 48 8b 95 68 02 00 00 mov rdx, QWORD PTR g$[rbp] 00289 48 8b 52 08 mov rdx, QWORD PTR [rdx+8] 0028d 48 03 d1 add rdx, rcx 00290 48 8b ca mov rcx, rdx 00293 41 b8 04 00 00 00 mov r8d, 4 00299 48 8b d0 mov rdx, rax 0029c e8 00 00 00 00 call memcpy 002a1 90 npad 1 $LN27@stbi__gif_: ; 7213 : } ; 7214 : } 002a2 eb 99 jmp SHORT $LN2@stbi__gif_ $LN3@stbi__gif_: ; 7215 : } else if (dispose == 2) { 002a4 eb 7a jmp SHORT $LN26@stbi__gif_ $LN25@stbi__gif_: 002a6 83 7d 04 02 cmp DWORD PTR dispose$[rbp], 2 002aa 75 74 jne SHORT $LN28@stbi__gif_ ; 7216 : // restore what was changed last frame to background before that frame; ; 7217 : for (pi = 0; pi < pcount; ++pi) { 002ac c7 45 44 00 00 00 00 mov DWORD PTR pi$[rbp], 0 002b3 eb 08 jmp SHORT $LN7@stbi__gif_ $LN5@stbi__gif_: 002b5 8b 45 44 mov eax, DWORD PTR pi$[rbp] 002b8 ff c0 inc eax 002ba 89 45 44 mov DWORD PTR pi$[rbp], eax $LN7@stbi__gif_: 002bd 8b 45 64 mov eax, DWORD PTR pcount$[rbp] 002c0 39 45 44 cmp DWORD PTR pi$[rbp], eax 002c3 7d 5b jge SHORT $LN6@stbi__gif_ ; 7218 : if (g->history[pi]) { 002c5 48 63 45 44 movsxd rax, DWORD PTR pi$[rbp] 002c9 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 002d0 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] 002d4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 002d8 85 c0 test eax, eax 002da 74 42 je SHORT $LN30@stbi__gif_ ; 7219 : memcpy(&g->out[pi * 4], &g->background[pi * 4], 4); 002dc 8b 45 44 mov eax, DWORD PTR pi$[rbp] 002df c1 e0 02 shl eax, 2 002e2 48 98 cdqe 002e4 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 002eb 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] 002ef 48 03 c8 add rcx, rax 002f2 48 8b c1 mov rax, rcx 002f5 8b 4d 44 mov ecx, DWORD PTR pi$[rbp] 002f8 c1 e1 02 shl ecx, 2 002fb 48 63 c9 movsxd rcx, ecx 002fe 48 8b 95 68 02 00 00 mov rdx, QWORD PTR g$[rbp] 00305 48 8b 52 08 mov rdx, QWORD PTR [rdx+8] 00309 48 03 d1 add rdx, rcx 0030c 48 8b ca mov rcx, rdx 0030f 41 b8 04 00 00 00 mov r8d, 4 00315 48 8b d0 mov rdx, rax 00318 e8 00 00 00 00 call memcpy 0031d 90 npad 1 $LN30@stbi__gif_: ; 7220 : } ; 7221 : } 0031e eb 95 jmp SHORT $LN5@stbi__gif_ $LN6@stbi__gif_: $LN28@stbi__gif_: $LN26@stbi__gif_: ; 7222 : } else { ; 7223 : // This is a non-disposal case eithe way, so just ; 7224 : // leave the pixels as is, and they will become the new background ; 7225 : // 1: do not dispose ; 7226 : // 0: not specified. ; 7227 : } ; 7228 : ; 7229 : // background is what out is after the undoing of the previou frame; ; 7230 : memcpy(g->background, g->out, 4 * g->w * g->h); 00320 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00327 8b 00 mov eax, DWORD PTR [rax] 00329 c1 e0 02 shl eax, 2 0032c 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00333 0f af 41 04 imul eax, DWORD PTR [rcx+4] 00337 48 98 cdqe 00339 4c 8b c0 mov r8, rax 0033c 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00343 48 8b 50 08 mov rdx, QWORD PTR [rax+8] 00347 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0034e 48 8b 48 10 mov rcx, QWORD PTR [rax+16] 00352 e8 00 00 00 00 call memcpy 00357 90 npad 1 $LN19@stbi__gif_: ; 7231 : } ; 7232 : ; 7233 : // clear my history; ; 7234 : memset(g->history, 0x00, 00358 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0035f 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00366 8b 00 mov eax, DWORD PTR [rax] 00368 0f af 41 04 imul eax, DWORD PTR [rcx+4] 0036c 48 98 cdqe 0036e 4c 8b c0 mov r8, rax 00371 33 d2 xor edx, edx 00373 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0037a 48 8b 48 18 mov rcx, QWORD PTR [rax+24] 0037e e8 00 00 00 00 call memset 00383 90 npad 1 $LN8@stbi__gif_: ; 7235 : g->w * g->h); // pixels that were affected previous frame ; 7236 : ; 7237 : for (;;) { ; 7238 : int tag = stbi__get8(s); 00384 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 0038b e8 00 00 00 00 call stbi__get8 00390 0f b6 c0 movzx eax, al 00393 89 85 84 00 00 00 mov DWORD PTR tag$1[rbp], eax ; 7239 : switch (tag) { 00399 8b 85 84 00 00 00 mov eax, DWORD PTR tag$1[rbp] 0039f 89 85 34 02 00 00 mov DWORD PTR tv232[rbp], eax 003a5 83 bd 34 02 00 00 21 cmp DWORD PTR tv232[rbp], 33 ; 00000021H 003ac 0f 84 6f 04 00 00 je $LN44@stbi__gif_ 003b2 83 bd 34 02 00 00 2c cmp DWORD PTR tv232[rbp], 44 ; 0000002cH 003b9 74 12 je SHORT $LN31@stbi__gif_ 003bb 83 bd 34 02 00 00 3b cmp DWORD PTR tv232[rbp], 59 ; 0000003bH 003c2 0f 84 cf 05 00 00 je $LN52@stbi__gif_ 003c8 e9 d3 05 00 00 jmp $LN53@stbi__gif_ $LN31@stbi__gif_: ; 7240 : case 0x2C: /* Image Descriptor */ ; 7241 : { ; 7242 : stbi__int32 x, y, w, h; ; 7243 : stbi_uc *o; ; 7244 : ; 7245 : x = stbi__get16le(s); 003cd 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 003d4 e8 00 00 00 00 call stbi__get16le 003d9 89 85 a4 00 00 00 mov DWORD PTR x$2[rbp], eax ; 7246 : y = stbi__get16le(s); 003df 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 003e6 e8 00 00 00 00 call stbi__get16le 003eb 89 85 c4 00 00 00 mov DWORD PTR y$3[rbp], eax ; 7247 : w = stbi__get16le(s); 003f1 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 003f8 e8 00 00 00 00 call stbi__get16le 003fd 89 85 e4 00 00 00 mov DWORD PTR w$4[rbp], eax ; 7248 : h = stbi__get16le(s); 00403 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 0040a e8 00 00 00 00 call stbi__get16le 0040f 89 85 04 01 00 00 mov DWORD PTR h$5[rbp], eax ; 7249 : if (((x + w) > (g->w)) || ((y + h) > (g->h))) 00415 8b 85 e4 00 00 00 mov eax, DWORD PTR w$4[rbp] 0041b 8b 8d a4 00 00 00 mov ecx, DWORD PTR x$2[rbp] 00421 03 c8 add ecx, eax 00423 8b c1 mov eax, ecx 00425 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 0042c 3b 01 cmp eax, DWORD PTR [rcx] 0042e 7f 1c jg SHORT $LN33@stbi__gif_ 00430 8b 85 04 01 00 00 mov eax, DWORD PTR h$5[rbp] 00436 8b 8d c4 00 00 00 mov ecx, DWORD PTR y$3[rbp] 0043c 03 c8 add ecx, eax 0043e 8b c1 mov eax, ecx 00440 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00447 3b 41 04 cmp eax, DWORD PTR [rcx+4] 0044a 7e 34 jle SHORT $LN32@stbi__gif_ $LN33@stbi__gif_: ; 7250 : return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); 0044c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BF@GIAALCNJ@bad?5Image?5Descriptor@ 00453 e8 00 00 00 00 call stbi__err 00458 85 c0 test eax, eax 0045a 74 0d je SHORT $LN59@stbi__gif_ 0045c 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv250[rbp], 0 00467 eb 0b jmp SHORT $LN60@stbi__gif_ $LN59@stbi__gif_: 00469 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv250[rbp], 0 $LN60@stbi__gif_: 00474 48 8b 85 38 02 00 00 mov rax, QWORD PTR tv250[rbp] 0047b e9 56 05 00 00 jmp $LN1@stbi__gif_ $LN32@stbi__gif_: ; 7251 : ; 7252 : g->line_size = g->w * 4; 00480 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00487 8b 00 mov eax, DWORD PTR [rax] 00489 c1 e0 02 shl eax, 2 0048c 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00493 89 81 64 88 00 00 mov DWORD PTR [rcx+34916], eax ; 7253 : g->start_x = x * 4; 00499 8b 85 a4 00 00 00 mov eax, DWORD PTR x$2[rbp] 0049f c1 e0 02 shl eax, 2 004a2 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 004a9 89 81 4c 88 00 00 mov DWORD PTR [rcx+34892], eax ; 7254 : g->start_y = y * g->line_size; 004af 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 004b6 8b 8d c4 00 00 00 mov ecx, DWORD PTR y$3[rbp] 004bc 0f af 88 64 88 00 00 imul ecx, DWORD PTR [rax+34916] 004c3 8b c1 mov eax, ecx 004c5 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 004cc 89 81 50 88 00 00 mov DWORD PTR [rcx+34896], eax ; 7255 : g->max_x = g->start_x + w * 4; 004d2 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 004d9 8b 80 4c 88 00 00 mov eax, DWORD PTR [rax+34892] 004df 8b 8d e4 00 00 00 mov ecx, DWORD PTR w$4[rbp] 004e5 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] 004e8 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 004ef 89 81 54 88 00 00 mov DWORD PTR [rcx+34900], eax ; 7256 : g->max_y = g->start_y + h * g->line_size; 004f5 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 004fc 8b 8d 04 01 00 00 mov ecx, DWORD PTR h$5[rbp] 00502 0f af 88 64 88 00 00 imul ecx, DWORD PTR [rax+34916] 00509 8b c1 mov eax, ecx 0050b 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00512 03 81 50 88 00 00 add eax, DWORD PTR [rcx+34896] 00518 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 0051f 89 81 58 88 00 00 mov DWORD PTR [rcx+34904], eax ; 7257 : g->cur_x = g->start_x; 00525 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0052c 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00533 8b 89 4c 88 00 00 mov ecx, DWORD PTR [rcx+34892] 00539 89 88 5c 88 00 00 mov DWORD PTR [rax+34908], ecx ; 7258 : g->cur_y = g->start_y; 0053f 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00546 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 0054d 8b 89 50 88 00 00 mov ecx, DWORD PTR [rcx+34896] 00553 89 88 60 88 00 00 mov DWORD PTR [rax+34912], ecx ; 7259 : ; 7260 : // if the width of the specified rectangle is 0, that means ; 7261 : // we may not see *any* pixels or the image is malformed; ; 7262 : // to make sure this is caught, move the current y down to ; 7263 : // max_y (which is what out_gif_code checks). ; 7264 : if (w == 0) 00559 83 bd e4 00 00 00 00 cmp DWORD PTR w$4[rbp], 0 00560 75 1a jne SHORT $LN34@stbi__gif_ ; 7265 : g->cur_y = g->max_y; 00562 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00569 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00570 8b 89 58 88 00 00 mov ecx, DWORD PTR [rcx+34904] 00576 89 88 60 88 00 00 mov DWORD PTR [rax+34912], ecx $LN34@stbi__gif_: ; 7266 : ; 7267 : g->lflags = stbi__get8(s); 0057c 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 00583 e8 00 00 00 00 call stbi__get8 00588 0f b6 c0 movzx eax, al 0058b 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00592 89 81 48 88 00 00 mov DWORD PTR [rcx+34888], eax ; 7268 : ; 7269 : if (g->lflags & 0x40) { 00598 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0059f 8b 80 48 88 00 00 mov eax, DWORD PTR [rax+34888] 005a5 83 e0 40 and eax, 64 ; 00000040H 005a8 85 c0 test eax, eax 005aa 74 30 je SHORT $LN35@stbi__gif_ ; 7270 : g->step = 8 * g->line_size; // first interlaced spacing 005ac 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 005b3 8b 80 64 88 00 00 mov eax, DWORD PTR [rax+34916] 005b9 c1 e0 03 shl eax, 3 005bc 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 005c3 89 81 44 88 00 00 mov DWORD PTR [rcx+34884], eax ; 7271 : g->parse = 3; 005c9 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 005d0 c7 80 40 88 00 00 03 00 00 00 mov DWORD PTR [rax+34880], 3 ; 7272 : } else { 005da eb 2b jmp SHORT $LN36@stbi__gif_ $LN35@stbi__gif_: ; 7273 : g->step = g->line_size; 005dc 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 005e3 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 005ea 8b 89 64 88 00 00 mov ecx, DWORD PTR [rcx+34916] 005f0 89 88 44 88 00 00 mov DWORD PTR [rax+34884], ecx ; 7274 : g->parse = 0; 005f6 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 005fd c7 80 40 88 00 00 00 00 00 00 mov DWORD PTR [rax+34880], 0 $LN36@stbi__gif_: ; 7275 : } ; 7276 : ; 7277 : if (g->lflags & 0x80) { 00607 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0060e 8b 80 48 88 00 00 mov eax, DWORD PTR [rax+34888] 00614 25 80 00 00 00 and eax, 128 ; 00000080H 00619 85 c0 test eax, eax 0061b 0f 84 98 00 00 00 je $LN37@stbi__gif_ ; 7278 : stbi__gif_parse_colortable(s, g->lpal, 2 << (g->lflags & 7), 00621 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00628 8b 40 30 mov eax, DWORD PTR [rax+48] 0062b 83 e0 01 and eax, 1 0062e 85 c0 test eax, eax 00630 74 12 je SHORT $LN61@stbi__gif_ 00632 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00639 8b 40 2c mov eax, DWORD PTR [rax+44] 0063c 89 85 34 02 00 00 mov DWORD PTR tv296[rbp], eax 00642 eb 0a jmp SHORT $LN62@stbi__gif_ $LN61@stbi__gif_: 00644 c7 85 34 02 00 00 ff ff ff ff mov DWORD PTR tv296[rbp], -1 $LN62@stbi__gif_: 0064e 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00655 8b 80 48 88 00 00 mov eax, DWORD PTR [rax+34888] 0065b 83 e0 07 and eax, 7 0065e b9 02 00 00 00 mov ecx, 2 00663 89 8d 38 02 00 00 mov DWORD PTR tv578[rbp], ecx 00669 0f b6 c8 movzx ecx, al 0066c 8b 85 38 02 00 00 mov eax, DWORD PTR tv578[rbp] 00672 d3 e0 shl eax, cl 00674 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 0067b 48 81 c1 34 04 00 00 add rcx, 1076 ; 00000434H 00682 44 8b 8d 34 02 00 00 mov r9d, DWORD PTR tv296[rbp] 00689 44 8b c0 mov r8d, eax 0068c 48 8b d1 mov rdx, rcx 0068f 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 00696 e8 00 00 00 00 call stbi__gif_parse_colortable 0069b 90 npad 1 ; 7279 : g->eflags & 0x01 ? g->transparent : -1); ; 7280 : g->color_table = (stbi_uc *)g->lpal; 0069c 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 006a3 48 05 34 04 00 00 add rax, 1076 ; 00000434H 006a9 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 006b0 48 89 81 38 88 00 00 mov QWORD PTR [rcx+34872], rax 006b7 eb 62 jmp SHORT $LN38@stbi__gif_ $LN37@stbi__gif_: ; 7281 : } else if (g->flags & 0x80) { 006b9 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 006c0 8b 40 20 mov eax, DWORD PTR [rax+32] 006c3 25 80 00 00 00 and eax, 128 ; 00000080H 006c8 85 c0 test eax, eax 006ca 74 1b je SHORT $LN39@stbi__gif_ ; 7282 : g->color_table = (stbi_uc *)g->pal; 006cc 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 006d3 48 83 c0 34 add rax, 52 ; 00000034H 006d7 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 006de 48 89 81 38 88 00 00 mov QWORD PTR [rcx+34872], rax ; 7283 : } else 006e5 eb 34 jmp SHORT $LN40@stbi__gif_ $LN39@stbi__gif_: ; 7284 : return stbi__errpuc("missing color table", "Corrupt GIF"); 006e7 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@NAMJKDNF@missing?5color?5table@ 006ee e8 00 00 00 00 call stbi__err 006f3 85 c0 test eax, eax 006f5 74 0d je SHORT $LN63@stbi__gif_ 006f7 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv315[rbp], 0 00702 eb 0b jmp SHORT $LN64@stbi__gif_ $LN63@stbi__gif_: 00704 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv315[rbp], 0 $LN64@stbi__gif_: 0070f 48 8b 85 38 02 00 00 mov rax, QWORD PTR tv315[rbp] 00716 e9 bb 02 00 00 jmp $LN1@stbi__gif_ $LN40@stbi__gif_: $LN38@stbi__gif_: ; 7285 : ; 7286 : o = stbi__process_gif_raster(s, g); 0071b 48 8b 95 68 02 00 00 mov rdx, QWORD PTR g$[rbp] 00722 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 00729 e8 00 00 00 00 call stbi__process_gif_raster 0072e 48 89 85 28 01 00 00 mov QWORD PTR o$6[rbp], rax ; 7287 : if (!o) 00735 48 83 bd 28 01 00 00 00 cmp QWORD PTR o$6[rbp], 0 0073d 75 07 jne SHORT $LN41@stbi__gif_ ; 7288 : return NULL; 0073f 33 c0 xor eax, eax 00741 e9 90 02 00 00 jmp $LN1@stbi__gif_ $LN41@stbi__gif_: ; 7289 : ; 7290 : // if this was the first frame, ; 7291 : pcount = g->w * g->h; 00746 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0074d 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00754 8b 00 mov eax, DWORD PTR [rax] 00756 0f af 41 04 imul eax, DWORD PTR [rcx+4] 0075a 89 45 64 mov DWORD PTR pcount$[rbp], eax ; 7292 : if (first_frame && (g->bgindex > 0)) { 0075d 83 7d 24 00 cmp DWORD PTR first_frame$[rbp], 0 00761 0f 84 ae 00 00 00 je $LN42@stbi__gif_ 00767 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0076e 83 78 24 00 cmp DWORD PTR [rax+36], 0 00772 0f 8e 9d 00 00 00 jle $LN42@stbi__gif_ ; 7293 : // if first frame, any pixel not drawn to gets the background color ; 7294 : for (pi = 0; pi < pcount; ++pi) { 00778 c7 45 44 00 00 00 00 mov DWORD PTR pi$[rbp], 0 0077f eb 08 jmp SHORT $LN15@stbi__gif_ $LN13@stbi__gif_: 00781 8b 45 44 mov eax, DWORD PTR pi$[rbp] 00784 ff c0 inc eax 00786 89 45 44 mov DWORD PTR pi$[rbp], eax $LN15@stbi__gif_: 00789 8b 45 64 mov eax, DWORD PTR pcount$[rbp] 0078c 39 45 44 cmp DWORD PTR pi$[rbp], eax 0078f 0f 8d 80 00 00 00 jge $LN14@stbi__gif_ ; 7295 : if (g->history[pi] == 0) { 00795 48 63 45 44 movsxd rax, DWORD PTR pi$[rbp] 00799 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 007a0 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] 007a4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 007a8 85 c0 test eax, eax 007aa 75 64 jne SHORT $LN43@stbi__gif_ ; 7296 : g->pal[g->bgindex][3] = 007ac 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 007b3 48 63 40 24 movsxd rax, DWORD PTR [rax+36] 007b7 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 007be 48 8d 44 81 34 lea rax, QWORD PTR [rcx+rax*4+52] 007c3 b9 01 00 00 00 mov ecx, 1 007c8 48 6b c9 03 imul rcx, rcx, 3 007cc c6 04 08 ff mov BYTE PTR [rax+rcx], 255 ; 000000ffH ; 7297 : 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; ; 7298 : memcpy(&g->out[pi * 4], &g->pal[g->bgindex], 4); 007d0 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 007d7 48 63 40 24 movsxd rax, DWORD PTR [rax+36] 007db 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 007e2 48 8d 44 81 34 lea rax, QWORD PTR [rcx+rax*4+52] 007e7 8b 4d 44 mov ecx, DWORD PTR pi$[rbp] 007ea c1 e1 02 shl ecx, 2 007ed 48 63 c9 movsxd rcx, ecx 007f0 48 8b 95 68 02 00 00 mov rdx, QWORD PTR g$[rbp] 007f7 48 8b 52 08 mov rdx, QWORD PTR [rdx+8] 007fb 48 03 d1 add rdx, rcx 007fe 48 8b ca mov rcx, rdx 00801 41 b8 04 00 00 00 mov r8d, 4 00807 48 8b d0 mov rdx, rax 0080a e8 00 00 00 00 call memcpy 0080f 90 npad 1 $LN43@stbi__gif_: ; 7299 : } ; 7300 : } 00810 e9 6c ff ff ff jmp $LN13@stbi__gif_ $LN14@stbi__gif_: $LN42@stbi__gif_: ; 7301 : } ; 7302 : ; 7303 : return o; 00815 48 8b 85 28 01 00 00 mov rax, QWORD PTR o$6[rbp] 0081c e9 b5 01 00 00 jmp $LN1@stbi__gif_ $LN44@stbi__gif_: ; 7304 : } ; 7305 : ; 7306 : case 0x21: // Comment Extension. ; 7307 : { ; 7308 : int len; ; 7309 : int ext = stbi__get8(s); 00821 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 00828 e8 00 00 00 00 call stbi__get8 0082d 0f b6 c0 movzx eax, al 00830 89 85 64 01 00 00 mov DWORD PTR ext$8[rbp], eax ; 7310 : if (ext == 0xF9) { // Graphic Control Extension. 00836 81 bd 64 01 00 00 f9 00 00 00 cmp DWORD PTR ext$8[rbp], 249 ; 000000f9H 00840 0f 85 1c 01 00 00 jne $LN45@stbi__gif_ ; 7311 : len = stbi__get8(s); 00846 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 0084d e8 00 00 00 00 call stbi__get8 00852 0f b6 c0 movzx eax, al 00855 89 85 44 01 00 00 mov DWORD PTR len$7[rbp], eax ; 7312 : if (len == 4) { 0085b 83 bd 44 01 00 00 04 cmp DWORD PTR len$7[rbp], 4 00862 0f 85 e5 00 00 00 jne $LN46@stbi__gif_ ; 7313 : g->eflags = stbi__get8(s); 00868 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 0086f e8 00 00 00 00 call stbi__get8 00874 0f b6 c0 movzx eax, al 00877 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 0087e 89 41 30 mov DWORD PTR [rcx+48], eax ; 7314 : g->delay = 00881 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 00888 e8 00 00 00 00 call stbi__get16le 0088d 6b c0 0a imul eax, eax, 10 00890 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00897 89 81 68 88 00 00 mov DWORD PTR [rcx+34920], eax ; 7315 : 10 * ; 7316 : stbi__get16le( ; 7317 : s); // delay - 1/100th of a second, saving as 1/1000ths. ; 7318 : ; 7319 : // unset old transparent ; 7320 : if (g->transparent >= 0) { 0089d 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 008a4 83 78 2c 00 cmp DWORD PTR [rax+44], 0 008a8 7c 24 jl SHORT $LN48@stbi__gif_ ; 7321 : g->pal[g->transparent][3] = 255; 008aa 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 008b1 48 63 40 2c movsxd rax, DWORD PTR [rax+44] 008b5 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 008bc 48 8d 44 81 34 lea rax, QWORD PTR [rcx+rax*4+52] 008c1 b9 01 00 00 00 mov ecx, 1 008c6 48 6b c9 03 imul rcx, rcx, 3 008ca c6 04 08 ff mov BYTE PTR [rax+rcx], 255 ; 000000ffH $LN48@stbi__gif_: ; 7322 : } ; 7323 : if (g->eflags & 0x01) { 008ce 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 008d5 8b 40 30 mov eax, DWORD PTR [rax+48] 008d8 83 e0 01 and eax, 1 008db 85 c0 test eax, eax 008dd 74 4c je SHORT $LN49@stbi__gif_ ; 7324 : g->transparent = stbi__get8(s); 008df 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 008e6 e8 00 00 00 00 call stbi__get8 008eb 0f b6 c0 movzx eax, al 008ee 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 008f5 89 41 2c mov DWORD PTR [rcx+44], eax ; 7325 : if (g->transparent >= 0) { 008f8 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 008ff 83 78 2c 00 cmp DWORD PTR [rax+44], 0 00903 7c 24 jl SHORT $LN51@stbi__gif_ ; 7326 : g->pal[g->transparent][3] = 0; 00905 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 0090c 48 63 40 2c movsxd rax, DWORD PTR [rax+44] 00910 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR g$[rbp] 00917 48 8d 44 81 34 lea rax, QWORD PTR [rcx+rax*4+52] 0091c b9 01 00 00 00 mov ecx, 1 00921 48 6b c9 03 imul rcx, rcx, 3 00925 c6 04 08 00 mov BYTE PTR [rax+rcx], 0 $LN51@stbi__gif_: ; 7327 : } ; 7328 : } else { 00929 eb 20 jmp SHORT $LN50@stbi__gif_ $LN49@stbi__gif_: ; 7329 : // don't need transparent ; 7330 : stbi__skip(s, 1); 0092b ba 01 00 00 00 mov edx, 1 00930 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 00937 e8 00 00 00 00 call stbi__skip 0093c 90 npad 1 ; 7331 : g->transparent = -1; 0093d 48 8b 85 68 02 00 00 mov rax, QWORD PTR g$[rbp] 00944 c7 40 2c ff ff ff ff mov DWORD PTR [rax+44], -1 $LN50@stbi__gif_: ; 7332 : } ; 7333 : } else { 0094b eb 15 jmp SHORT $LN47@stbi__gif_ $LN46@stbi__gif_: ; 7334 : stbi__skip(s, len); 0094d 8b 95 44 01 00 00 mov edx, DWORD PTR len$7[rbp] 00953 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 0095a e8 00 00 00 00 call stbi__skip 0095f 90 npad 1 ; 7335 : break; 00960 eb 6f jmp SHORT $LN11@stbi__gif_ $LN47@stbi__gif_: $LN45@stbi__gif_: $LN16@stbi__gif_: ; 7336 : } ; 7337 : } ; 7338 : while ((len = stbi__get8(s)) != 0) { 00962 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 00969 e8 00 00 00 00 call stbi__get8 0096e 0f b6 c0 movzx eax, al 00971 89 85 44 01 00 00 mov DWORD PTR len$7[rbp], eax 00977 83 bd 44 01 00 00 00 cmp DWORD PTR len$7[rbp], 0 0097e 74 15 je SHORT $LN17@stbi__gif_ ; 7339 : stbi__skip(s, len); 00980 8b 95 44 01 00 00 mov edx, DWORD PTR len$7[rbp] 00986 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR s$[rbp] 0098d e8 00 00 00 00 call stbi__skip 00992 90 npad 1 ; 7340 : } 00993 eb cd jmp SHORT $LN16@stbi__gif_ $LN17@stbi__gif_: ; 7341 : break; 00995 eb 3a jmp SHORT $LN11@stbi__gif_ $LN52@stbi__gif_: ; 7342 : } ; 7343 : ; 7344 : case 0x3B: // gif stream termination code ; 7345 : return (stbi_uc *)s; // using '1' causes warning on some compilers 00997 48 8b 85 60 02 00 00 mov rax, QWORD PTR s$[rbp] 0099e eb 36 jmp SHORT $LN1@stbi__gif_ $LN53@stbi__gif_: ; 7346 : ; 7347 : default: ; 7348 : return stbi__errpuc("unknown code", "Corrupt GIF"); 009a0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@DJABBOOH@unknown?5code@ 009a7 e8 00 00 00 00 call stbi__err 009ac 85 c0 test eax, eax 009ae 74 0d je SHORT $LN65@stbi__gif_ 009b0 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv409[rbp], 0 009bb eb 0b jmp SHORT $LN66@stbi__gif_ $LN65@stbi__gif_: 009bd 48 c7 85 38 02 00 00 00 00 00 00 mov QWORD PTR tv409[rbp], 0 $LN66@stbi__gif_: 009c8 48 8b 85 38 02 00 00 mov rax, QWORD PTR tv409[rbp] 009cf eb 05 jmp SHORT $LN1@stbi__gif_ $LN11@stbi__gif_: ; 7349 : } ; 7350 : } 009d1 e9 ae f9 ff ff jmp $LN8@stbi__gif_ $LN1@stbi__gif_: ; 7351 : } 009d6 48 8d a5 48 02 00 00 lea rsp, QWORD PTR [rbp+584] 009dd 5f pop rdi 009de 5d pop rbp 009df c3 ret 0 stbi__gif_load_next ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__process_gif_raster _TEXT SEGMENT lzw_cs$ = 4 len$ = 36 init_code$ = 68 first$ = 100 codesize$ = 132 codemask$ = 164 avail$ = 196 oldcode$ = 228 bits$ = 260 valid_bits$ = 292 clear$ = 324 p$ = 360 code$1 = 388 tv192 = 596 tv242 = 596 tv246 = 596 tv273 = 596 tv297 = 596 tv163 = 600 tv174 = 600 tv198 = 600 tv210 = 600 s$ = 640 g$ = 648 stbi__process_gif_raster PROC ; COMDAT ; 7077 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 88 02 00 00 sub rsp, 648 ; 00000288H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 7078 : stbi_uc lzw_cs; ; 7079 : stbi__int32 len, init_code; ; 7080 : stbi__uint32 first; ; 7081 : stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; ; 7082 : stbi__gif_lzw *p; ; 7083 : ; 7084 : lzw_cs = stbi__get8(s); 00025 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR s$[rbp] 0002c e8 00 00 00 00 call stbi__get8 00031 88 45 04 mov BYTE PTR lzw_cs$[rbp], al ; 7085 : if (lzw_cs > 12) 00034 0f b6 45 04 movzx eax, BYTE PTR lzw_cs$[rbp] 00038 83 f8 0c cmp eax, 12 0003b 7e 07 jle SHORT $LN10@stbi__proc ; 7086 : return NULL; 0003d 33 c0 xor eax, eax 0003f e9 a2 04 00 00 jmp $LN1@stbi__proc $LN10@stbi__proc: ; 7087 : clear = 1 << lzw_cs; 00044 0f b6 45 04 movzx eax, BYTE PTR lzw_cs$[rbp] 00048 b9 01 00 00 00 mov ecx, 1 0004d 89 8d 54 02 00 00 mov DWORD PTR tv242[rbp], ecx 00053 0f b6 c8 movzx ecx, al 00056 8b 85 54 02 00 00 mov eax, DWORD PTR tv242[rbp] 0005c d3 e0 shl eax, cl 0005e 89 85 44 01 00 00 mov DWORD PTR clear$[rbp], eax ; 7088 : first = 1; 00064 c7 45 64 01 00 00 00 mov DWORD PTR first$[rbp], 1 ; 7089 : codesize = lzw_cs + 1; 0006b 0f b6 45 04 movzx eax, BYTE PTR lzw_cs$[rbp] 0006f ff c0 inc eax 00071 89 85 84 00 00 00 mov DWORD PTR codesize$[rbp], eax ; 7090 : codemask = (1 << codesize) - 1; 00077 8b 85 84 00 00 00 mov eax, DWORD PTR codesize$[rbp] 0007d b9 01 00 00 00 mov ecx, 1 00082 89 8d 54 02 00 00 mov DWORD PTR tv246[rbp], ecx 00088 0f b6 c8 movzx ecx, al 0008b 8b 85 54 02 00 00 mov eax, DWORD PTR tv246[rbp] 00091 d3 e0 shl eax, cl 00093 ff c8 dec eax 00095 89 85 a4 00 00 00 mov DWORD PTR codemask$[rbp], eax ; 7091 : bits = 0; 0009b c7 85 04 01 00 00 00 00 00 00 mov DWORD PTR bits$[rbp], 0 ; 7092 : valid_bits = 0; 000a5 c7 85 24 01 00 00 00 00 00 00 mov DWORD PTR valid_bits$[rbp], 0 ; 7093 : for (init_code = 0; init_code < clear; init_code++) { 000af c7 45 44 00 00 00 00 mov DWORD PTR init_code$[rbp], 0 000b6 eb 08 jmp SHORT $LN4@stbi__proc $LN2@stbi__proc: 000b8 8b 45 44 mov eax, DWORD PTR init_code$[rbp] 000bb ff c0 inc eax 000bd 89 45 44 mov DWORD PTR init_code$[rbp], eax $LN4@stbi__proc: 000c0 8b 85 44 01 00 00 mov eax, DWORD PTR clear$[rbp] 000c6 39 45 44 cmp DWORD PTR init_code$[rbp], eax 000c9 7d 46 jge SHORT $LN3@stbi__proc ; 7094 : g->codes[init_code].prefix = -1; 000cb 48 63 45 44 movsxd rax, DWORD PTR init_code$[rbp] 000cf b9 ff ff ff ff mov ecx, -1 000d4 48 8b 95 88 02 00 00 mov rdx, QWORD PTR g$[rbp] 000db 66 89 8c 82 34 08 00 00 mov WORD PTR [rdx+rax*4+2100], cx ; 7095 : g->codes[init_code].first = (stbi_uc)init_code; 000e3 48 63 45 44 movsxd rax, DWORD PTR init_code$[rbp] 000e7 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR g$[rbp] 000ee 0f b6 55 44 movzx edx, BYTE PTR init_code$[rbp] 000f2 88 94 81 36 08 00 00 mov BYTE PTR [rcx+rax*4+2102], dl ; 7096 : g->codes[init_code].suffix = (stbi_uc)init_code; 000f9 48 63 45 44 movsxd rax, DWORD PTR init_code$[rbp] 000fd 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR g$[rbp] 00104 0f b6 55 44 movzx edx, BYTE PTR init_code$[rbp] 00108 88 94 81 37 08 00 00 mov BYTE PTR [rcx+rax*4+2103], dl ; 7097 : } 0010f eb a7 jmp SHORT $LN2@stbi__proc $LN3@stbi__proc: ; 7098 : ; 7099 : // support no starting clear code ; 7100 : avail = clear + 2; 00111 8b 85 44 01 00 00 mov eax, DWORD PTR clear$[rbp] 00117 83 c0 02 add eax, 2 0011a 89 85 c4 00 00 00 mov DWORD PTR avail$[rbp], eax ; 7101 : oldcode = -1; 00120 c7 85 e4 00 00 00 ff ff ff ff mov DWORD PTR oldcode$[rbp], -1 ; 7102 : ; 7103 : len = 0; 0012a c7 45 24 00 00 00 00 mov DWORD PTR len$[rbp], 0 $LN5@stbi__proc: ; 7104 : for (;;) { ; 7105 : if (valid_bits < codesize) { 00131 8b 85 84 00 00 00 mov eax, DWORD PTR codesize$[rbp] 00137 39 85 24 01 00 00 cmp DWORD PTR valid_bits$[rbp], eax 0013d 7d 71 jge SHORT $LN11@stbi__proc ; 7106 : if (len == 0) { 0013f 83 7d 24 00 cmp DWORD PTR len$[rbp], 0 00143 75 28 jne SHORT $LN13@stbi__proc ; 7107 : len = stbi__get8(s); // start new block 00145 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR s$[rbp] 0014c e8 00 00 00 00 call stbi__get8 00151 0f b6 c0 movzx eax, al 00154 89 45 24 mov DWORD PTR len$[rbp], eax ; 7108 : if (len == 0) 00157 83 7d 24 00 cmp DWORD PTR len$[rbp], 0 0015b 75 10 jne SHORT $LN14@stbi__proc ; 7109 : return g->out; 0015d 48 8b 85 88 02 00 00 mov rax, QWORD PTR g$[rbp] 00164 48 8b 40 08 mov rax, QWORD PTR [rax+8] 00168 e9 79 03 00 00 jmp $LN1@stbi__proc $LN14@stbi__proc: $LN13@stbi__proc: ; 7110 : } ; 7111 : --len; 0016d 8b 45 24 mov eax, DWORD PTR len$[rbp] 00170 ff c8 dec eax 00172 89 45 24 mov DWORD PTR len$[rbp], eax ; 7112 : bits |= (stbi__int32)stbi__get8(s) << valid_bits; 00175 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR s$[rbp] 0017c e8 00 00 00 00 call stbi__get8 00181 0f b6 c0 movzx eax, al 00184 8b 8d 24 01 00 00 mov ecx, DWORD PTR valid_bits$[rbp] 0018a d3 e0 shl eax, cl 0018c 8b 8d 04 01 00 00 mov ecx, DWORD PTR bits$[rbp] 00192 0b c8 or ecx, eax 00194 8b c1 mov eax, ecx 00196 89 85 04 01 00 00 mov DWORD PTR bits$[rbp], eax ; 7113 : valid_bits += 8; 0019c 8b 85 24 01 00 00 mov eax, DWORD PTR valid_bits$[rbp] 001a2 83 c0 08 add eax, 8 001a5 89 85 24 01 00 00 mov DWORD PTR valid_bits$[rbp], eax ; 7114 : } else { 001ab e9 31 03 00 00 jmp $LN12@stbi__proc $LN11@stbi__proc: ; 7115 : stbi__int32 code = bits & codemask; 001b0 8b 85 a4 00 00 00 mov eax, DWORD PTR codemask$[rbp] 001b6 8b 8d 04 01 00 00 mov ecx, DWORD PTR bits$[rbp] 001bc 23 c8 and ecx, eax 001be 8b c1 mov eax, ecx 001c0 89 85 84 01 00 00 mov DWORD PTR code$1[rbp], eax ; 7116 : bits >>= codesize; 001c6 8b 85 84 00 00 00 mov eax, DWORD PTR codesize$[rbp] 001cc 0f b6 c8 movzx ecx, al 001cf 8b 85 04 01 00 00 mov eax, DWORD PTR bits$[rbp] 001d5 d3 f8 sar eax, cl 001d7 89 85 04 01 00 00 mov DWORD PTR bits$[rbp], eax ; 7117 : valid_bits -= codesize; 001dd 8b 85 84 00 00 00 mov eax, DWORD PTR codesize$[rbp] 001e3 8b 8d 24 01 00 00 mov ecx, DWORD PTR valid_bits$[rbp] 001e9 2b c8 sub ecx, eax 001eb 8b c1 mov eax, ecx 001ed 89 85 24 01 00 00 mov DWORD PTR valid_bits$[rbp], eax ; 7118 : // @OPTIMIZE: is there some way we can accelerate the non-clear path? ; 7119 : if (code == clear) { // clear code 001f3 8b 85 44 01 00 00 mov eax, DWORD PTR clear$[rbp] 001f9 39 85 84 01 00 00 cmp DWORD PTR code$1[rbp], eax 001ff 75 55 jne SHORT $LN15@stbi__proc ; 7120 : codesize = lzw_cs + 1; 00201 0f b6 45 04 movzx eax, BYTE PTR lzw_cs$[rbp] 00205 ff c0 inc eax 00207 89 85 84 00 00 00 mov DWORD PTR codesize$[rbp], eax ; 7121 : codemask = (1 << codesize) - 1; 0020d 8b 85 84 00 00 00 mov eax, DWORD PTR codesize$[rbp] 00213 b9 01 00 00 00 mov ecx, 1 00218 89 8d 54 02 00 00 mov DWORD PTR tv273[rbp], ecx 0021e 0f b6 c8 movzx ecx, al 00221 8b 85 54 02 00 00 mov eax, DWORD PTR tv273[rbp] 00227 d3 e0 shl eax, cl 00229 ff c8 dec eax 0022b 89 85 a4 00 00 00 mov DWORD PTR codemask$[rbp], eax ; 7122 : avail = clear + 2; 00231 8b 85 44 01 00 00 mov eax, DWORD PTR clear$[rbp] 00237 83 c0 02 add eax, 2 0023a 89 85 c4 00 00 00 mov DWORD PTR avail$[rbp], eax ; 7123 : oldcode = -1; 00240 c7 85 e4 00 00 00 ff ff ff ff mov DWORD PTR oldcode$[rbp], -1 ; 7124 : first = 0; 0024a c7 45 64 00 00 00 00 mov DWORD PTR first$[rbp], 0 00251 e9 8b 02 00 00 jmp $LN16@stbi__proc $LN15@stbi__proc: ; 7125 : } else if (code == clear + 1) { // end of stream code 00256 8b 85 44 01 00 00 mov eax, DWORD PTR clear$[rbp] 0025c ff c0 inc eax 0025e 39 85 84 01 00 00 cmp DWORD PTR code$1[rbp], eax 00264 75 4f jne SHORT $LN17@stbi__proc ; 7126 : stbi__skip(s, len); 00266 8b 55 24 mov edx, DWORD PTR len$[rbp] 00269 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR s$[rbp] 00270 e8 00 00 00 00 call stbi__skip 00275 90 npad 1 $LN8@stbi__proc: ; 7127 : while ((len = stbi__get8(s)) > 0) 00276 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR s$[rbp] 0027d e8 00 00 00 00 call stbi__get8 00282 0f b6 c0 movzx eax, al 00285 89 45 24 mov DWORD PTR len$[rbp], eax 00288 83 7d 24 00 cmp DWORD PTR len$[rbp], 0 0028c 7e 12 jle SHORT $LN9@stbi__proc ; 7128 : stbi__skip(s, len); 0028e 8b 55 24 mov edx, DWORD PTR len$[rbp] 00291 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR s$[rbp] 00298 e8 00 00 00 00 call stbi__skip 0029d 90 npad 1 0029e eb d6 jmp SHORT $LN8@stbi__proc $LN9@stbi__proc: ; 7129 : return g->out; 002a0 48 8b 85 88 02 00 00 mov rax, QWORD PTR g$[rbp] 002a7 48 8b 40 08 mov rax, QWORD PTR [rax+8] 002ab e9 36 02 00 00 jmp $LN1@stbi__proc 002b0 e9 2c 02 00 00 jmp $LN18@stbi__proc $LN17@stbi__proc: ; 7130 : } else if (code <= avail) { 002b5 8b 85 c4 00 00 00 mov eax, DWORD PTR avail$[rbp] 002bb 39 85 84 01 00 00 cmp DWORD PTR code$1[rbp], eax 002c1 0f 8f e9 01 00 00 jg $LN19@stbi__proc ; 7131 : if (first) { 002c7 83 7d 64 00 cmp DWORD PTR first$[rbp], 0 002cb 74 34 je SHORT $LN21@stbi__proc ; 7132 : return stbi__errpuc("no clear code", "Corrupt GIF"); 002cd 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@MGDACKOJ@no?5clear?5code@ 002d4 e8 00 00 00 00 call stbi__err 002d9 85 c0 test eax, eax 002db 74 0d je SHORT $LN28@stbi__proc 002dd 48 c7 85 58 02 00 00 00 00 00 00 mov QWORD PTR tv163[rbp], 0 002e8 eb 0b jmp SHORT $LN29@stbi__proc $LN28@stbi__proc: 002ea 48 c7 85 58 02 00 00 00 00 00 00 mov QWORD PTR tv163[rbp], 0 $LN29@stbi__proc: 002f5 48 8b 85 58 02 00 00 mov rax, QWORD PTR tv163[rbp] 002fc e9 e5 01 00 00 jmp $LN1@stbi__proc $LN21@stbi__proc: ; 7133 : } ; 7134 : ; 7135 : if (oldcode >= 0) { 00301 83 bd e4 00 00 00 00 cmp DWORD PTR oldcode$[rbp], 0 00308 0f 8c ec 00 00 00 jl $LN22@stbi__proc ; 7136 : p = &g->codes[avail++]; 0030e 48 63 85 c4 00 00 00 movsxd rax, DWORD PTR avail$[rbp] 00315 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR g$[rbp] 0031c 48 8d 84 81 34 08 00 00 lea rax, QWORD PTR [rcx+rax*4+2100] 00324 48 89 85 68 01 00 00 mov QWORD PTR p$[rbp], rax 0032b 8b 85 c4 00 00 00 mov eax, DWORD PTR avail$[rbp] 00331 ff c0 inc eax 00333 89 85 c4 00 00 00 mov DWORD PTR avail$[rbp], eax ; 7137 : if (avail > 8192) { 00339 81 bd c4 00 00 00 00 20 00 00 cmp DWORD PTR avail$[rbp], 8192 ; 00002000H 00343 7e 34 jle SHORT $LN24@stbi__proc ; 7138 : return stbi__errpuc("too many codes", 00345 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@GJNJCPDJ@too?5many?5codes@ 0034c e8 00 00 00 00 call stbi__err 00351 85 c0 test eax, eax 00353 74 0d je SHORT $LN30@stbi__proc 00355 48 c7 85 58 02 00 00 00 00 00 00 mov QWORD PTR tv174[rbp], 0 00360 eb 0b jmp SHORT $LN31@stbi__proc $LN30@stbi__proc: 00362 48 c7 85 58 02 00 00 00 00 00 00 mov QWORD PTR tv174[rbp], 0 $LN31@stbi__proc: 0036d 48 8b 85 58 02 00 00 mov rax, QWORD PTR tv174[rbp] 00374 e9 6d 01 00 00 jmp $LN1@stbi__proc $LN24@stbi__proc: ; 7139 : "Corrupt GIF"); ; 7140 : } ; 7141 : ; 7142 : p->prefix = (stbi__int16)oldcode; 00379 48 8b 85 68 01 00 00 mov rax, QWORD PTR p$[rbp] 00380 0f b7 8d e4 00 00 00 movzx ecx, WORD PTR oldcode$[rbp] 00387 66 89 08 mov WORD PTR [rax], cx ; 7143 : p->first = g->codes[oldcode].first; 0038a 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR oldcode$[rbp] 00391 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR p$[rbp] 00398 48 8b 95 88 02 00 00 mov rdx, QWORD PTR g$[rbp] 0039f 0f b6 84 82 36 08 00 00 movzx eax, BYTE PTR [rdx+rax*4+2102] 003a7 88 41 02 mov BYTE PTR [rcx+2], al ; 7144 : p->suffix = (code == avail) ? p->first : 003aa 8b 85 c4 00 00 00 mov eax, DWORD PTR avail$[rbp] 003b0 39 85 84 01 00 00 cmp DWORD PTR code$1[rbp], eax 003b6 75 13 jne SHORT $LN32@stbi__proc 003b8 48 8b 85 68 01 00 00 mov rax, QWORD PTR p$[rbp] 003bf 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 003c3 89 85 54 02 00 00 mov DWORD PTR tv192[rbp], eax 003c9 eb 1c jmp SHORT $LN33@stbi__proc $LN32@stbi__proc: 003cb 48 63 85 84 01 00 00 movsxd rax, DWORD PTR code$1[rbp] 003d2 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR g$[rbp] 003d9 0f b6 84 81 36 08 00 00 movzx eax, BYTE PTR [rcx+rax*4+2102] 003e1 89 85 54 02 00 00 mov DWORD PTR tv192[rbp], eax $LN33@stbi__proc: 003e7 48 8b 85 68 01 00 00 mov rax, QWORD PTR p$[rbp] 003ee 0f b6 8d 54 02 00 00 movzx ecx, BYTE PTR tv192[rbp] 003f5 88 48 03 mov BYTE PTR [rax+3], cl 003f8 eb 42 jmp SHORT $LN23@stbi__proc $LN22@stbi__proc: ; 7145 : g->codes[code].first; ; 7146 : } else if (code == avail) 003fa 8b 85 c4 00 00 00 mov eax, DWORD PTR avail$[rbp] 00400 39 85 84 01 00 00 cmp DWORD PTR code$1[rbp], eax 00406 75 34 jne SHORT $LN25@stbi__proc ; 7147 : return stbi__errpuc("illegal code in raster", 00408 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ 0040f e8 00 00 00 00 call stbi__err 00414 85 c0 test eax, eax 00416 74 0d je SHORT $LN34@stbi__proc 00418 48 c7 85 58 02 00 00 00 00 00 00 mov QWORD PTR tv198[rbp], 0 00423 eb 0b jmp SHORT $LN35@stbi__proc $LN34@stbi__proc: 00425 48 c7 85 58 02 00 00 00 00 00 00 mov QWORD PTR tv198[rbp], 0 $LN35@stbi__proc: 00430 48 8b 85 58 02 00 00 mov rax, QWORD PTR tv198[rbp] 00437 e9 aa 00 00 00 jmp $LN1@stbi__proc $LN25@stbi__proc: $LN23@stbi__proc: ; 7148 : "Corrupt GIF"); ; 7149 : ; 7150 : stbi__out_gif_code(g, (stbi__uint16)code); 0043c 0f b7 95 84 01 00 00 movzx edx, WORD PTR code$1[rbp] 00443 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR g$[rbp] 0044a e8 00 00 00 00 call stbi__out_gif_code 0044f 90 npad 1 ; 7151 : ; 7152 : if ((avail & codemask) == 0 && avail <= 0x0FFF) { 00450 8b 85 a4 00 00 00 mov eax, DWORD PTR codemask$[rbp] 00456 8b 8d c4 00 00 00 mov ecx, DWORD PTR avail$[rbp] 0045c 23 c8 and ecx, eax 0045e 8b c1 mov eax, ecx 00460 85 c0 test eax, eax 00462 75 3e jne SHORT $LN26@stbi__proc 00464 81 bd c4 00 00 00 ff 0f 00 00 cmp DWORD PTR avail$[rbp], 4095 ; 00000fffH 0046e 7f 32 jg SHORT $LN26@stbi__proc ; 7153 : codesize++; 00470 8b 85 84 00 00 00 mov eax, DWORD PTR codesize$[rbp] 00476 ff c0 inc eax 00478 89 85 84 00 00 00 mov DWORD PTR codesize$[rbp], eax ; 7154 : codemask = (1 << codesize) - 1; 0047e 8b 85 84 00 00 00 mov eax, DWORD PTR codesize$[rbp] 00484 b9 01 00 00 00 mov ecx, 1 00489 89 8d 54 02 00 00 mov DWORD PTR tv297[rbp], ecx 0048f 0f b6 c8 movzx ecx, al 00492 8b 85 54 02 00 00 mov eax, DWORD PTR tv297[rbp] 00498 d3 e0 shl eax, cl 0049a ff c8 dec eax 0049c 89 85 a4 00 00 00 mov DWORD PTR codemask$[rbp], eax $LN26@stbi__proc: ; 7155 : } ; 7156 : ; 7157 : oldcode = code; 004a2 8b 85 84 01 00 00 mov eax, DWORD PTR code$1[rbp] 004a8 89 85 e4 00 00 00 mov DWORD PTR oldcode$[rbp], eax ; 7158 : } else { 004ae eb 31 jmp SHORT $LN20@stbi__proc $LN19@stbi__proc: ; 7159 : return stbi__errpuc("illegal code in raster", "Corrupt GIF"); 004b0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BH@LOKBIIOJ@illegal?5code?5in?5raster@ 004b7 e8 00 00 00 00 call stbi__err 004bc 85 c0 test eax, eax 004be 74 0d je SHORT $LN36@stbi__proc 004c0 48 c7 85 58 02 00 00 00 00 00 00 mov QWORD PTR tv210[rbp], 0 004cb eb 0b jmp SHORT $LN37@stbi__proc $LN36@stbi__proc: 004cd 48 c7 85 58 02 00 00 00 00 00 00 mov QWORD PTR tv210[rbp], 0 $LN37@stbi__proc: 004d8 48 8b 85 58 02 00 00 mov rax, QWORD PTR tv210[rbp] 004df eb 05 jmp SHORT $LN1@stbi__proc $LN20@stbi__proc: $LN18@stbi__proc: $LN16@stbi__proc: $LN12@stbi__proc: ; 7160 : } ; 7161 : } ; 7162 : } 004e1 e9 4b fc ff ff jmp $LN5@stbi__proc $LN1@stbi__proc: ; 7163 : } 004e6 48 8d a5 68 02 00 00 lea rsp, QWORD PTR [rbp+616] 004ed 5f pop rdi 004ee 5d pop rbp 004ef c3 ret 0 stbi__process_gif_raster ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__out_gif_code _TEXT SEGMENT p$ = 8 c$ = 40 idx$ = 68 tv257 = 276 g$ = 320 code$ = 328 stbi__out_gif_code PROC ; COMDAT ; 7039 : { 00000 66 89 54 24 10 mov WORD PTR [rsp+16], dx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 7040 : stbi_uc *p, *c; ; 7041 : int idx; ; 7042 : ; 7043 : // recurse to decode the prefixes, since the linked-list is backwards, ; 7044 : // and working backwards through an interleaved image would be nasty ; 7045 : if (g->codes[code].prefix >= 0) 00025 0f b7 85 48 01 00 00 movzx eax, WORD PTR code$[rbp] 0002c 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 00033 0f bf 84 81 34 08 00 00 movsx eax, WORD PTR [rcx+rax*4+2100] 0003b 85 c0 test eax, eax 0003d 7c 23 jl SHORT $LN4@stbi__out_ ; 7046 : stbi__out_gif_code(g, g->codes[code].prefix); 0003f 0f b7 85 48 01 00 00 movzx eax, WORD PTR code$[rbp] 00046 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 0004d 0f b7 94 81 34 08 00 00 movzx edx, WORD PTR [rcx+rax*4+2100] 00055 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 0005c e8 00 00 00 00 call stbi__out_gif_code 00061 90 npad 1 $LN4@stbi__out_: ; 7047 : ; 7048 : if (g->cur_y >= g->max_y) 00062 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 00069 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 00070 8b 89 58 88 00 00 mov ecx, DWORD PTR [rcx+34904] 00076 39 88 60 88 00 00 cmp DWORD PTR [rax+34912], ecx 0007c 7c 05 jl SHORT $LN5@stbi__out_ ; 7049 : return; 0007e e9 64 02 00 00 jmp $LN1@stbi__out_ $LN5@stbi__out_: ; 7050 : ; 7051 : idx = g->cur_x + g->cur_y; 00083 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 0008a 8b 80 5c 88 00 00 mov eax, DWORD PTR [rax+34908] 00090 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 00097 03 81 60 88 00 00 add eax, DWORD PTR [rcx+34912] 0009d 89 45 44 mov DWORD PTR idx$[rbp], eax ; 7052 : p = &g->out[idx]; 000a0 48 63 45 44 movsxd rax, DWORD PTR idx$[rbp] 000a4 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 000ab 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] 000af 48 03 c8 add rcx, rax 000b2 48 8b c1 mov rax, rcx 000b5 48 89 45 08 mov QWORD PTR p$[rbp], rax ; 7053 : g->history[idx / 4] = 1; 000b9 8b 45 44 mov eax, DWORD PTR idx$[rbp] 000bc 99 cdq 000bd 83 e2 03 and edx, 3 000c0 03 c2 add eax, edx 000c2 c1 f8 02 sar eax, 2 000c5 48 98 cdqe 000c7 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 000ce 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] 000d2 c6 04 01 01 mov BYTE PTR [rcx+rax], 1 ; 7054 : ; 7055 : c = &g->color_table[g->codes[code].suffix * 4]; 000d6 0f b7 85 48 01 00 00 movzx eax, WORD PTR code$[rbp] 000dd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 000e4 0f b6 84 81 37 08 00 00 movzx eax, BYTE PTR [rcx+rax*4+2103] 000ec c1 e0 02 shl eax, 2 000ef 48 98 cdqe 000f1 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 000f8 48 8b 89 38 88 00 00 mov rcx, QWORD PTR [rcx+34872] 000ff 48 03 c8 add rcx, rax 00102 48 8b c1 mov rax, rcx 00105 48 89 45 28 mov QWORD PTR c$[rbp], rax ; 7056 : if (c[3] > 128) { // don't render transparent pixels; 00109 b8 01 00 00 00 mov eax, 1 0010e 48 6b c0 03 imul rax, rax, 3 00112 48 8b 4d 28 mov rcx, QWORD PTR c$[rbp] 00116 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0011a 3d 80 00 00 00 cmp eax, 128 ; 00000080H 0011f 0f 8e 88 00 00 00 jle $LN6@stbi__out_ ; 7057 : p[0] = c[2]; 00125 b8 01 00 00 00 mov eax, 1 0012a 48 6b c0 02 imul rax, rax, 2 0012e b9 01 00 00 00 mov ecx, 1 00133 48 6b c9 00 imul rcx, rcx, 0 00137 48 8b 55 08 mov rdx, QWORD PTR p$[rbp] 0013b 4c 8b 45 28 mov r8, QWORD PTR c$[rbp] 0013f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00144 88 04 0a mov BYTE PTR [rdx+rcx], al ; 7058 : p[1] = c[1]; 00147 b8 01 00 00 00 mov eax, 1 0014c 48 6b c0 01 imul rax, rax, 1 00150 b9 01 00 00 00 mov ecx, 1 00155 48 6b c9 01 imul rcx, rcx, 1 00159 48 8b 55 08 mov rdx, QWORD PTR p$[rbp] 0015d 4c 8b 45 28 mov r8, QWORD PTR c$[rbp] 00161 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00166 88 04 0a mov BYTE PTR [rdx+rcx], al ; 7059 : p[2] = c[0]; 00169 b8 01 00 00 00 mov eax, 1 0016e 48 6b c0 00 imul rax, rax, 0 00172 b9 01 00 00 00 mov ecx, 1 00177 48 6b c9 02 imul rcx, rcx, 2 0017b 48 8b 55 08 mov rdx, QWORD PTR p$[rbp] 0017f 4c 8b 45 28 mov r8, QWORD PTR c$[rbp] 00183 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00188 88 04 0a mov BYTE PTR [rdx+rcx], al ; 7060 : p[3] = c[3]; 0018b b8 01 00 00 00 mov eax, 1 00190 48 6b c0 03 imul rax, rax, 3 00194 b9 01 00 00 00 mov ecx, 1 00199 48 6b c9 03 imul rcx, rcx, 3 0019d 48 8b 55 08 mov rdx, QWORD PTR p$[rbp] 001a1 4c 8b 45 28 mov r8, QWORD PTR c$[rbp] 001a5 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 001aa 88 04 0a mov BYTE PTR [rdx+rcx], al $LN6@stbi__out_: ; 7061 : } ; 7062 : g->cur_x += 4; 001ad 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 001b4 8b 80 5c 88 00 00 mov eax, DWORD PTR [rax+34908] 001ba 83 c0 04 add eax, 4 001bd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 001c4 89 81 5c 88 00 00 mov DWORD PTR [rcx+34908], eax ; 7063 : ; 7064 : if (g->cur_x >= g->max_x) { 001ca 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 001d1 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 001d8 8b 89 54 88 00 00 mov ecx, DWORD PTR [rcx+34900] 001de 39 88 5c 88 00 00 cmp DWORD PTR [rax+34908], ecx 001e4 0f 8c fd 00 00 00 jl $LN7@stbi__out_ ; 7065 : g->cur_x = g->start_x; 001ea 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 001f1 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 001f8 8b 89 4c 88 00 00 mov ecx, DWORD PTR [rcx+34892] 001fe 89 88 5c 88 00 00 mov DWORD PTR [rax+34908], ecx ; 7066 : g->cur_y += g->step; 00204 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 0020b 8b 80 60 88 00 00 mov eax, DWORD PTR [rax+34912] 00211 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 00218 03 81 44 88 00 00 add eax, DWORD PTR [rcx+34884] 0021e 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 00225 89 81 60 88 00 00 mov DWORD PTR [rcx+34912], eax $LN2@stbi__out_: ; 7067 : ; 7068 : while (g->cur_y >= g->max_y && g->parse > 0) { 0022b 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 00232 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 00239 8b 89 58 88 00 00 mov ecx, DWORD PTR [rcx+34904] 0023f 39 88 60 88 00 00 cmp DWORD PTR [rax+34912], ecx 00245 0f 8c 9c 00 00 00 jl $LN3@stbi__out_ 0024b 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 00252 83 b8 40 88 00 00 00 cmp DWORD PTR [rax+34880], 0 00259 0f 8e 88 00 00 00 jle $LN3@stbi__out_ ; 7069 : g->step = (1 << g->parse) * g->line_size; 0025f 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 00266 8b 80 40 88 00 00 mov eax, DWORD PTR [rax+34880] 0026c b9 01 00 00 00 mov ecx, 1 00271 89 8d 14 01 00 00 mov DWORD PTR tv257[rbp], ecx 00277 0f b6 c8 movzx ecx, al 0027a 8b 85 14 01 00 00 mov eax, DWORD PTR tv257[rbp] 00280 d3 e0 shl eax, cl 00282 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 00289 0f af 81 64 88 00 00 imul eax, DWORD PTR [rcx+34916] 00290 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 00297 89 81 44 88 00 00 mov DWORD PTR [rcx+34884], eax ; 7070 : g->cur_y = g->start_y + (g->step >> 1); 0029d 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 002a4 8b 80 44 88 00 00 mov eax, DWORD PTR [rax+34884] 002aa d1 f8 sar eax, 1 002ac 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 002b3 03 81 50 88 00 00 add eax, DWORD PTR [rcx+34896] 002b9 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 002c0 89 81 60 88 00 00 mov DWORD PTR [rcx+34912], eax ; 7071 : --g->parse; 002c6 48 8b 85 40 01 00 00 mov rax, QWORD PTR g$[rbp] 002cd 8b 80 40 88 00 00 mov eax, DWORD PTR [rax+34880] 002d3 ff c8 dec eax 002d5 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR g$[rbp] 002dc 89 81 40 88 00 00 mov DWORD PTR [rcx+34880], eax ; 7072 : } 002e2 e9 44 ff ff ff jmp $LN2@stbi__out_ $LN3@stbi__out_: $LN7@stbi__out_: $LN1@stbi__out_: ; 7073 : } ; 7074 : } 002e7 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 002ee 5f pop rdi 002ef 5d pop rbp 002f0 c3 ret 0 stbi__out_gif_code ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__gif_info_raw _TEXT SEGMENT g$ = 8 s$ = 256 x$ = 264 y$ = 272 comp$ = 280 stbi__gif_info_raw PROC ; COMDAT ; 7021 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 7022 : stbi__gif *g = (stbi__gif *)stbi__malloc(sizeof(stbi__gif)); 0002f b9 70 88 00 00 mov ecx, 34928 ; 00008870H 00034 e8 00 00 00 00 call stbi__malloc 00039 48 89 45 08 mov QWORD PTR g$[rbp], rax ; 7023 : if (!g) 0003d 48 83 7d 08 00 cmp QWORD PTR g$[rbp], 0 00042 75 11 jne SHORT $LN2@stbi__gif_ ; 7024 : return stbi__err("outofmem", "Out of memory"); 00044 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0004b e8 00 00 00 00 call stbi__err 00050 e9 80 00 00 00 jmp $LN1@stbi__gif_ $LN2@stbi__gif_: ; 7025 : if (!stbi__gif_header(s, g, comp, 1)) { 00055 41 b9 01 00 00 00 mov r9d, 1 0005b 4c 8b 85 18 01 00 00 mov r8, QWORD PTR comp$[rbp] 00062 48 8b 55 08 mov rdx, QWORD PTR g$[rbp] 00066 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0006d e8 00 00 00 00 call stbi__gif_header 00072 85 c0 test eax, eax 00074 75 1c jne SHORT $LN3@stbi__gif_ ; 7026 : STBI_FREE(g); 00076 48 8b 4d 08 mov rcx, QWORD PTR g$[rbp] 0007a ff 15 00 00 00 00 call QWORD PTR __imp_free 00080 90 npad 1 ; 7027 : stbi__rewind(s); 00081 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00088 e8 00 00 00 00 call stbi__rewind 0008d 90 npad 1 ; 7028 : return 0; 0008e 33 c0 xor eax, eax 00090 eb 43 jmp SHORT $LN1@stbi__gif_ $LN3@stbi__gif_: ; 7029 : } ; 7030 : if (x) 00092 48 83 bd 08 01 00 00 00 cmp QWORD PTR x$[rbp], 0 0009a 74 0f je SHORT $LN4@stbi__gif_ ; 7031 : *x = g->w; 0009c 48 8b 85 08 01 00 00 mov rax, QWORD PTR x$[rbp] 000a3 48 8b 4d 08 mov rcx, QWORD PTR g$[rbp] 000a7 8b 09 mov ecx, DWORD PTR [rcx] 000a9 89 08 mov DWORD PTR [rax], ecx $LN4@stbi__gif_: ; 7032 : if (y) 000ab 48 83 bd 10 01 00 00 00 cmp QWORD PTR y$[rbp], 0 000b3 74 10 je SHORT $LN5@stbi__gif_ ; 7033 : *y = g->h; 000b5 48 8b 85 10 01 00 00 mov rax, QWORD PTR y$[rbp] 000bc 48 8b 4d 08 mov rcx, QWORD PTR g$[rbp] 000c0 8b 49 04 mov ecx, DWORD PTR [rcx+4] 000c3 89 08 mov DWORD PTR [rax], ecx $LN5@stbi__gif_: ; 7034 : STBI_FREE(g); 000c5 48 8b 4d 08 mov rcx, QWORD PTR g$[rbp] 000c9 ff 15 00 00 00 00 call QWORD PTR __imp_free 000cf 90 npad 1 ; 7035 : return 1; 000d0 b8 01 00 00 00 mov eax, 1 $LN1@stbi__gif_: ; 7036 : } 000d5 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000dc 5f pop rdi 000dd 5d pop rbp 000de c3 ret 0 stbi__gif_info_raw ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__gif_header _TEXT SEGMENT version$ = 4 tv225 = 212 s$ = 256 g$ = 264 comp$ = 272 is_info$ = 280 stbi__gif_header PROC ; COMDAT ; 6983 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 6984 : stbi_uc version; ; 6985 : if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || 0002f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__get8 0003b 0f b6 c0 movzx eax, al 0003e 83 f8 47 cmp eax, 71 ; 00000047H 00041 75 3c jne SHORT $LN3@stbi__gif_ 00043 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0004a e8 00 00 00 00 call stbi__get8 0004f 0f b6 c0 movzx eax, al 00052 83 f8 49 cmp eax, 73 ; 00000049H 00055 75 28 jne SHORT $LN3@stbi__gif_ 00057 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0005e e8 00 00 00 00 call stbi__get8 00063 0f b6 c0 movzx eax, al 00066 83 f8 46 cmp eax, 70 ; 00000046H 00069 75 14 jne SHORT $LN3@stbi__gif_ 0006b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00072 e8 00 00 00 00 call stbi__get8 00077 0f b6 c0 movzx eax, al 0007a 83 f8 38 cmp eax, 56 ; 00000038H 0007d 74 11 je SHORT $LN2@stbi__gif_ $LN3@stbi__gif_: ; 6986 : stbi__get8(s) != '8') ; 6987 : return stbi__err("not GIF", "Corrupt GIF"); 0007f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07KMJLPAII@not?5GIF@ 00086 e8 00 00 00 00 call stbi__err 0008b e9 c7 01 00 00 jmp $LN1@stbi__gif_ $LN2@stbi__gif_: ; 6988 : ; 6989 : version = stbi__get8(s); 00090 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00097 e8 00 00 00 00 call stbi__get8 0009c 88 45 04 mov BYTE PTR version$[rbp], al ; 6990 : if (version != '7' && version != '9') 0009f 0f b6 45 04 movzx eax, BYTE PTR version$[rbp] 000a3 83 f8 37 cmp eax, 55 ; 00000037H 000a6 74 1a je SHORT $LN4@stbi__gif_ 000a8 0f b6 45 04 movzx eax, BYTE PTR version$[rbp] 000ac 83 f8 39 cmp eax, 57 ; 00000039H 000af 74 11 je SHORT $LN4@stbi__gif_ ; 6991 : return stbi__err("not GIF", "Corrupt GIF"); 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07KMJLPAII@not?5GIF@ 000b8 e8 00 00 00 00 call stbi__err 000bd e9 95 01 00 00 jmp $LN1@stbi__gif_ $LN4@stbi__gif_: ; 6992 : if (stbi__get8(s) != 'a') 000c2 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000c9 e8 00 00 00 00 call stbi__get8 000ce 0f b6 c0 movzx eax, al 000d1 83 f8 61 cmp eax, 97 ; 00000061H 000d4 74 11 je SHORT $LN5@stbi__gif_ ; 6993 : return stbi__err("not GIF", "Corrupt GIF"); 000d6 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07KMJLPAII@not?5GIF@ 000dd e8 00 00 00 00 call stbi__err 000e2 e9 70 01 00 00 jmp $LN1@stbi__gif_ $LN5@stbi__gif_: ; 6994 : ; 6995 : stbi__g_failure_reason = ""; 000e7 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__g_failure_reason 000ec 8b c0 mov eax, eax 000ee 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 000f4 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 000fd 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00101 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_00CNPNBAHC@@ 00108 48 89 14 08 mov QWORD PTR [rax+rcx], rdx ; 6996 : g->w = stbi__get16le(s); 0010c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00113 e8 00 00 00 00 call stbi__get16le 00118 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR g$[rbp] 0011f 89 01 mov DWORD PTR [rcx], eax ; 6997 : g->h = stbi__get16le(s); 00121 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00128 e8 00 00 00 00 call stbi__get16le 0012d 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR g$[rbp] 00134 89 41 04 mov DWORD PTR [rcx+4], eax ; 6998 : g->flags = stbi__get8(s); 00137 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0013e e8 00 00 00 00 call stbi__get8 00143 0f b6 c0 movzx eax, al 00146 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR g$[rbp] 0014d 89 41 20 mov DWORD PTR [rcx+32], eax ; 6999 : g->bgindex = stbi__get8(s); 00150 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00157 e8 00 00 00 00 call stbi__get8 0015c 0f b6 c0 movzx eax, al 0015f 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR g$[rbp] 00166 89 41 24 mov DWORD PTR [rcx+36], eax ; 7000 : g->ratio = stbi__get8(s); 00169 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00170 e8 00 00 00 00 call stbi__get8 00175 0f b6 c0 movzx eax, al 00178 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR g$[rbp] 0017f 89 41 28 mov DWORD PTR [rcx+40], eax ; 7001 : g->transparent = -1; 00182 48 8b 85 08 01 00 00 mov rax, QWORD PTR g$[rbp] 00189 c7 40 2c ff ff ff ff mov DWORD PTR [rax+44], -1 ; 7002 : ; 7003 : if (g->w > STBI_MAX_DIMENSIONS) 00190 48 8b 85 08 01 00 00 mov rax, QWORD PTR g$[rbp] 00197 81 38 00 00 00 01 cmp DWORD PTR [rax], 16777216 ; 01000000H 0019d 7e 11 jle SHORT $LN6@stbi__gif_ ; 7004 : return stbi__err("too large", "Very large image (corrupt?)"); 0019f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 001a6 e8 00 00 00 00 call stbi__err 001ab e9 a7 00 00 00 jmp $LN1@stbi__gif_ $LN6@stbi__gif_: ; 7005 : if (g->h > STBI_MAX_DIMENSIONS) 001b0 48 8b 85 08 01 00 00 mov rax, QWORD PTR g$[rbp] 001b7 81 78 04 00 00 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H 001be 7e 11 jle SHORT $LN7@stbi__gif_ ; 7006 : return stbi__err("too large", "Very large image (corrupt?)"); 001c0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 001c7 e8 00 00 00 00 call stbi__err 001cc e9 86 00 00 00 jmp $LN1@stbi__gif_ $LN7@stbi__gif_: ; 7007 : ; 7008 : if (comp != 0) 001d1 48 83 bd 10 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 001d9 74 0d je SHORT $LN8@stbi__gif_ ; 7009 : *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments 001db 48 8b 85 10 01 00 00 mov rax, QWORD PTR comp$[rbp] 001e2 c7 00 04 00 00 00 mov DWORD PTR [rax], 4 $LN8@stbi__gif_: ; 7010 : ; 7011 : if (is_info) 001e8 83 bd 18 01 00 00 00 cmp DWORD PTR is_info$[rbp], 0 001ef 74 07 je SHORT $LN9@stbi__gif_ ; 7012 : return 1; 001f1 b8 01 00 00 00 mov eax, 1 001f6 eb 5f jmp SHORT $LN1@stbi__gif_ $LN9@stbi__gif_: ; 7013 : ; 7014 : if (g->flags & 0x80) 001f8 48 8b 85 08 01 00 00 mov rax, QWORD PTR g$[rbp] 001ff 8b 40 20 mov eax, DWORD PTR [rax+32] 00202 25 80 00 00 00 and eax, 128 ; 00000080H 00207 85 c0 test eax, eax 00209 74 47 je SHORT $LN10@stbi__gif_ ; 7015 : stbi__gif_parse_colortable(s, g->pal, 2 << (g->flags & 7), -1); 0020b 48 8b 85 08 01 00 00 mov rax, QWORD PTR g$[rbp] 00212 8b 40 20 mov eax, DWORD PTR [rax+32] 00215 83 e0 07 and eax, 7 00218 b9 02 00 00 00 mov ecx, 2 0021d 89 8d d4 00 00 00 mov DWORD PTR tv225[rbp], ecx 00223 0f b6 c8 movzx ecx, al 00226 8b 85 d4 00 00 00 mov eax, DWORD PTR tv225[rbp] 0022c d3 e0 shl eax, cl 0022e 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR g$[rbp] 00235 48 83 c1 34 add rcx, 52 ; 00000034H 00239 41 b9 ff ff ff ff mov r9d, -1 0023f 44 8b c0 mov r8d, eax 00242 48 8b d1 mov rdx, rcx 00245 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0024c e8 00 00 00 00 call stbi__gif_parse_colortable 00251 90 npad 1 $LN10@stbi__gif_: ; 7016 : ; 7017 : return 1; 00252 b8 01 00 00 00 mov eax, 1 $LN1@stbi__gif_: ; 7018 : } 00257 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 0025e 5f pop rdi 0025f 5d pop rbp 00260 c3 ret 0 stbi__gif_header ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__gif_parse_colortable _TEXT SEGMENT i$ = 4 tv93 = 212 s$ = 256 pal$ = 264 num_entries$ = 272 transp$ = 280 stbi__gif_parse_colortable PROC ; COMDAT ; 6972 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 6973 : int i; ; 6974 : for (i = 0; i < num_entries; ++i) { 0002f c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00036 eb 08 jmp SHORT $LN4@stbi__gif_ $LN2@stbi__gif_: 00038 8b 45 04 mov eax, DWORD PTR i$[rbp] 0003b ff c0 inc eax 0003d 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__gif_: 00040 8b 85 10 01 00 00 mov eax, DWORD PTR num_entries$[rbp] 00046 39 45 04 cmp DWORD PTR i$[rbp], eax 00049 0f 8d bd 00 00 00 jge $LN3@stbi__gif_ ; 6975 : pal[i][2] = stbi__get8(s); 0004f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00056 e8 00 00 00 00 call stbi__get8 0005b 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 0005f 48 8b 95 08 01 00 00 mov rdx, QWORD PTR pal$[rbp] 00066 48 8d 0c 8a lea rcx, QWORD PTR [rdx+rcx*4] 0006a ba 01 00 00 00 mov edx, 1 0006f 48 6b d2 02 imul rdx, rdx, 2 00073 88 04 11 mov BYTE PTR [rcx+rdx], al ; 6976 : pal[i][1] = stbi__get8(s); 00076 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0007d e8 00 00 00 00 call stbi__get8 00082 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 00086 48 8b 95 08 01 00 00 mov rdx, QWORD PTR pal$[rbp] 0008d 48 8d 0c 8a lea rcx, QWORD PTR [rdx+rcx*4] 00091 ba 01 00 00 00 mov edx, 1 00096 48 6b d2 01 imul rdx, rdx, 1 0009a 88 04 11 mov BYTE PTR [rcx+rdx], al ; 6977 : pal[i][0] = stbi__get8(s); 0009d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000a4 e8 00 00 00 00 call stbi__get8 000a9 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 000ad 48 8b 95 08 01 00 00 mov rdx, QWORD PTR pal$[rbp] 000b4 48 8d 0c 8a lea rcx, QWORD PTR [rdx+rcx*4] 000b8 ba 01 00 00 00 mov edx, 1 000bd 48 6b d2 00 imul rdx, rdx, 0 000c1 88 04 11 mov BYTE PTR [rcx+rdx], al ; 6978 : pal[i][3] = transp == i ? 0 : 255; 000c4 8b 45 04 mov eax, DWORD PTR i$[rbp] 000c7 39 85 18 01 00 00 cmp DWORD PTR transp$[rbp], eax 000cd 75 0c jne SHORT $LN6@stbi__gif_ 000cf c7 85 d4 00 00 00 00 00 00 00 mov DWORD PTR tv93[rbp], 0 000d9 eb 0a jmp SHORT $LN7@stbi__gif_ $LN6@stbi__gif_: 000db c7 85 d4 00 00 00 ff 00 00 00 mov DWORD PTR tv93[rbp], 255 ; 000000ffH $LN7@stbi__gif_: 000e5 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000e9 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR pal$[rbp] 000f0 48 8d 04 81 lea rax, QWORD PTR [rcx+rax*4] 000f4 b9 01 00 00 00 mov ecx, 1 000f9 48 6b c9 03 imul rcx, rcx, 3 000fd 0f b6 95 d4 00 00 00 movzx edx, BYTE PTR tv93[rbp] 00104 88 14 08 mov BYTE PTR [rax+rcx], dl ; 6979 : } 00107 e9 2c ff ff ff jmp $LN2@stbi__gif_ $LN3@stbi__gif_: ; 6980 : } 0010c 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00113 5f pop rdi 00114 5d pop rbp 00115 c3 ret 0 stbi__gif_parse_colortable ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__gif_test_raw _TEXT SEGMENT sz$ = 4 s$ = 256 stbi__gif_test_raw PROC ; COMDAT ; 6950 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 6951 : int sz; ; 6952 : if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get8 0002c 0f b6 c0 movzx eax, al 0002f 83 f8 47 cmp eax, 71 ; 00000047H 00032 75 3c jne SHORT $LN3@stbi__gif_ 00034 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0003b e8 00 00 00 00 call stbi__get8 00040 0f b6 c0 movzx eax, al 00043 83 f8 49 cmp eax, 73 ; 00000049H 00046 75 28 jne SHORT $LN3@stbi__gif_ 00048 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0004f e8 00 00 00 00 call stbi__get8 00054 0f b6 c0 movzx eax, al 00057 83 f8 46 cmp eax, 70 ; 00000046H 0005a 75 14 jne SHORT $LN3@stbi__gif_ 0005c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00063 e8 00 00 00 00 call stbi__get8 00068 0f b6 c0 movzx eax, al 0006b 83 f8 38 cmp eax, 56 ; 00000038H 0006e 74 04 je SHORT $LN2@stbi__gif_ $LN3@stbi__gif_: ; 6953 : stbi__get8(s) != '8') ; 6954 : return 0; 00070 33 c0 xor eax, eax 00072 eb 3f jmp SHORT $LN1@stbi__gif_ $LN2@stbi__gif_: ; 6955 : sz = stbi__get8(s); 00074 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0007b e8 00 00 00 00 call stbi__get8 00080 0f b6 c0 movzx eax, al 00083 89 45 04 mov DWORD PTR sz$[rbp], eax ; 6956 : if (sz != '9' && sz != '7') 00086 83 7d 04 39 cmp DWORD PTR sz$[rbp], 57 ; 00000039H 0008a 74 0a je SHORT $LN4@stbi__gif_ 0008c 83 7d 04 37 cmp DWORD PTR sz$[rbp], 55 ; 00000037H 00090 74 04 je SHORT $LN4@stbi__gif_ ; 6957 : return 0; 00092 33 c0 xor eax, eax 00094 eb 1d jmp SHORT $LN1@stbi__gif_ $LN4@stbi__gif_: ; 6958 : if (stbi__get8(s) != 'a') 00096 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0009d e8 00 00 00 00 call stbi__get8 000a2 0f b6 c0 movzx eax, al 000a5 83 f8 61 cmp eax, 97 ; 00000061H 000a8 74 04 je SHORT $LN5@stbi__gif_ ; 6959 : return 0; 000aa 33 c0 xor eax, eax 000ac eb 05 jmp SHORT $LN1@stbi__gif_ $LN5@stbi__gif_: ; 6960 : return 1; 000ae b8 01 00 00 00 mov eax, 1 $LN1@stbi__gif_: ; 6961 : } 000b3 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000ba 5f pop rdi 000bb 5d pop rbp 000bc c3 ret 0 stbi__gif_test_raw ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pic_load_core _TEXT SEGMENT act_comp$ = 4 num_packets$ = 36 y$ = 68 chained$ = 100 packets$ = 136 packet$6 = 200 packet_idx$7 = 228 packet$8 = 264 dest$9 = 296 x$10 = 324 left$11 = 356 i$12 = 388 count$13 = 420 value$14 = 452 left$15 = 484 count$16 = 516 i$17 = 548 value$18 = 580 tv138 = 980 tv152 = 980 tv95 = 984 tv134 = 984 tv238 = 984 tv69 = 984 tv156 = 984 tv176 = 984 tv207 = 984 tv217 = 984 __$ArrayPad$ = 992 s$ = 1040 width$ = 1048 height$ = 1056 comp$ = 1064 result$ = 1072 stbi__pic_load_core PROC ; COMDAT ; 6741 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec 18 04 00 00 sub rsp, 1048 ; 00000418H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00026 b9 9e 00 00 00 mov ecx, 158 ; 0000009eH 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00030 f3 ab rep stosd 00032 48 8b 8c 24 38 04 00 00 mov rcx, QWORD PTR [rsp+1080] 0003a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00041 48 33 c5 xor rax, rbp 00044 48 89 85 e0 03 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00057 90 npad 1 ; 6742 : int act_comp = 0, num_packets = 0, y, chained; 00058 c7 45 04 00 00 00 00 mov DWORD PTR act_comp$[rbp], 0 0005f c7 45 24 00 00 00 00 mov DWORD PTR num_packets$[rbp], 0 $LN4@stbi__pic_: ; 6743 : stbi__pic_packet packets[10]; ; 6744 : ; 6745 : // this will (should...) cater for even some bizarre stuff like having data ; 6746 : // for the same channel in multiple packets. ; 6747 : do { ; 6748 : stbi__pic_packet *packet; ; 6749 : ; 6750 : if (num_packets == sizeof(packets) / sizeof(packets[0])) 00066 48 63 45 24 movsxd rax, DWORD PTR num_packets$[rbp] 0006a 48 83 f8 0a cmp rax, 10 0006e 75 34 jne SHORT $LN29@stbi__pic_ ; 6751 : return stbi__errpuc("bad format", "too many packets"); 00070 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@DMAPJJO@bad?5format@ 00077 e8 00 00 00 00 call stbi__err 0007c 85 c0 test eax, eax 0007e 74 0d je SHORT $LN50@stbi__pic_ 00080 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv69[rbp], 0 0008b eb 0b jmp SHORT $LN51@stbi__pic_ $LN50@stbi__pic_: 0008d 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv69[rbp], 0 $LN51@stbi__pic_: 00098 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv69[rbp] 0009f e9 3a 06 00 00 jmp $LN1@stbi__pic_ $LN29@stbi__pic_: ; 6752 : ; 6753 : packet = &packets[num_packets++]; 000a4 48 63 45 24 movsxd rax, DWORD PTR num_packets$[rbp] 000a8 48 6b c0 03 imul rax, rax, 3 000ac 48 8d 84 05 88 00 00 00 lea rax, QWORD PTR packets$[rbp+rax] 000b4 48 89 85 c8 00 00 00 mov QWORD PTR packet$6[rbp], rax 000bb 8b 45 24 mov eax, DWORD PTR num_packets$[rbp] 000be ff c0 inc eax 000c0 89 45 24 mov DWORD PTR num_packets$[rbp], eax ; 6754 : ; 6755 : chained = stbi__get8(s); 000c3 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 000ca e8 00 00 00 00 call stbi__get8 000cf 0f b6 c0 movzx eax, al 000d2 89 45 64 mov DWORD PTR chained$[rbp], eax ; 6756 : packet->size = stbi__get8(s); 000d5 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 000dc e8 00 00 00 00 call stbi__get8 000e1 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR packet$6[rbp] 000e8 88 01 mov BYTE PTR [rcx], al ; 6757 : packet->type = stbi__get8(s); 000ea 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 000f1 e8 00 00 00 00 call stbi__get8 000f6 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR packet$6[rbp] 000fd 88 41 01 mov BYTE PTR [rcx+1], al ; 6758 : packet->channel = stbi__get8(s); 00100 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 00107 e8 00 00 00 00 call stbi__get8 0010c 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR packet$6[rbp] 00113 88 41 02 mov BYTE PTR [rcx+2], al ; 6759 : ; 6760 : act_comp |= packet->channel; 00116 48 8b 85 c8 00 00 00 mov rax, QWORD PTR packet$6[rbp] 0011d 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 00121 8b 4d 04 mov ecx, DWORD PTR act_comp$[rbp] 00124 0b c8 or ecx, eax 00126 8b c1 mov eax, ecx 00128 89 45 04 mov DWORD PTR act_comp$[rbp], eax ; 6761 : ; 6762 : if (stbi__at_eof(s)) 0012b 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 00132 e8 00 00 00 00 call stbi__at_eof 00137 85 c0 test eax, eax 00139 74 34 je SHORT $LN30@stbi__pic_ ; 6763 : return stbi__errpuc("bad file", "file too short (reading packets)"); 0013b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ 00142 e8 00 00 00 00 call stbi__err 00147 85 c0 test eax, eax 00149 74 0d je SHORT $LN52@stbi__pic_ 0014b 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv95[rbp], 0 00156 eb 0b jmp SHORT $LN53@stbi__pic_ $LN52@stbi__pic_: 00158 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv95[rbp], 0 $LN53@stbi__pic_: 00163 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv95[rbp] 0016a e9 6f 05 00 00 jmp $LN1@stbi__pic_ $LN30@stbi__pic_: ; 6764 : if (packet->size != 8) 0016f 48 8b 85 c8 00 00 00 mov rax, QWORD PTR packet$6[rbp] 00176 0f b6 00 movzx eax, BYTE PTR [rax] 00179 83 f8 08 cmp eax, 8 0017c 74 34 je SHORT $LN31@stbi__pic_ ; 6765 : return stbi__errpuc("bad format", "packet isn't 8bpp"); 0017e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@DMAPJJO@bad?5format@ 00185 e8 00 00 00 00 call stbi__err 0018a 85 c0 test eax, eax 0018c 74 0d je SHORT $LN54@stbi__pic_ 0018e 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv134[rbp], 0 00199 eb 0b jmp SHORT $LN55@stbi__pic_ $LN54@stbi__pic_: 0019b 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv134[rbp], 0 $LN55@stbi__pic_: 001a6 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv134[rbp] 001ad e9 2c 05 00 00 jmp $LN1@stbi__pic_ $LN31@stbi__pic_: ; 6766 : } while (chained); 001b2 83 7d 64 00 cmp DWORD PTR chained$[rbp], 0 001b6 0f 85 aa fe ff ff jne $LN4@stbi__pic_ ; 6767 : ; 6768 : *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? 001bc 8b 45 04 mov eax, DWORD PTR act_comp$[rbp] 001bf 83 e0 10 and eax, 16 001c2 85 c0 test eax, eax 001c4 74 0c je SHORT $LN56@stbi__pic_ 001c6 c7 85 d4 03 00 00 04 00 00 00 mov DWORD PTR tv138[rbp], 4 001d0 eb 0a jmp SHORT $LN57@stbi__pic_ $LN56@stbi__pic_: 001d2 c7 85 d4 03 00 00 03 00 00 00 mov DWORD PTR tv138[rbp], 3 $LN57@stbi__pic_: 001dc 48 8b 85 28 04 00 00 mov rax, QWORD PTR comp$[rbp] 001e3 8b 8d d4 03 00 00 mov ecx, DWORD PTR tv138[rbp] 001e9 89 08 mov DWORD PTR [rax], ecx ; 6769 : ; 6770 : for (y = 0; y < height; ++y) { 001eb c7 45 44 00 00 00 00 mov DWORD PTR y$[rbp], 0 001f2 eb 08 jmp SHORT $LN7@stbi__pic_ $LN5@stbi__pic_: 001f4 8b 45 44 mov eax, DWORD PTR y$[rbp] 001f7 ff c0 inc eax 001f9 89 45 44 mov DWORD PTR y$[rbp], eax $LN7@stbi__pic_: 001fc 8b 85 20 04 00 00 mov eax, DWORD PTR height$[rbp] 00202 39 45 44 cmp DWORD PTR y$[rbp], eax 00205 0f 8d cc 04 00 00 jge $LN6@stbi__pic_ ; 6771 : int packet_idx; ; 6772 : ; 6773 : for (packet_idx = 0; packet_idx < num_packets; ++packet_idx) { 0020b c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR packet_idx$7[rbp], 0 00215 eb 0e jmp SHORT $LN10@stbi__pic_ $LN8@stbi__pic_: 00217 8b 85 e4 00 00 00 mov eax, DWORD PTR packet_idx$7[rbp] 0021d ff c0 inc eax 0021f 89 85 e4 00 00 00 mov DWORD PTR packet_idx$7[rbp], eax $LN10@stbi__pic_: 00225 8b 45 24 mov eax, DWORD PTR num_packets$[rbp] 00228 39 85 e4 00 00 00 cmp DWORD PTR packet_idx$7[rbp], eax 0022e 0f 8d 9e 04 00 00 jge $LN9@stbi__pic_ ; 6774 : stbi__pic_packet *packet = &packets[packet_idx]; 00234 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR packet_idx$7[rbp] 0023b 48 6b c0 03 imul rax, rax, 3 0023f 48 8d 84 05 88 00 00 00 lea rax, QWORD PTR packets$[rbp+rax] 00247 48 89 85 08 01 00 00 mov QWORD PTR packet$8[rbp], rax ; 6775 : stbi_uc *dest = result + y * width * 4; 0024e 8b 45 44 mov eax, DWORD PTR y$[rbp] 00251 0f af 85 18 04 00 00 imul eax, DWORD PTR width$[rbp] 00258 c1 e0 02 shl eax, 2 0025b 48 98 cdqe 0025d 48 8b 8d 30 04 00 00 mov rcx, QWORD PTR result$[rbp] 00264 48 03 c8 add rcx, rax 00267 48 8b c1 mov rax, rcx 0026a 48 89 85 28 01 00 00 mov QWORD PTR dest$9[rbp], rax ; 6776 : ; 6777 : switch (packet->type) { 00271 48 8b 85 08 01 00 00 mov rax, QWORD PTR packet$8[rbp] 00278 0f b6 40 01 movzx eax, BYTE PTR [rax+1] 0027c 88 85 d4 03 00 00 mov BYTE PTR tv152[rbp], al 00282 80 bd d4 03 00 00 00 cmp BYTE PTR tv152[rbp], 0 00289 74 4e je SHORT $LN33@stbi__pic_ 0028b 80 bd d4 03 00 00 01 cmp BYTE PTR tv152[rbp], 1 00292 0f 84 ae 00 00 00 je $LN35@stbi__pic_ 00298 80 bd d4 03 00 00 02 cmp BYTE PTR tv152[rbp], 2 0029f 0f 84 d7 01 00 00 je $LN39@stbi__pic_ ; 6778 : default: ; 6779 : return stbi__errpuc("bad format", 002a5 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@DMAPJJO@bad?5format@ 002ac e8 00 00 00 00 call stbi__err 002b1 85 c0 test eax, eax 002b3 74 0d je SHORT $LN58@stbi__pic_ 002b5 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv156[rbp], 0 002c0 eb 0b jmp SHORT $LN59@stbi__pic_ $LN58@stbi__pic_: 002c2 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv156[rbp], 0 $LN59@stbi__pic_: 002cd 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv156[rbp] 002d4 e9 05 04 00 00 jmp $LN1@stbi__pic_ $LN33@stbi__pic_: ; 6780 : "packet has bad compression type"); ; 6781 : ; 6782 : case 0: { //uncompressed ; 6783 : int x; ; 6784 : ; 6785 : for (x = 0; x < width; ++x, dest += 4) 002d9 c7 85 44 01 00 00 00 00 00 00 mov DWORD PTR x$10[rbp], 0 002e3 eb 20 jmp SHORT $LN15@stbi__pic_ $LN13@stbi__pic_: 002e5 8b 85 44 01 00 00 mov eax, DWORD PTR x$10[rbp] 002eb ff c0 inc eax 002ed 89 85 44 01 00 00 mov DWORD PTR x$10[rbp], eax 002f3 48 8b 85 28 01 00 00 mov rax, QWORD PTR dest$9[rbp] 002fa 48 83 c0 04 add rax, 4 002fe 48 89 85 28 01 00 00 mov QWORD PTR dest$9[rbp], rax $LN15@stbi__pic_: 00305 8b 85 18 04 00 00 mov eax, DWORD PTR width$[rbp] 0030b 39 85 44 01 00 00 cmp DWORD PTR x$10[rbp], eax 00311 7d 2e jge SHORT $LN14@stbi__pic_ ; 6786 : if (!stbi__readval(s, packet->channel, dest)) 00313 48 8b 85 08 01 00 00 mov rax, QWORD PTR packet$8[rbp] 0031a 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 0031e 4c 8b 85 28 01 00 00 mov r8, QWORD PTR dest$9[rbp] 00325 8b d0 mov edx, eax 00327 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 0032e e8 00 00 00 00 call stbi__readval 00333 48 85 c0 test rax, rax 00336 75 07 jne SHORT $LN34@stbi__pic_ ; 6787 : return 0; 00338 33 c0 xor eax, eax 0033a e9 9f 03 00 00 jmp $LN1@stbi__pic_ $LN34@stbi__pic_: 0033f eb a4 jmp SHORT $LN13@stbi__pic_ $LN14@stbi__pic_: ; 6788 : break; 00341 e9 87 03 00 00 jmp $LN11@stbi__pic_ $LN35@stbi__pic_: ; 6789 : } ; 6790 : ; 6791 : case 1: //Pure RLE ; 6792 : { ; 6793 : int left = width, i; 00346 8b 85 18 04 00 00 mov eax, DWORD PTR width$[rbp] 0034c 89 85 64 01 00 00 mov DWORD PTR left$11[rbp], eax $LN16@stbi__pic_: ; 6794 : ; 6795 : while (left > 0) { 00352 83 bd 64 01 00 00 00 cmp DWORD PTR left$11[rbp], 0 00359 0f 8e 18 01 00 00 jle $LN17@stbi__pic_ ; 6796 : stbi_uc count, value[4]; ; 6797 : ; 6798 : count = stbi__get8(s); 0035f 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 00366 e8 00 00 00 00 call stbi__get8 0036b 88 85 a4 01 00 00 mov BYTE PTR count$13[rbp], al ; 6799 : if (stbi__at_eof(s)) 00371 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 00378 e8 00 00 00 00 call stbi__at_eof 0037d 85 c0 test eax, eax 0037f 74 34 je SHORT $LN36@stbi__pic_ ; 6800 : return stbi__errpuc( 00381 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ 00388 e8 00 00 00 00 call stbi__err 0038d 85 c0 test eax, eax 0038f 74 0d je SHORT $LN60@stbi__pic_ 00391 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv176[rbp], 0 0039c eb 0b jmp SHORT $LN61@stbi__pic_ $LN60@stbi__pic_: 0039e 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv176[rbp], 0 $LN61@stbi__pic_: 003a9 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv176[rbp] 003b0 e9 29 03 00 00 jmp $LN1@stbi__pic_ $LN36@stbi__pic_: ; 6801 : "bad file", ; 6802 : "file too short (pure read count)"); ; 6803 : ; 6804 : if (count > left) 003b5 0f b6 85 a4 01 00 00 movzx eax, BYTE PTR count$13[rbp] 003bc 3b 85 64 01 00 00 cmp eax, DWORD PTR left$11[rbp] 003c2 7e 0d jle SHORT $LN37@stbi__pic_ ; 6805 : count = (stbi_uc)left; 003c4 0f b6 85 64 01 00 00 movzx eax, BYTE PTR left$11[rbp] 003cb 88 85 a4 01 00 00 mov BYTE PTR count$13[rbp], al $LN37@stbi__pic_: ; 6806 : ; 6807 : if (!stbi__readval(s, packet->channel, value)) 003d1 48 8b 85 08 01 00 00 mov rax, QWORD PTR packet$8[rbp] 003d8 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 003dc 4c 8d 85 c4 01 00 00 lea r8, QWORD PTR value$14[rbp] 003e3 8b d0 mov edx, eax 003e5 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 003ec e8 00 00 00 00 call stbi__readval 003f1 48 85 c0 test rax, rax 003f4 75 07 jne SHORT $LN38@stbi__pic_ ; 6808 : return 0; 003f6 33 c0 xor eax, eax 003f8 e9 e1 02 00 00 jmp $LN1@stbi__pic_ $LN38@stbi__pic_: ; 6809 : ; 6810 : for (i = 0; i < count; ++i, dest += 4) 003fd c7 85 84 01 00 00 00 00 00 00 mov DWORD PTR i$12[rbp], 0 00407 eb 20 jmp SHORT $LN20@stbi__pic_ $LN18@stbi__pic_: 00409 8b 85 84 01 00 00 mov eax, DWORD PTR i$12[rbp] 0040f ff c0 inc eax 00411 89 85 84 01 00 00 mov DWORD PTR i$12[rbp], eax 00417 48 8b 85 28 01 00 00 mov rax, QWORD PTR dest$9[rbp] 0041e 48 83 c0 04 add rax, 4 00422 48 89 85 28 01 00 00 mov QWORD PTR dest$9[rbp], rax $LN20@stbi__pic_: 00429 0f b6 85 a4 01 00 00 movzx eax, BYTE PTR count$13[rbp] 00430 39 85 84 01 00 00 cmp DWORD PTR i$12[rbp], eax 00436 7d 23 jge SHORT $LN19@stbi__pic_ ; 6811 : stbi__copyval(packet->channel, dest, value); 00438 48 8b 85 08 01 00 00 mov rax, QWORD PTR packet$8[rbp] 0043f 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 00443 4c 8d 85 c4 01 00 00 lea r8, QWORD PTR value$14[rbp] 0044a 48 8b 95 28 01 00 00 mov rdx, QWORD PTR dest$9[rbp] 00451 8b c8 mov ecx, eax 00453 e8 00 00 00 00 call stbi__copyval 00458 90 npad 1 00459 eb ae jmp SHORT $LN18@stbi__pic_ $LN19@stbi__pic_: ; 6812 : left -= count; 0045b 0f b6 85 a4 01 00 00 movzx eax, BYTE PTR count$13[rbp] 00462 8b 8d 64 01 00 00 mov ecx, DWORD PTR left$11[rbp] 00468 2b c8 sub ecx, eax 0046a 8b c1 mov eax, ecx 0046c 89 85 64 01 00 00 mov DWORD PTR left$11[rbp], eax ; 6813 : } 00472 e9 db fe ff ff jmp $LN16@stbi__pic_ $LN17@stbi__pic_: ; 6814 : } break; 00477 e9 51 02 00 00 jmp $LN11@stbi__pic_ $LN39@stbi__pic_: ; 6815 : ; 6816 : case 2: { //Mixed RLE ; 6817 : int left = width; 0047c 8b 85 18 04 00 00 mov eax, DWORD PTR width$[rbp] 00482 89 85 e4 01 00 00 mov DWORD PTR left$15[rbp], eax $LN21@stbi__pic_: ; 6818 : while (left > 0) { 00488 83 bd e4 01 00 00 00 cmp DWORD PTR left$15[rbp], 0 0048f 0f 8e 38 02 00 00 jle $LN22@stbi__pic_ ; 6819 : int count = stbi__get8(s), i; 00495 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 0049c e8 00 00 00 00 call stbi__get8 004a1 0f b6 c0 movzx eax, al 004a4 89 85 04 02 00 00 mov DWORD PTR count$16[rbp], eax ; 6820 : if (stbi__at_eof(s)) 004aa 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 004b1 e8 00 00 00 00 call stbi__at_eof 004b6 85 c0 test eax, eax 004b8 74 34 je SHORT $LN40@stbi__pic_ ; 6821 : return stbi__errpuc( 004ba 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ 004c1 e8 00 00 00 00 call stbi__err 004c6 85 c0 test eax, eax 004c8 74 0d je SHORT $LN62@stbi__pic_ 004ca 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv207[rbp], 0 004d5 eb 0b jmp SHORT $LN63@stbi__pic_ $LN62@stbi__pic_: 004d7 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv207[rbp], 0 $LN63@stbi__pic_: 004e2 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv207[rbp] 004e9 e9 f0 01 00 00 jmp $LN1@stbi__pic_ $LN40@stbi__pic_: ; 6822 : "bad file", ; 6823 : "file too short (mixed read count)"); ; 6824 : ; 6825 : if (count >= 128) { // Repeated 004ee 81 bd 04 02 00 00 80 00 00 00 cmp DWORD PTR count$16[rbp], 128 ; 00000080H 004f8 0f 8c ff 00 00 00 jl $LN41@stbi__pic_ ; 6826 : stbi_uc value[4]; ; 6827 : ; 6828 : if (count == 128) 004fe 81 bd 04 02 00 00 80 00 00 00 cmp DWORD PTR count$16[rbp], 128 ; 00000080H 00508 75 14 jne SHORT $LN43@stbi__pic_ ; 6829 : count = stbi__get16be(s); 0050a 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 00511 e8 00 00 00 00 call stbi__get16be 00516 89 85 04 02 00 00 mov DWORD PTR count$16[rbp], eax 0051c eb 0f jmp SHORT $LN44@stbi__pic_ $LN43@stbi__pic_: ; 6830 : else ; 6831 : count -= 127; 0051e 8b 85 04 02 00 00 mov eax, DWORD PTR count$16[rbp] 00524 83 e8 7f sub eax, 127 ; 0000007fH 00527 89 85 04 02 00 00 mov DWORD PTR count$16[rbp], eax $LN44@stbi__pic_: ; 6832 : if (count > left) 0052d 8b 85 e4 01 00 00 mov eax, DWORD PTR left$15[rbp] 00533 39 85 04 02 00 00 cmp DWORD PTR count$16[rbp], eax 00539 7e 34 jle SHORT $LN45@stbi__pic_ ; 6833 : return stbi__errpuc("bad file", 0053b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ 00542 e8 00 00 00 00 call stbi__err 00547 85 c0 test eax, eax 00549 74 0d je SHORT $LN64@stbi__pic_ 0054b 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv217[rbp], 0 00556 eb 0b jmp SHORT $LN65@stbi__pic_ $LN64@stbi__pic_: 00558 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv217[rbp], 0 $LN65@stbi__pic_: 00563 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv217[rbp] 0056a e9 6f 01 00 00 jmp $LN1@stbi__pic_ $LN45@stbi__pic_: ; 6834 : "scanline overrun"); ; 6835 : ; 6836 : if (!stbi__readval(s, packet->channel, value)) 0056f 48 8b 85 08 01 00 00 mov rax, QWORD PTR packet$8[rbp] 00576 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 0057a 4c 8d 85 44 02 00 00 lea r8, QWORD PTR value$18[rbp] 00581 8b d0 mov edx, eax 00583 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 0058a e8 00 00 00 00 call stbi__readval 0058f 48 85 c0 test rax, rax 00592 75 07 jne SHORT $LN46@stbi__pic_ ; 6837 : return 0; 00594 33 c0 xor eax, eax 00596 e9 43 01 00 00 jmp $LN1@stbi__pic_ $LN46@stbi__pic_: ; 6838 : ; 6839 : for (i = 0; i < count; ++i, dest += 4) 0059b c7 85 24 02 00 00 00 00 00 00 mov DWORD PTR i$17[rbp], 0 005a5 eb 20 jmp SHORT $LN25@stbi__pic_ $LN23@stbi__pic_: 005a7 8b 85 24 02 00 00 mov eax, DWORD PTR i$17[rbp] 005ad ff c0 inc eax 005af 89 85 24 02 00 00 mov DWORD PTR i$17[rbp], eax 005b5 48 8b 85 28 01 00 00 mov rax, QWORD PTR dest$9[rbp] 005bc 48 83 c0 04 add rax, 4 005c0 48 89 85 28 01 00 00 mov QWORD PTR dest$9[rbp], rax $LN25@stbi__pic_: 005c7 8b 85 04 02 00 00 mov eax, DWORD PTR count$16[rbp] 005cd 39 85 24 02 00 00 cmp DWORD PTR i$17[rbp], eax 005d3 7d 23 jge SHORT $LN24@stbi__pic_ ; 6840 : stbi__copyval(packet->channel, dest, value); 005d5 48 8b 85 08 01 00 00 mov rax, QWORD PTR packet$8[rbp] 005dc 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 005e0 4c 8d 85 44 02 00 00 lea r8, QWORD PTR value$18[rbp] 005e7 48 8b 95 28 01 00 00 mov rdx, QWORD PTR dest$9[rbp] 005ee 8b c8 mov ecx, eax 005f0 e8 00 00 00 00 call stbi__copyval 005f5 90 npad 1 005f6 eb af jmp SHORT $LN23@stbi__pic_ $LN24@stbi__pic_: ; 6841 : } else { // Raw 005f8 e9 b5 00 00 00 jmp $LN42@stbi__pic_ $LN41@stbi__pic_: ; 6842 : ++count; 005fd 8b 85 04 02 00 00 mov eax, DWORD PTR count$16[rbp] 00603 ff c0 inc eax 00605 89 85 04 02 00 00 mov DWORD PTR count$16[rbp], eax ; 6843 : if (count > left) 0060b 8b 85 e4 01 00 00 mov eax, DWORD PTR left$15[rbp] 00611 39 85 04 02 00 00 cmp DWORD PTR count$16[rbp], eax 00617 7e 34 jle SHORT $LN47@stbi__pic_ ; 6844 : return stbi__errpuc("bad file", 00619 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ 00620 e8 00 00 00 00 call stbi__err 00625 85 c0 test eax, eax 00627 74 0d je SHORT $LN66@stbi__pic_ 00629 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv238[rbp], 0 00634 eb 0b jmp SHORT $LN67@stbi__pic_ $LN66@stbi__pic_: 00636 48 c7 85 d8 03 00 00 00 00 00 00 mov QWORD PTR tv238[rbp], 0 $LN67@stbi__pic_: 00641 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv238[rbp] 00648 e9 91 00 00 00 jmp $LN1@stbi__pic_ $LN47@stbi__pic_: ; 6845 : "scanline overrun"); ; 6846 : ; 6847 : for (i = 0; i < count; ++i, dest += 4) 0064d c7 85 24 02 00 00 00 00 00 00 mov DWORD PTR i$17[rbp], 0 00657 eb 20 jmp SHORT $LN28@stbi__pic_ $LN26@stbi__pic_: 00659 8b 85 24 02 00 00 mov eax, DWORD PTR i$17[rbp] 0065f ff c0 inc eax 00661 89 85 24 02 00 00 mov DWORD PTR i$17[rbp], eax 00667 48 8b 85 28 01 00 00 mov rax, QWORD PTR dest$9[rbp] 0066e 48 83 c0 04 add rax, 4 00672 48 89 85 28 01 00 00 mov QWORD PTR dest$9[rbp], rax $LN28@stbi__pic_: 00679 8b 85 04 02 00 00 mov eax, DWORD PTR count$16[rbp] 0067f 39 85 24 02 00 00 cmp DWORD PTR i$17[rbp], eax 00685 7d 2b jge SHORT $LN27@stbi__pic_ ; 6848 : if (!stbi__readval(s, packet->channel, 00687 48 8b 85 08 01 00 00 mov rax, QWORD PTR packet$8[rbp] 0068e 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 00692 4c 8b 85 28 01 00 00 mov r8, QWORD PTR dest$9[rbp] 00699 8b d0 mov edx, eax 0069b 48 8b 8d 10 04 00 00 mov rcx, QWORD PTR s$[rbp] 006a2 e8 00 00 00 00 call stbi__readval 006a7 48 85 c0 test rax, rax 006aa 75 04 jne SHORT $LN48@stbi__pic_ ; 6849 : dest)) ; 6850 : return 0; 006ac 33 c0 xor eax, eax 006ae eb 2e jmp SHORT $LN1@stbi__pic_ $LN48@stbi__pic_: 006b0 eb a7 jmp SHORT $LN26@stbi__pic_ $LN27@stbi__pic_: $LN42@stbi__pic_: ; 6851 : } ; 6852 : left -= count; 006b2 8b 85 04 02 00 00 mov eax, DWORD PTR count$16[rbp] 006b8 8b 8d e4 01 00 00 mov ecx, DWORD PTR left$15[rbp] 006be 2b c8 sub ecx, eax 006c0 8b c1 mov eax, ecx 006c2 89 85 e4 01 00 00 mov DWORD PTR left$15[rbp], eax ; 6853 : } 006c8 e9 bb fd ff ff jmp $LN21@stbi__pic_ $LN22@stbi__pic_: $LN11@stbi__pic_: ; 6854 : break; ; 6855 : } ; 6856 : } ; 6857 : } 006cd e9 45 fb ff ff jmp $LN8@stbi__pic_ $LN9@stbi__pic_: ; 6858 : } 006d2 e9 1d fb ff ff jmp $LN5@stbi__pic_ $LN6@stbi__pic_: ; 6859 : ; 6860 : return result; 006d7 48 8b 85 30 04 00 00 mov rax, QWORD PTR result$[rbp] $LN1@stbi__pic_: ; 6861 : } 006de 48 8b f8 mov rdi, rax 006e1 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 006e5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__pic_load_core$rtcFrameData 006ec e8 00 00 00 00 call _RTC_CheckStackVars 006f1 48 8b c7 mov rax, rdi 006f4 48 8b 8d e0 03 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 006fb 48 33 cd xor rcx, rbp 006fe e8 00 00 00 00 call __security_check_cookie 00703 48 8d a5 f8 03 00 00 lea rsp, QWORD PTR [rbp+1016] 0070a 5f pop rdi 0070b 5d pop rbp 0070c c3 ret 0 stbi__pic_load_core ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__copyval _TEXT SEGMENT mask$ = 4 i$ = 36 channel$ = 288 dest$ = 296 src$ = 304 stbi__copyval PROC ; COMDAT ; 6731 : { 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 0000e 55 push rbp 0000f 57 push rdi 00010 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00028 90 npad 1 ; 6732 : int mask = 0x80, i; 00029 c7 45 04 80 00 00 00 mov DWORD PTR mask$[rbp], 128 ; 00000080H ; 6733 : ; 6734 : for (i = 0; i < 4; ++i, mask >>= 1) 00030 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 00037 eb 10 jmp SHORT $LN4@stbi__copy $LN2@stbi__copy: 00039 8b 45 24 mov eax, DWORD PTR i$[rbp] 0003c ff c0 inc eax 0003e 89 45 24 mov DWORD PTR i$[rbp], eax 00041 8b 45 04 mov eax, DWORD PTR mask$[rbp] 00044 d1 f8 sar eax, 1 00046 89 45 04 mov DWORD PTR mask$[rbp], eax $LN4@stbi__copy: 00049 83 7d 24 04 cmp DWORD PTR i$[rbp], 4 0004d 7d 31 jge SHORT $LN3@stbi__copy ; 6735 : if (channel & mask) 0004f 8b 45 04 mov eax, DWORD PTR mask$[rbp] 00052 8b 8d 20 01 00 00 mov ecx, DWORD PTR channel$[rbp] 00058 23 c8 and ecx, eax 0005a 8b c1 mov eax, ecx 0005c 85 c0 test eax, eax 0005e 74 1e je SHORT $LN5@stbi__copy ; 6736 : dest[i] = src[i]; 00060 48 63 45 24 movsxd rax, DWORD PTR i$[rbp] 00064 48 63 4d 24 movsxd rcx, DWORD PTR i$[rbp] 00068 48 8b 95 28 01 00 00 mov rdx, QWORD PTR dest$[rbp] 0006f 4c 8b 85 30 01 00 00 mov r8, QWORD PTR src$[rbp] 00076 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0007b 88 04 0a mov BYTE PTR [rdx+rcx], al $LN5@stbi__copy: 0007e eb b9 jmp SHORT $LN2@stbi__copy $LN3@stbi__copy: ; 6737 : } 00080 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 00087 5f pop rdi 00088 5d pop rbp 00089 c3 ret 0 stbi__copyval ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__readval _TEXT SEGMENT mask$ = 4 i$ = 36 tv75 = 248 s$ = 288 channel$ = 296 dest$ = 304 stbi__readval PROC ; COMDAT ; 6716 : { 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000e 55 push rbp 0000f 57 push rdi 00010 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00028 90 npad 1 ; 6717 : int mask = 0x80, i; 00029 c7 45 04 80 00 00 00 mov DWORD PTR mask$[rbp], 128 ; 00000080H ; 6718 : ; 6719 : for (i = 0; i < 4; ++i, mask >>= 1) { 00030 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 00037 eb 10 jmp SHORT $LN4@stbi__read $LN2@stbi__read: 00039 8b 45 24 mov eax, DWORD PTR i$[rbp] 0003c ff c0 inc eax 0003e 89 45 24 mov DWORD PTR i$[rbp], eax 00041 8b 45 04 mov eax, DWORD PTR mask$[rbp] 00044 d1 f8 sar eax, 1 00046 89 45 04 mov DWORD PTR mask$[rbp], eax $LN4@stbi__read: 00049 83 7d 24 04 cmp DWORD PTR i$[rbp], 4 0004d 7d 71 jge SHORT $LN3@stbi__read ; 6720 : if (channel & mask) { 0004f 8b 45 04 mov eax, DWORD PTR mask$[rbp] 00052 8b 8d 28 01 00 00 mov ecx, DWORD PTR channel$[rbp] 00058 23 c8 and ecx, eax 0005a 8b c1 mov eax, ecx 0005c 85 c0 test eax, eax 0005e 74 5b je SHORT $LN5@stbi__read ; 6721 : if (stbi__at_eof(s)) 00060 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00067 e8 00 00 00 00 call stbi__at_eof 0006c 85 c0 test eax, eax 0006e 74 31 je SHORT $LN6@stbi__read ; 6722 : return stbi__errpuc("bad file", "PIC file too short"); 00070 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ 00077 e8 00 00 00 00 call stbi__err 0007c 85 c0 test eax, eax 0007e 74 0d je SHORT $LN8@stbi__read 00080 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv75[rbp], 0 0008b eb 0b jmp SHORT $LN9@stbi__read $LN8@stbi__read: 0008d 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv75[rbp], 0 $LN9@stbi__read: 00098 48 8b 85 f8 00 00 00 mov rax, QWORD PTR tv75[rbp] 0009f eb 26 jmp SHORT $LN1@stbi__read $LN6@stbi__read: ; 6723 : dest[i] = stbi__get8(s); 000a1 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 000a8 e8 00 00 00 00 call stbi__get8 000ad 48 63 4d 24 movsxd rcx, DWORD PTR i$[rbp] 000b1 48 8b 95 30 01 00 00 mov rdx, QWORD PTR dest$[rbp] 000b8 88 04 0a mov BYTE PTR [rdx+rcx], al $LN5@stbi__read: ; 6724 : } ; 6725 : } 000bb e9 79 ff ff ff jmp $LN2@stbi__read $LN3@stbi__read: ; 6726 : ; 6727 : return dest; 000c0 48 8b 85 30 01 00 00 mov rax, QWORD PTR dest$[rbp] $LN1@stbi__read: ; 6728 : } 000c7 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000ce 5f pop rdi 000cf 5d pop rbp 000d0 c3 ret 0 stbi__readval ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pic_test_core _TEXT SEGMENT i$ = 4 s$ = 256 stbi__pic_test_core PROC ; COMDAT ; 6696 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 6697 : int i; ; 6698 : ; 6699 : if (!stbi__pic_is4(s, "\x53\x80\xF6\x34")) 00020 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_04KBFEPHFH@S?$IA?v4@ 00027 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0002e e8 00 00 00 00 call stbi__pic_is4 00033 85 c0 test eax, eax 00035 75 04 jne SHORT $LN5@stbi__pic_ ; 6700 : return 0; 00037 33 c0 xor eax, eax 00039 eb 46 jmp SHORT $LN1@stbi__pic_ $LN5@stbi__pic_: ; 6701 : ; 6702 : for (i = 0; i < 84; ++i) 0003b c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00042 eb 08 jmp SHORT $LN4@stbi__pic_ $LN2@stbi__pic_: 00044 8b 45 04 mov eax, DWORD PTR i$[rbp] 00047 ff c0 inc eax 00049 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__pic_: 0004c 83 7d 04 54 cmp DWORD PTR i$[rbp], 84 ; 00000054H 00050 7d 0f jge SHORT $LN3@stbi__pic_ ; 6703 : stbi__get8(s); 00052 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00059 e8 00 00 00 00 call stbi__get8 0005e 90 npad 1 0005f eb e3 jmp SHORT $LN2@stbi__pic_ $LN3@stbi__pic_: ; 6704 : ; 6705 : if (!stbi__pic_is4(s, "PICT")) 00061 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_04ELNJHLFH@PICT@ 00068 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0006f e8 00 00 00 00 call stbi__pic_is4 00074 85 c0 test eax, eax 00076 75 04 jne SHORT $LN6@stbi__pic_ ; 6706 : return 0; 00078 33 c0 xor eax, eax 0007a eb 05 jmp SHORT $LN1@stbi__pic_ $LN6@stbi__pic_: ; 6707 : ; 6708 : return 1; 0007c b8 01 00 00 00 mov eax, 1 $LN1@stbi__pic_: ; 6709 : } 00081 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00088 5f pop rdi 00089 5d pop rbp 0008a c3 ret 0 stbi__pic_test_core ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pic_is4 _TEXT SEGMENT i$ = 4 s$ = 256 str$ = 264 stbi__pic_is4 PROC ; COMDAT ; 6686 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 6687 : int i; ; 6688 : for (i = 0; i < 4; ++i) 00025 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 0002c eb 08 jmp SHORT $LN4@stbi__pic_ $LN2@stbi__pic_: 0002e 8b 45 04 mov eax, DWORD PTR i$[rbp] 00031 ff c0 inc eax 00033 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__pic_: 00036 83 7d 04 04 cmp DWORD PTR i$[rbp], 4 0003a 7d 28 jge SHORT $LN3@stbi__pic_ ; 6689 : if (stbi__get8(s) != (stbi_uc)str[i]) 0003c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00043 e8 00 00 00 00 call stbi__get8 00048 0f b6 c0 movzx eax, al 0004b 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 0004f 48 8b 95 08 01 00 00 mov rdx, QWORD PTR str$[rbp] 00056 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0005a 3b c1 cmp eax, ecx 0005c 74 04 je SHORT $LN5@stbi__pic_ ; 6690 : return 0; 0005e 33 c0 xor eax, eax 00060 eb 07 jmp SHORT $LN1@stbi__pic_ $LN5@stbi__pic_: 00062 eb ca jmp SHORT $LN2@stbi__pic_ $LN3@stbi__pic_: ; 6691 : ; 6692 : return 1; 00064 b8 01 00 00 00 mov eax, 1 $LN1@stbi__pic_: ; 6693 : } 00069 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00070 5f pop rdi 00071 5d pop rbp 00072 c3 ret 0 stbi__pic_is4 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__psd_decode_rle _TEXT SEGMENT count$ = 4 nleft$ = 36 len$ = 68 val$1 = 100 s$ = 352 p$ = 360 pixelCount$ = 368 stbi__psd_decode_rle PROC ; COMDAT ; 6429 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 6430 : int count, nleft, len; ; 6431 : ; 6432 : count = 0; 0002a c7 45 04 00 00 00 00 mov DWORD PTR count$[rbp], 0 $LN2@stbi__psd_: ; 6433 : while ((nleft = pixelCount - count) > 0) { 00031 8b 45 04 mov eax, DWORD PTR count$[rbp] 00034 8b 8d 70 01 00 00 mov ecx, DWORD PTR pixelCount$[rbp] 0003a 2b c8 sub ecx, eax 0003c 8b c1 mov eax, ecx 0003e 89 45 24 mov DWORD PTR nleft$[rbp], eax 00041 83 7d 24 00 cmp DWORD PTR nleft$[rbp], 0 00045 0f 8e f6 00 00 00 jle $LN3@stbi__psd_ ; 6434 : len = stbi__get8(s); 0004b 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR s$[rbp] 00052 e8 00 00 00 00 call stbi__get8 00057 0f b6 c0 movzx eax, al 0005a 89 45 44 mov DWORD PTR len$[rbp], eax ; 6435 : if (len == 128) { 0005d 81 7d 44 80 00 00 00 cmp DWORD PTR len$[rbp], 128 ; 00000080H 00064 75 05 jne SHORT $LN8@stbi__psd_ 00066 e9 d1 00 00 00 jmp $LN9@stbi__psd_ $LN8@stbi__psd_: ; 6436 : // No-op. ; 6437 : } else if (len < 128) { 0006b 81 7d 44 80 00 00 00 cmp DWORD PTR len$[rbp], 128 ; 00000080H 00072 7d 5d jge SHORT $LN10@stbi__psd_ ; 6438 : // Copy next len+1 bytes literally. ; 6439 : len++; 00074 8b 45 44 mov eax, DWORD PTR len$[rbp] 00077 ff c0 inc eax 00079 89 45 44 mov DWORD PTR len$[rbp], eax ; 6440 : if (len > nleft) 0007c 8b 45 24 mov eax, DWORD PTR nleft$[rbp] 0007f 39 45 44 cmp DWORD PTR len$[rbp], eax 00082 7e 07 jle SHORT $LN12@stbi__psd_ ; 6441 : return 0; // corrupt data 00084 33 c0 xor eax, eax 00086 e9 bb 00 00 00 jmp $LN1@stbi__psd_ $LN12@stbi__psd_: ; 6442 : count += len; 0008b 8b 45 44 mov eax, DWORD PTR len$[rbp] 0008e 8b 4d 04 mov ecx, DWORD PTR count$[rbp] 00091 03 c8 add ecx, eax 00093 8b c1 mov eax, ecx 00095 89 45 04 mov DWORD PTR count$[rbp], eax $LN4@stbi__psd_: ; 6443 : while (len) { 00098 83 7d 44 00 cmp DWORD PTR len$[rbp], 0 0009c 74 31 je SHORT $LN5@stbi__psd_ ; 6444 : *p = stbi__get8(s); 0009e 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR s$[rbp] 000a5 e8 00 00 00 00 call stbi__get8 000aa 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR p$[rbp] 000b1 88 01 mov BYTE PTR [rcx], al ; 6445 : p += 4; 000b3 48 8b 85 68 01 00 00 mov rax, QWORD PTR p$[rbp] 000ba 48 83 c0 04 add rax, 4 000be 48 89 85 68 01 00 00 mov QWORD PTR p$[rbp], rax ; 6446 : len--; 000c5 8b 45 44 mov eax, DWORD PTR len$[rbp] 000c8 ff c8 dec eax 000ca 89 45 44 mov DWORD PTR len$[rbp], eax ; 6447 : } 000cd eb c9 jmp SHORT $LN4@stbi__psd_ $LN5@stbi__psd_: ; 6448 : } else if (len > 128) { 000cf eb 6b jmp SHORT $LN11@stbi__psd_ $LN10@stbi__psd_: 000d1 81 7d 44 80 00 00 00 cmp DWORD PTR len$[rbp], 128 ; 00000080H 000d8 7e 62 jle SHORT $LN13@stbi__psd_ ; 6449 : stbi_uc val; ; 6450 : // Next -len+1 bytes in the dest are replicated from next source byte. ; 6451 : // (Interpret len as a negative 8-bit int.) ; 6452 : len = 257 - len; 000da b8 01 01 00 00 mov eax, 257 ; 00000101H 000df 2b 45 44 sub eax, DWORD PTR len$[rbp] 000e2 89 45 44 mov DWORD PTR len$[rbp], eax ; 6453 : if (len > nleft) 000e5 8b 45 24 mov eax, DWORD PTR nleft$[rbp] 000e8 39 45 44 cmp DWORD PTR len$[rbp], eax 000eb 7e 04 jle SHORT $LN14@stbi__psd_ ; 6454 : return 0; // corrupt data 000ed 33 c0 xor eax, eax 000ef eb 55 jmp SHORT $LN1@stbi__psd_ $LN14@stbi__psd_: ; 6455 : val = stbi__get8(s); 000f1 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR s$[rbp] 000f8 e8 00 00 00 00 call stbi__get8 000fd 88 45 64 mov BYTE PTR val$1[rbp], al ; 6456 : count += len; 00100 8b 45 44 mov eax, DWORD PTR len$[rbp] 00103 8b 4d 04 mov ecx, DWORD PTR count$[rbp] 00106 03 c8 add ecx, eax 00108 8b c1 mov eax, ecx 0010a 89 45 04 mov DWORD PTR count$[rbp], eax $LN6@stbi__psd_: ; 6457 : while (len) { 0010d 83 7d 44 00 cmp DWORD PTR len$[rbp], 0 00111 74 29 je SHORT $LN7@stbi__psd_ ; 6458 : *p = val; 00113 48 8b 85 68 01 00 00 mov rax, QWORD PTR p$[rbp] 0011a 0f b6 4d 64 movzx ecx, BYTE PTR val$1[rbp] 0011e 88 08 mov BYTE PTR [rax], cl ; 6459 : p += 4; 00120 48 8b 85 68 01 00 00 mov rax, QWORD PTR p$[rbp] 00127 48 83 c0 04 add rax, 4 0012b 48 89 85 68 01 00 00 mov QWORD PTR p$[rbp], rax ; 6460 : len--; 00132 8b 45 44 mov eax, DWORD PTR len$[rbp] 00135 ff c8 dec eax 00137 89 45 44 mov DWORD PTR len$[rbp], eax ; 6461 : } 0013a eb d1 jmp SHORT $LN6@stbi__psd_ $LN7@stbi__psd_: $LN13@stbi__psd_: $LN11@stbi__psd_: $LN9@stbi__psd_: ; 6462 : } ; 6463 : } 0013c e9 f0 fe ff ff jmp $LN2@stbi__psd_ $LN3@stbi__psd_: ; 6464 : ; 6465 : return 1; 00141 b8 01 00 00 00 mov eax, 1 $LN1@stbi__psd_: ; 6466 : } 00146 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 0014d 5f pop rdi 0014e 5d pop rbp 0014f c3 ret 0 stbi__psd_decode_rle ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__tga_read_rgb16 _TEXT SEGMENT px$ = 4 fiveBitMask$ = 36 r$ = 68 g$ = 100 b$ = 132 s$ = 384 out$ = 392 stbi__tga_read_rgb16 PROC ; COMDAT ; 6198 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 6199 : stbi__uint16 px = (stbi__uint16)stbi__get16le(s); 00025 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 0002c e8 00 00 00 00 call stbi__get16le 00031 66 89 45 04 mov WORD PTR px$[rbp], ax ; 6200 : stbi__uint16 fiveBitMask = 31; 00035 b8 1f 00 00 00 mov eax, 31 0003a 66 89 45 24 mov WORD PTR fiveBitMask$[rbp], ax ; 6201 : // we have 3 channels with 5bits each ; 6202 : int r = (px >> 10) & fiveBitMask; 0003e 0f b7 45 04 movzx eax, WORD PTR px$[rbp] 00042 c1 f8 0a sar eax, 10 00045 0f b7 4d 24 movzx ecx, WORD PTR fiveBitMask$[rbp] 00049 23 c1 and eax, ecx 0004b 89 45 44 mov DWORD PTR r$[rbp], eax ; 6203 : int g = (px >> 5) & fiveBitMask; 0004e 0f b7 45 04 movzx eax, WORD PTR px$[rbp] 00052 c1 f8 05 sar eax, 5 00055 0f b7 4d 24 movzx ecx, WORD PTR fiveBitMask$[rbp] 00059 23 c1 and eax, ecx 0005b 89 45 64 mov DWORD PTR g$[rbp], eax ; 6204 : int b = px & fiveBitMask; 0005e 0f b7 45 04 movzx eax, WORD PTR px$[rbp] 00062 0f b7 4d 24 movzx ecx, WORD PTR fiveBitMask$[rbp] 00066 23 c1 and eax, ecx 00068 89 85 84 00 00 00 mov DWORD PTR b$[rbp], eax ; 6205 : // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later ; 6206 : out[0] = (stbi_uc)((r * 255) / 31); 0006e 69 45 44 ff 00 00 00 imul eax, DWORD PTR r$[rbp], 255 ; 000000ffH 00075 99 cdq 00076 b9 1f 00 00 00 mov ecx, 31 0007b f7 f9 idiv ecx 0007d b9 01 00 00 00 mov ecx, 1 00082 48 6b c9 00 imul rcx, rcx, 0 00086 48 8b 95 88 01 00 00 mov rdx, QWORD PTR out$[rbp] 0008d 88 04 0a mov BYTE PTR [rdx+rcx], al ; 6207 : out[1] = (stbi_uc)((g * 255) / 31); 00090 69 45 64 ff 00 00 00 imul eax, DWORD PTR g$[rbp], 255 ; 000000ffH 00097 99 cdq 00098 b9 1f 00 00 00 mov ecx, 31 0009d f7 f9 idiv ecx 0009f b9 01 00 00 00 mov ecx, 1 000a4 48 6b c9 01 imul rcx, rcx, 1 000a8 48 8b 95 88 01 00 00 mov rdx, QWORD PTR out$[rbp] 000af 88 04 0a mov BYTE PTR [rdx+rcx], al ; 6208 : out[2] = (stbi_uc)((b * 255) / 31); 000b2 69 85 84 00 00 00 ff 00 00 00 imul eax, DWORD PTR b$[rbp], 255 ; 000000ffH 000bc 99 cdq 000bd b9 1f 00 00 00 mov ecx, 31 000c2 f7 f9 idiv ecx 000c4 b9 01 00 00 00 mov ecx, 1 000c9 48 6b c9 02 imul rcx, rcx, 2 000cd 48 8b 95 88 01 00 00 mov rdx, QWORD PTR out$[rbp] 000d4 88 04 0a mov BYTE PTR [rdx+rcx], al ; 6209 : ; 6210 : // some people claim that the most significant bit might be used for alpha ; 6211 : // (possibly if an alpha-bit is set in the "image descriptor byte") ; 6212 : // but that only made 16bit test images completely translucent.. ; 6213 : // so let's treat all 15 and 16bit TGAs as RGB with no alpha. ; 6214 : } 000d7 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] 000de 5f pop rdi 000df 5d pop rbp 000e0 c3 ret 0 stbi__tga_read_rgb16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__tga_get_comp _TEXT SEGMENT tv65 = 192 bits_per_pixel$ = 240 is_grey$ = 248 is_rgb16$ = 256 stbi__tga_get_comp PROC ; COMDAT ; 6060 : { 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 0000d 55 push rbp 0000e 57 push rdi 0000f 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00027 90 npad 1 ; 6061 : // only RGB or RGBA (incl. 16bit) or grey allowed ; 6062 : if (is_rgb16) 00028 48 83 bd 00 01 00 00 00 cmp QWORD PTR is_rgb16$[rbp], 0 00030 74 0d je SHORT $LN4@stbi__tga_ ; 6063 : *is_rgb16 = 0; 00032 48 8b 85 00 01 00 00 mov rax, QWORD PTR is_rgb16$[rbp] 00039 c7 00 00 00 00 00 mov DWORD PTR [rax], 0 $LN4@stbi__tga_: ; 6064 : switch (bits_per_pixel) { 0003f 8b 85 f0 00 00 00 mov eax, DWORD PTR bits_per_pixel$[rbp] 00045 89 85 c0 00 00 00 mov DWORD PTR tv65[rbp], eax 0004b 83 bd c0 00 00 00 08 cmp DWORD PTR tv65[rbp], 8 00052 74 26 je SHORT $LN5@stbi__tga_ 00054 83 bd c0 00 00 00 0f cmp DWORD PTR tv65[rbp], 15 0005b 74 34 je SHORT $LN8@stbi__tga_ 0005d 83 bd c0 00 00 00 10 cmp DWORD PTR tv65[rbp], 16 00064 74 1b je SHORT $LN6@stbi__tga_ 00066 83 bd c0 00 00 00 18 cmp DWORD PTR tv65[rbp], 24 0006d 74 40 je SHORT $LN10@stbi__tga_ 0006f 83 bd c0 00 00 00 20 cmp DWORD PTR tv65[rbp], 32 ; 00000020H 00076 74 37 je SHORT $LN11@stbi__tga_ 00078 eb 46 jmp SHORT $LN12@stbi__tga_ $LN5@stbi__tga_: ; 6065 : case 8: ; 6066 : return STBI_grey; 0007a b8 01 00 00 00 mov eax, 1 0007f eb 41 jmp SHORT $LN1@stbi__tga_ $LN6@stbi__tga_: ; 6067 : case 16: ; 6068 : if (is_grey) 00081 83 bd f8 00 00 00 00 cmp DWORD PTR is_grey$[rbp], 0 00088 74 07 je SHORT $LN7@stbi__tga_ ; 6069 : return STBI_grey_alpha; 0008a b8 02 00 00 00 mov eax, 2 0008f eb 31 jmp SHORT $LN1@stbi__tga_ $LN7@stbi__tga_: $LN8@stbi__tga_: ; 6070 : // fallthrough ; 6071 : case 15: ; 6072 : if (is_rgb16) 00091 48 83 bd 00 01 00 00 00 cmp QWORD PTR is_rgb16$[rbp], 0 00099 74 0d je SHORT $LN9@stbi__tga_ ; 6073 : *is_rgb16 = 1; 0009b 48 8b 85 00 01 00 00 mov rax, QWORD PTR is_rgb16$[rbp] 000a2 c7 00 01 00 00 00 mov DWORD PTR [rax], 1 $LN9@stbi__tga_: ; 6074 : return STBI_rgb; 000a8 b8 03 00 00 00 mov eax, 3 000ad eb 13 jmp SHORT $LN1@stbi__tga_ $LN10@stbi__tga_: $LN11@stbi__tga_: ; 6075 : case 24: // fallthrough ; 6076 : case 32: ; 6077 : return bits_per_pixel / 8; 000af 8b 85 f0 00 00 00 mov eax, DWORD PTR bits_per_pixel$[rbp] 000b5 99 cdq 000b6 83 e2 07 and edx, 7 000b9 03 c2 add eax, edx 000bb c1 f8 03 sar eax, 3 000be eb 02 jmp SHORT $LN1@stbi__tga_ $LN12@stbi__tga_: ; 6078 : default: ; 6079 : return 0; 000c0 33 c0 xor eax, eax $LN1@stbi__tga_: ; 6080 : } ; 6081 : } 000c2 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000c9 5f pop rdi 000ca 5d pop rbp 000cb c3 ret 0 stbi__tga_get_comp ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bmp_parse_header _TEXT SEGMENT hsz$ = 4 compress$1 = 36 i$2 = 68 tv75 = 280 tv95 = 280 tv136 = 280 tv156 = 280 tv168 = 280 tv173 = 280 tv182 = 280 tv224 = 280 tv228 = 280 tv234 = 280 s$ = 320 info$ = 328 stbi__bmp_parse_header PROC ; COMDAT ; 5710 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 5711 : int hsz; ; 5712 : if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') 00025 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0002c e8 00 00 00 00 call stbi__get8 00031 0f b6 c0 movzx eax, al 00034 83 f8 42 cmp eax, 66 ; 00000042H 00037 75 14 jne SHORT $LN6@stbi__bmp_ 00039 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00040 e8 00 00 00 00 call stbi__get8 00045 0f b6 c0 movzx eax, al 00048 83 f8 4d cmp eax, 77 ; 0000004dH 0004b 74 34 je SHORT $LN5@stbi__bmp_ $LN6@stbi__bmp_: ; 5713 : return stbi__errpuc("not BMP", "Corrupt BMP"); 0004d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IANEBNLB@not?5BMP@ 00054 e8 00 00 00 00 call stbi__err 00059 85 c0 test eax, eax 0005b 74 0d je SHORT $LN32@stbi__bmp_ 0005d 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv75[rbp], 0 00068 eb 0b jmp SHORT $LN33@stbi__bmp_ $LN32@stbi__bmp_: 0006a 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv75[rbp], 0 $LN33@stbi__bmp_: 00075 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv75[rbp] 0007c e9 af 05 00 00 jmp $LN1@stbi__bmp_ $LN5@stbi__bmp_: ; 5714 : stbi__get32le(s); // discard filesize 00081 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00088 e8 00 00 00 00 call stbi__get32le 0008d 90 npad 1 ; 5715 : stbi__get16le(s); // discard reserved 0008e 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00095 e8 00 00 00 00 call stbi__get16le 0009a 90 npad 1 ; 5716 : stbi__get16le(s); // discard reserved 0009b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000a2 e8 00 00 00 00 call stbi__get16le 000a7 90 npad 1 ; 5717 : info->offset = stbi__get32le(s); 000a8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000af e8 00 00 00 00 call stbi__get32le 000b4 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 000bb 89 41 04 mov DWORD PTR [rcx+4], eax ; 5718 : info->hsz = hsz = stbi__get32le(s); 000be 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000c5 e8 00 00 00 00 call stbi__get32le 000ca 89 45 04 mov DWORD PTR hsz$[rbp], eax 000cd 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 000d4 8b 4d 04 mov ecx, DWORD PTR hsz$[rbp] 000d7 89 48 08 mov DWORD PTR [rax+8], ecx ; 5719 : info->mr = info->mg = info->mb = info->ma = 0; 000da 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 000e1 c7 40 18 00 00 00 00 mov DWORD PTR [rax+24], 0 000e8 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 000ef c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 000f6 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 000fd c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 00104 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 0010b c7 40 0c 00 00 00 00 mov DWORD PTR [rax+12], 0 ; 5720 : info->extra_read = 14; 00112 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 00119 c7 40 20 0e 00 00 00 mov DWORD PTR [rax+32], 14 ; 5721 : ; 5722 : if (info->offset < 0) 00120 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 00127 83 78 04 00 cmp DWORD PTR [rax+4], 0 0012b 7d 34 jge SHORT $LN7@stbi__bmp_ ; 5723 : return stbi__errpuc("bad BMP", "bad BMP"); 0012d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ 00134 e8 00 00 00 00 call stbi__err 00139 85 c0 test eax, eax 0013b 74 0d je SHORT $LN34@stbi__bmp_ 0013d 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv95[rbp], 0 00148 eb 0b jmp SHORT $LN35@stbi__bmp_ $LN34@stbi__bmp_: 0014a 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv95[rbp], 0 $LN35@stbi__bmp_: 00155 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv95[rbp] 0015c e9 cf 04 00 00 jmp $LN1@stbi__bmp_ $LN7@stbi__bmp_: ; 5724 : ; 5725 : if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) 00161 83 7d 04 0c cmp DWORD PTR hsz$[rbp], 12 00165 74 4c je SHORT $LN8@stbi__bmp_ 00167 83 7d 04 28 cmp DWORD PTR hsz$[rbp], 40 ; 00000028H 0016b 74 46 je SHORT $LN8@stbi__bmp_ 0016d 83 7d 04 38 cmp DWORD PTR hsz$[rbp], 56 ; 00000038H 00171 74 40 je SHORT $LN8@stbi__bmp_ 00173 83 7d 04 6c cmp DWORD PTR hsz$[rbp], 108 ; 0000006cH 00177 74 3a je SHORT $LN8@stbi__bmp_ 00179 83 7d 04 7c cmp DWORD PTR hsz$[rbp], 124 ; 0000007cH 0017d 74 34 je SHORT $LN8@stbi__bmp_ ; 5726 : return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); 0017f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@KHBIBJBG@unknown?5BMP@ 00186 e8 00 00 00 00 call stbi__err 0018b 85 c0 test eax, eax 0018d 74 0d je SHORT $LN36@stbi__bmp_ 0018f 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv136[rbp], 0 0019a eb 0b jmp SHORT $LN37@stbi__bmp_ $LN36@stbi__bmp_: 0019c 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv136[rbp], 0 $LN37@stbi__bmp_: 001a7 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv136[rbp] 001ae e9 7d 04 00 00 jmp $LN1@stbi__bmp_ $LN8@stbi__bmp_: ; 5727 : if (hsz == 12) { 001b3 83 7d 04 0c cmp DWORD PTR hsz$[rbp], 12 001b7 75 2d jne SHORT $LN9@stbi__bmp_ ; 5728 : s->img_x = stbi__get16le(s); 001b9 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 001c0 e8 00 00 00 00 call stbi__get16le 001c5 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 001cc 89 01 mov DWORD PTR [rcx], eax ; 5729 : s->img_y = stbi__get16le(s); 001ce 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 001d5 e8 00 00 00 00 call stbi__get16le 001da 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 001e1 89 41 04 mov DWORD PTR [rcx+4], eax ; 5730 : } else { 001e4 eb 2b jmp SHORT $LN10@stbi__bmp_ $LN9@stbi__bmp_: ; 5731 : s->img_x = stbi__get32le(s); 001e6 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 001ed e8 00 00 00 00 call stbi__get32le 001f2 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 001f9 89 01 mov DWORD PTR [rcx], eax ; 5732 : s->img_y = stbi__get32le(s); 001fb 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00202 e8 00 00 00 00 call stbi__get32le 00207 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0020e 89 41 04 mov DWORD PTR [rcx+4], eax $LN10@stbi__bmp_: ; 5733 : } ; 5734 : if (stbi__get16le(s) != 1) 00211 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00218 e8 00 00 00 00 call stbi__get16le 0021d 83 f8 01 cmp eax, 1 00220 74 34 je SHORT $LN11@stbi__bmp_ ; 5735 : return stbi__errpuc("bad BMP", "bad BMP"); 00222 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ 00229 e8 00 00 00 00 call stbi__err 0022e 85 c0 test eax, eax 00230 74 0d je SHORT $LN38@stbi__bmp_ 00232 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv156[rbp], 0 0023d eb 0b jmp SHORT $LN39@stbi__bmp_ $LN38@stbi__bmp_: 0023f 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv156[rbp], 0 $LN39@stbi__bmp_: 0024a 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv156[rbp] 00251 e9 da 03 00 00 jmp $LN1@stbi__bmp_ $LN11@stbi__bmp_: ; 5736 : info->bpp = stbi__get16le(s); 00256 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0025d e8 00 00 00 00 call stbi__get16le 00262 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 00269 89 01 mov DWORD PTR [rcx], eax ; 5737 : if (hsz != 12) { 0026b 83 7d 04 0c cmp DWORD PTR hsz$[rbp], 12 0026f 0f 84 b6 03 00 00 je $LN12@stbi__bmp_ ; 5738 : int compress = stbi__get32le(s); 00275 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0027c e8 00 00 00 00 call stbi__get32le 00281 89 45 24 mov DWORD PTR compress$1[rbp], eax ; 5739 : if (compress == 1 || compress == 2) 00284 83 7d 24 01 cmp DWORD PTR compress$1[rbp], 1 00288 74 06 je SHORT $LN14@stbi__bmp_ 0028a 83 7d 24 02 cmp DWORD PTR compress$1[rbp], 2 0028e 75 34 jne SHORT $LN13@stbi__bmp_ $LN14@stbi__bmp_: ; 5740 : return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); 00290 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IMHMNOIB@BMP?5RLE@ 00297 e8 00 00 00 00 call stbi__err 0029c 85 c0 test eax, eax 0029e 74 0d je SHORT $LN40@stbi__bmp_ 002a0 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv168[rbp], 0 002ab eb 0b jmp SHORT $LN41@stbi__bmp_ $LN40@stbi__bmp_: 002ad 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv168[rbp], 0 $LN41@stbi__bmp_: 002b8 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv168[rbp] 002bf e9 6c 03 00 00 jmp $LN1@stbi__bmp_ $LN13@stbi__bmp_: ; 5741 : if (compress >= 4) 002c4 83 7d 24 04 cmp DWORD PTR compress$1[rbp], 4 002c8 7c 34 jl SHORT $LN15@stbi__bmp_ ; 5742 : return stbi__errpuc( 002ca 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@ODCBCBFN@BMP?5JPEG?1PNG@ 002d1 e8 00 00 00 00 call stbi__err 002d6 85 c0 test eax, eax 002d8 74 0d je SHORT $LN42@stbi__bmp_ 002da 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv173[rbp], 0 002e5 eb 0b jmp SHORT $LN43@stbi__bmp_ $LN42@stbi__bmp_: 002e7 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv173[rbp], 0 $LN43@stbi__bmp_: 002f2 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv173[rbp] 002f9 e9 32 03 00 00 jmp $LN1@stbi__bmp_ $LN15@stbi__bmp_: ; 5743 : "BMP JPEG/PNG", ; 5744 : "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes ; 5745 : if (compress == 3 && info->bpp != 16 && info->bpp != 32) 002fe 83 7d 24 03 cmp DWORD PTR compress$1[rbp], 3 00302 75 4c jne SHORT $LN16@stbi__bmp_ 00304 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 0030b 83 38 10 cmp DWORD PTR [rax], 16 0030e 74 40 je SHORT $LN16@stbi__bmp_ 00310 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 00317 83 38 20 cmp DWORD PTR [rax], 32 ; 00000020H 0031a 74 34 je SHORT $LN16@stbi__bmp_ ; 5746 : return stbi__errpuc("bad BMP", 0031c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ 00323 e8 00 00 00 00 call stbi__err 00328 85 c0 test eax, eax 0032a 74 0d je SHORT $LN44@stbi__bmp_ 0032c 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv182[rbp], 0 00337 eb 0b jmp SHORT $LN45@stbi__bmp_ $LN44@stbi__bmp_: 00339 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv182[rbp], 0 $LN45@stbi__bmp_: 00344 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv182[rbp] 0034b e9 e0 02 00 00 jmp $LN1@stbi__bmp_ $LN16@stbi__bmp_: ; 5747 : "bad BMP"); // bitfields requires 16 or 32 bits/pixel ; 5748 : stbi__get32le(s); // discard sizeof 00350 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00357 e8 00 00 00 00 call stbi__get32le 0035c 90 npad 1 ; 5749 : stbi__get32le(s); // discard hres 0035d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00364 e8 00 00 00 00 call stbi__get32le 00369 90 npad 1 ; 5750 : stbi__get32le(s); // discard vres 0036a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00371 e8 00 00 00 00 call stbi__get32le 00376 90 npad 1 ; 5751 : stbi__get32le(s); // discard colorsused 00377 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0037e e8 00 00 00 00 call stbi__get32le 00383 90 npad 1 ; 5752 : stbi__get32le(s); // discard max important 00384 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0038b e8 00 00 00 00 call stbi__get32le 00390 90 npad 1 ; 5753 : if (hsz == 40 || hsz == 56) { 00391 83 7d 04 28 cmp DWORD PTR hsz$[rbp], 40 ; 00000028H 00395 74 0a je SHORT $LN19@stbi__bmp_ 00397 83 7d 04 38 cmp DWORD PTR hsz$[rbp], 56 ; 00000038H 0039b 0f 85 6f 01 00 00 jne $LN17@stbi__bmp_ $LN19@stbi__bmp_: ; 5754 : if (hsz == 56) { 003a1 83 7d 04 38 cmp DWORD PTR hsz$[rbp], 56 ; 00000038H 003a5 75 34 jne SHORT $LN20@stbi__bmp_ ; 5755 : stbi__get32le(s); 003a7 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 003ae e8 00 00 00 00 call stbi__get32le 003b3 90 npad 1 ; 5756 : stbi__get32le(s); 003b4 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 003bb e8 00 00 00 00 call stbi__get32le 003c0 90 npad 1 ; 5757 : stbi__get32le(s); 003c1 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 003c8 e8 00 00 00 00 call stbi__get32le 003cd 90 npad 1 ; 5758 : stbi__get32le(s); 003ce 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 003d5 e8 00 00 00 00 call stbi__get32le 003da 90 npad 1 $LN20@stbi__bmp_: ; 5759 : } ; 5760 : if (info->bpp == 16 || info->bpp == 32) { 003db 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 003e2 83 38 10 cmp DWORD PTR [rax], 16 003e5 74 10 je SHORT $LN22@stbi__bmp_ 003e7 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 003ee 83 38 20 cmp DWORD PTR [rax], 32 ; 00000020H 003f1 0f 85 14 01 00 00 jne $LN21@stbi__bmp_ $LN22@stbi__bmp_: ; 5761 : if (compress == 0) { 003f7 83 7d 24 00 cmp DWORD PTR compress$1[rbp], 0 003fb 75 15 jne SHORT $LN23@stbi__bmp_ ; 5762 : stbi__bmp_set_mask_defaults(info, compress); 003fd 8b 55 24 mov edx, DWORD PTR compress$1[rbp] 00400 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 00407 e8 00 00 00 00 call stbi__bmp_set_mask_defaults 0040c 90 npad 1 0040d e9 f9 00 00 00 jmp $LN24@stbi__bmp_ $LN23@stbi__bmp_: ; 5763 : } else if (compress == 3) { 00412 83 7d 24 03 cmp DWORD PTR compress$1[rbp], 3 00416 0f 85 bb 00 00 00 jne $LN25@stbi__bmp_ ; 5764 : info->mr = stbi__get32le(s); 0041c 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00423 e8 00 00 00 00 call stbi__get32le 00428 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 0042f 89 41 0c mov DWORD PTR [rcx+12], eax ; 5765 : info->mg = stbi__get32le(s); 00432 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00439 e8 00 00 00 00 call stbi__get32le 0043e 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 00445 89 41 10 mov DWORD PTR [rcx+16], eax ; 5766 : info->mb = stbi__get32le(s); 00448 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0044f e8 00 00 00 00 call stbi__get32le 00454 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 0045b 89 41 14 mov DWORD PTR [rcx+20], eax ; 5767 : info->extra_read += 12; 0045e 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 00465 8b 40 20 mov eax, DWORD PTR [rax+32] 00468 83 c0 0c add eax, 12 0046b 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 00472 89 41 20 mov DWORD PTR [rcx+32], eax ; 5768 : // not documented, but generated by photoshop and handled by mspaint ; 5769 : if (info->mr == info->mg && info->mg == info->mb) { 00475 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 0047c 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 00483 8b 49 10 mov ecx, DWORD PTR [rcx+16] 00486 39 48 0c cmp DWORD PTR [rax+12], ecx 00489 75 4a jne SHORT $LN27@stbi__bmp_ 0048b 48 8b 85 48 01 00 00 mov rax, QWORD PTR info$[rbp] 00492 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 00499 8b 49 14 mov ecx, DWORD PTR [rcx+20] 0049c 39 48 10 cmp DWORD PTR [rax+16], ecx 0049f 75 34 jne SHORT $LN27@stbi__bmp_ ; 5770 : // ?!?!? ; 5771 : return stbi__errpuc("bad BMP", "bad BMP"); 004a1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ 004a8 e8 00 00 00 00 call stbi__err 004ad 85 c0 test eax, eax 004af 74 0d je SHORT $LN46@stbi__bmp_ 004b1 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv224[rbp], 0 004bc eb 0b jmp SHORT $LN47@stbi__bmp_ $LN46@stbi__bmp_: 004be 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv224[rbp], 0 $LN47@stbi__bmp_: 004c9 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv224[rbp] 004d0 e9 5b 01 00 00 jmp $LN1@stbi__bmp_ $LN27@stbi__bmp_: ; 5772 : } ; 5773 : } else 004d5 eb 34 jmp SHORT $LN26@stbi__bmp_ $LN25@stbi__bmp_: ; 5774 : return stbi__errpuc("bad BMP", "bad BMP"); 004d7 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ 004de e8 00 00 00 00 call stbi__err 004e3 85 c0 test eax, eax 004e5 74 0d je SHORT $LN48@stbi__bmp_ 004e7 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv228[rbp], 0 004f2 eb 0b jmp SHORT $LN49@stbi__bmp_ $LN48@stbi__bmp_: 004f4 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv228[rbp], 0 $LN49@stbi__bmp_: 004ff 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv228[rbp] 00506 e9 25 01 00 00 jmp $LN1@stbi__bmp_ $LN26@stbi__bmp_: $LN24@stbi__bmp_: $LN21@stbi__bmp_: ; 5775 : } ; 5776 : } else { 0050b e9 1b 01 00 00 jmp $LN18@stbi__bmp_ $LN17@stbi__bmp_: ; 5777 : // V4/V5 header ; 5778 : int i; ; 5779 : if (hsz != 108 && hsz != 124) 00510 83 7d 04 6c cmp DWORD PTR hsz$[rbp], 108 ; 0000006cH 00514 74 3a je SHORT $LN28@stbi__bmp_ 00516 83 7d 04 7c cmp DWORD PTR hsz$[rbp], 124 ; 0000007cH 0051a 74 34 je SHORT $LN28@stbi__bmp_ ; 5780 : return stbi__errpuc("bad BMP", "bad BMP"); 0051c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IEJCHBDI@bad?5BMP@ 00523 e8 00 00 00 00 call stbi__err 00528 85 c0 test eax, eax 0052a 74 0d je SHORT $LN50@stbi__bmp_ 0052c 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv234[rbp], 0 00537 eb 0b jmp SHORT $LN51@stbi__bmp_ $LN50@stbi__bmp_: 00539 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv234[rbp], 0 $LN51@stbi__bmp_: 00544 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv234[rbp] 0054b e9 e0 00 00 00 jmp $LN1@stbi__bmp_ $LN28@stbi__bmp_: ; 5781 : info->mr = stbi__get32le(s); 00550 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00557 e8 00 00 00 00 call stbi__get32le 0055c 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 00563 89 41 0c mov DWORD PTR [rcx+12], eax ; 5782 : info->mg = stbi__get32le(s); 00566 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0056d e8 00 00 00 00 call stbi__get32le 00572 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 00579 89 41 10 mov DWORD PTR [rcx+16], eax ; 5783 : info->mb = stbi__get32le(s); 0057c 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00583 e8 00 00 00 00 call stbi__get32le 00588 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 0058f 89 41 14 mov DWORD PTR [rcx+20], eax ; 5784 : info->ma = stbi__get32le(s); 00592 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00599 e8 00 00 00 00 call stbi__get32le 0059e 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 005a5 89 41 18 mov DWORD PTR [rcx+24], eax ; 5785 : if (compress != 005a8 83 7d 24 03 cmp DWORD PTR compress$1[rbp], 3 005ac 74 10 je SHORT $LN29@stbi__bmp_ ; 5786 : 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs ; 5787 : stbi__bmp_set_mask_defaults(info, compress); 005ae 8b 55 24 mov edx, DWORD PTR compress$1[rbp] 005b1 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR info$[rbp] 005b8 e8 00 00 00 00 call stbi__bmp_set_mask_defaults 005bd 90 npad 1 $LN29@stbi__bmp_: ; 5788 : stbi__get32le(s); // discard color space 005be 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 005c5 e8 00 00 00 00 call stbi__get32le 005ca 90 npad 1 ; 5789 : for (i = 0; i < 12; ++i) 005cb c7 45 44 00 00 00 00 mov DWORD PTR i$2[rbp], 0 005d2 eb 08 jmp SHORT $LN4@stbi__bmp_ $LN2@stbi__bmp_: 005d4 8b 45 44 mov eax, DWORD PTR i$2[rbp] 005d7 ff c0 inc eax 005d9 89 45 44 mov DWORD PTR i$2[rbp], eax $LN4@stbi__bmp_: 005dc 83 7d 44 0c cmp DWORD PTR i$2[rbp], 12 005e0 7d 0f jge SHORT $LN3@stbi__bmp_ ; 5790 : stbi__get32le(s); // discard color space parameters 005e2 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 005e9 e8 00 00 00 00 call stbi__get32le 005ee 90 npad 1 005ef eb e3 jmp SHORT $LN2@stbi__bmp_ $LN3@stbi__bmp_: ; 5791 : if (hsz == 124) { 005f1 83 7d 04 7c cmp DWORD PTR hsz$[rbp], 124 ; 0000007cH 005f5 75 34 jne SHORT $LN30@stbi__bmp_ ; 5792 : stbi__get32le(s); // discard rendering intent 005f7 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 005fe e8 00 00 00 00 call stbi__get32le 00603 90 npad 1 ; 5793 : stbi__get32le(s); // discard offset of profile data 00604 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0060b e8 00 00 00 00 call stbi__get32le 00610 90 npad 1 ; 5794 : stbi__get32le(s); // discard size of profile data 00611 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00618 e8 00 00 00 00 call stbi__get32le 0061d 90 npad 1 ; 5795 : stbi__get32le(s); // discard reserved 0061e 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00625 e8 00 00 00 00 call stbi__get32le 0062a 90 npad 1 $LN30@stbi__bmp_: $LN18@stbi__bmp_: $LN12@stbi__bmp_: ; 5796 : } ; 5797 : } ; 5798 : } ; 5799 : return (void *)1; 0062b b8 01 00 00 00 mov eax, 1 $LN1@stbi__bmp_: ; 5800 : } 00630 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 00637 5f pop rdi 00638 5d pop rbp 00639 c3 ret 0 stbi__bmp_parse_header ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bmp_set_mask_defaults _TEXT SEGMENT info$ = 224 compress$ = 232 stbi__bmp_set_mask_defaults PROC ; COMDAT ; 5683 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 5684 : // BI_BITFIELDS specifies masks explicitly, don't override ; 5685 : if (compress == 3) 00024 83 bd e8 00 00 00 03 cmp DWORD PTR compress$[rbp], 3 0002b 75 0a jne SHORT $LN2@stbi__bmp_ ; 5686 : return 1; 0002d b8 01 00 00 00 mov eax, 1 00032 e9 dd 00 00 00 jmp $LN1@stbi__bmp_ $LN2@stbi__bmp_: ; 5687 : ; 5688 : if (compress == 0) { 00037 83 bd e8 00 00 00 00 cmp DWORD PTR compress$[rbp], 0 0003e 0f 85 ce 00 00 00 jne $LN3@stbi__bmp_ ; 5689 : if (info->bpp == 16) { 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 0004b 83 38 10 cmp DWORD PTR [rax], 16 0004e 75 2f jne SHORT $LN4@stbi__bmp_ ; 5690 : info->mr = 31u << 10; 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 00057 c7 40 0c 00 7c 00 00 mov DWORD PTR [rax+12], 31744 ; 00007c00H ; 5691 : info->mg = 31u << 5; 0005e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 00065 c7 40 10 e0 03 00 00 mov DWORD PTR [rax+16], 992 ; 000003e0H ; 5692 : info->mb = 31u << 0; 0006c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 00073 c7 40 14 1f 00 00 00 mov DWORD PTR [rax+20], 31 0007a e9 8c 00 00 00 jmp $LN5@stbi__bmp_ $LN4@stbi__bmp_: ; 5693 : } else if (info->bpp == 32) { 0007f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 00086 83 38 20 cmp DWORD PTR [rax], 32 ; 00000020H 00089 75 48 jne SHORT $LN6@stbi__bmp_ ; 5694 : info->mr = 0xffu << 16; 0008b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 00092 c7 40 0c 00 00 ff 00 mov DWORD PTR [rax+12], 16711680 ; 00ff0000H ; 5695 : info->mg = 0xffu << 8; 00099 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 000a0 c7 40 10 00 ff 00 00 mov DWORD PTR [rax+16], 65280 ; 0000ff00H ; 5696 : info->mb = 0xffu << 0; 000a7 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 000ae c7 40 14 ff 00 00 00 mov DWORD PTR [rax+20], 255 ; 000000ffH ; 5697 : info->ma = 0xffu << 24; 000b5 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 000bc c7 40 18 00 00 00 ff mov DWORD PTR [rax+24], -16777216 ; ff000000H ; 5698 : info->all_a = 000c3 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 000ca c7 40 1c 00 00 00 00 mov DWORD PTR [rax+28], 0 ; 5699 : 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 ; 5700 : } else { 000d1 eb 38 jmp SHORT $LN7@stbi__bmp_ $LN6@stbi__bmp_: ; 5701 : // otherwise, use defaults, which is all-0 ; 5702 : info->mr = info->mg = info->mb = info->ma = 0; 000d3 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 000da c7 40 18 00 00 00 00 mov DWORD PTR [rax+24], 0 000e1 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 000e8 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 000ef 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 000f6 c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 000fd 48 8b 85 e0 00 00 00 mov rax, QWORD PTR info$[rbp] 00104 c7 40 0c 00 00 00 00 mov DWORD PTR [rax+12], 0 $LN7@stbi__bmp_: $LN5@stbi__bmp_: ; 5703 : } ; 5704 : return 1; 0010b b8 01 00 00 00 mov eax, 1 00110 eb 02 jmp SHORT $LN1@stbi__bmp_ $LN3@stbi__bmp_: ; 5705 : } ; 5706 : return 0; // error 00112 33 c0 xor eax, eax $LN1@stbi__bmp_: ; 5707 : } 00114 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0011b 5f pop rdi 0011c 5d pop rbp 0011d c3 ret 0 stbi__bmp_set_mask_defaults ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__shiftsigned _TEXT SEGMENT v$ = 224 shift$ = 232 bits$ = 240 stbi__shiftsigned PROC ; COMDAT ; 5651 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 0000d 55 push rbp 0000e 57 push rdi 0000f 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00027 90 npad 1 ; 5652 : static unsigned int mul_table[9] = { ; 5653 : 0, ; 5654 : 0xff /*0b11111111*/, ; 5655 : 0x55 /*0b01010101*/, ; 5656 : 0x49 /*0b01001001*/, ; 5657 : 0x11 /*0b00010001*/, ; 5658 : 0x21 /*0b00100001*/, ; 5659 : 0x41 /*0b01000001*/, ; 5660 : 0x81 /*0b10000001*/, ; 5661 : 0x01 /*0b00000001*/, ; 5662 : }; ; 5663 : static unsigned int shift_table[9] = { ; 5664 : 0, 0, 0, 1, 0, 2, 4, 6, 0, ; 5665 : }; ; 5666 : if (shift < 0) 00028 83 bd e8 00 00 00 00 cmp DWORD PTR shift$[rbp], 0 0002f 7d 1b jge SHORT $LN2@stbi__shif ; 5667 : v <<= -shift; 00031 8b 85 e8 00 00 00 mov eax, DWORD PTR shift$[rbp] 00037 f7 d8 neg eax 00039 0f b6 c8 movzx ecx, al 0003c 8b 85 e0 00 00 00 mov eax, DWORD PTR v$[rbp] 00042 d3 e0 shl eax, cl 00044 89 85 e0 00 00 00 mov DWORD PTR v$[rbp], eax 0004a eb 17 jmp SHORT $LN3@stbi__shif $LN2@stbi__shif: ; 5668 : else ; 5669 : v >>= shift; 0004c 8b 85 e8 00 00 00 mov eax, DWORD PTR shift$[rbp] 00052 0f b6 c8 movzx ecx, al 00055 8b 85 e0 00 00 00 mov eax, DWORD PTR v$[rbp] 0005b d3 e8 shr eax, cl 0005d 89 85 e0 00 00 00 mov DWORD PTR v$[rbp], eax $LN3@stbi__shif: ; 5670 : STBI_ASSERT(v < 256); 00063 81 bd e0 00 00 00 00 01 00 00 cmp DWORD PTR v$[rbp], 256 ; 00000100H 0006d 72 1c jb SHORT $LN5@stbi__shif 0006f 41 b8 26 16 00 00 mov r8d, 5670 ; 00001626H 00075 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 0007c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BA@EKLGALLJ@?$AAv?$AA?5?$AA?$DM?$AA?5?$AA2?$AA5?$AA6@ 00083 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00089 33 c0 xor eax, eax $LN5@stbi__shif: ; 5671 : v >>= (8 - bits); 0008b b8 08 00 00 00 mov eax, 8 00090 2b 85 f0 00 00 00 sub eax, DWORD PTR bits$[rbp] 00096 0f b6 c8 movzx ecx, al 00099 8b 85 e0 00 00 00 mov eax, DWORD PTR v$[rbp] 0009f d3 e8 shr eax, cl 000a1 89 85 e0 00 00 00 mov DWORD PTR v$[rbp], eax ; 5672 : STBI_ASSERT(bits >= 0 && bits <= 8); 000a7 83 bd f0 00 00 00 00 cmp DWORD PTR bits$[rbp], 0 000ae 7c 09 jl SHORT $LN6@stbi__shif 000b0 83 bd f0 00 00 00 08 cmp DWORD PTR bits$[rbp], 8 000b7 7e 1c jle SHORT $LN7@stbi__shif $LN6@stbi__shif: 000b9 41 b8 28 16 00 00 mov r8d, 5672 ; 00001628H 000bf 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 000c6 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CO@LIFEKNEP@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA0?$AA?5?$AA?$CG?$AA?$CG?$AA?5?$AAb?$AAi@ 000cd ff 15 00 00 00 00 call QWORD PTR __imp__wassert 000d3 33 c0 xor eax, eax $LN7@stbi__shif: ; 5673 : return (int)((unsigned)v * mul_table[bits]) >> shift_table[bits]; 000d5 48 63 85 f0 00 00 00 movsxd rax, DWORD PTR bits$[rbp] 000dc 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:?mul_table@?1??stbi__shiftsigned@@9@9 000e3 8b 95 e0 00 00 00 mov edx, DWORD PTR v$[rbp] 000e9 0f af 14 81 imul edx, DWORD PTR [rcx+rax*4] 000ed 8b c2 mov eax, edx 000ef 48 63 8d f0 00 00 00 movsxd rcx, DWORD PTR bits$[rbp] 000f6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?shift_table@?1??stbi__shiftsigned@@9@9 000fd 8b 0c 8a mov ecx, DWORD PTR [rdx+rcx*4] 00100 d3 f8 sar eax, cl ; 5674 : } 00102 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00109 5f pop rdi 0010a 5d pop rbp 0010b c3 ret 0 stbi__shiftsigned ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bitcount _TEXT SEGMENT a$ = 224 stbi__bitcount PROC ; COMDAT ; 5638 : { 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 5639 : a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 0001f 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 00025 25 55 55 55 55 and eax, 1431655765 ; 55555555H 0002a 8b 8d e0 00 00 00 mov ecx, DWORD PTR a$[rbp] 00030 d1 e9 shr ecx, 1 00032 81 e1 55 55 55 55 and ecx, 1431655765 ; 55555555H 00038 03 c1 add eax, ecx 0003a 89 85 e0 00 00 00 mov DWORD PTR a$[rbp], eax ; 5640 : a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 00040 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 00046 25 33 33 33 33 and eax, 858993459 ; 33333333H 0004b 8b 8d e0 00 00 00 mov ecx, DWORD PTR a$[rbp] 00051 c1 e9 02 shr ecx, 2 00054 81 e1 33 33 33 33 and ecx, 858993459 ; 33333333H 0005a 03 c1 add eax, ecx 0005c 89 85 e0 00 00 00 mov DWORD PTR a$[rbp], eax ; 5641 : a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits 00062 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 00068 c1 e8 04 shr eax, 4 0006b 8b 8d e0 00 00 00 mov ecx, DWORD PTR a$[rbp] 00071 03 c8 add ecx, eax 00073 8b c1 mov eax, ecx 00075 25 0f 0f 0f 0f and eax, 252645135 ; 0f0f0f0fH 0007a 89 85 e0 00 00 00 mov DWORD PTR a$[rbp], eax ; 5642 : a = (a + (a >> 8)); // max 16 per 8 bits 00080 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 00086 c1 e8 08 shr eax, 8 00089 8b 8d e0 00 00 00 mov ecx, DWORD PTR a$[rbp] 0008f 03 c8 add ecx, eax 00091 8b c1 mov eax, ecx 00093 89 85 e0 00 00 00 mov DWORD PTR a$[rbp], eax ; 5643 : a = (a + (a >> 16)); // max 32 per 8 bits 00099 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 0009f c1 e8 10 shr eax, 16 000a2 8b 8d e0 00 00 00 mov ecx, DWORD PTR a$[rbp] 000a8 03 c8 add ecx, eax 000aa 8b c1 mov eax, ecx 000ac 89 85 e0 00 00 00 mov DWORD PTR a$[rbp], eax ; 5644 : return a & 0xff; 000b2 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 000b8 25 ff 00 00 00 and eax, 255 ; 000000ffH ; 5645 : } 000bd 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 000c4 5f pop rdi 000c5 5d pop rbp 000c6 c3 ret 0 stbi__bitcount ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__high_bit _TEXT SEGMENT n$ = 4 z$ = 256 stbi__high_bit PROC ; COMDAT ; 5611 : { 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 5612 : int n = 0; 0001f c7 45 04 00 00 00 00 mov DWORD PTR n$[rbp], 0 ; 5613 : if (z == 0) 00026 83 bd 00 01 00 00 00 cmp DWORD PTR z$[rbp], 0 0002d 75 0a jne SHORT $LN2@stbi__high ; 5614 : return -1; 0002f b8 ff ff ff ff mov eax, -1 00034 e9 9e 00 00 00 jmp $LN1@stbi__high $LN2@stbi__high: ; 5615 : if (z >= 0x10000) { 00039 81 bd 00 01 00 00 00 00 01 00 cmp DWORD PTR z$[rbp], 65536 ; 00010000H 00043 72 18 jb SHORT $LN3@stbi__high ; 5616 : n += 16; 00045 8b 45 04 mov eax, DWORD PTR n$[rbp] 00048 83 c0 10 add eax, 16 0004b 89 45 04 mov DWORD PTR n$[rbp], eax ; 5617 : z >>= 16; 0004e 8b 85 00 01 00 00 mov eax, DWORD PTR z$[rbp] 00054 c1 e8 10 shr eax, 16 00057 89 85 00 01 00 00 mov DWORD PTR z$[rbp], eax $LN3@stbi__high: ; 5618 : } ; 5619 : if (z >= 0x00100) { 0005d 81 bd 00 01 00 00 00 01 00 00 cmp DWORD PTR z$[rbp], 256 ; 00000100H 00067 72 18 jb SHORT $LN4@stbi__high ; 5620 : n += 8; 00069 8b 45 04 mov eax, DWORD PTR n$[rbp] 0006c 83 c0 08 add eax, 8 0006f 89 45 04 mov DWORD PTR n$[rbp], eax ; 5621 : z >>= 8; 00072 8b 85 00 01 00 00 mov eax, DWORD PTR z$[rbp] 00078 c1 e8 08 shr eax, 8 0007b 89 85 00 01 00 00 mov DWORD PTR z$[rbp], eax $LN4@stbi__high: ; 5622 : } ; 5623 : if (z >= 0x00010) { 00081 83 bd 00 01 00 00 10 cmp DWORD PTR z$[rbp], 16 00088 72 18 jb SHORT $LN5@stbi__high ; 5624 : n += 4; 0008a 8b 45 04 mov eax, DWORD PTR n$[rbp] 0008d 83 c0 04 add eax, 4 00090 89 45 04 mov DWORD PTR n$[rbp], eax ; 5625 : z >>= 4; 00093 8b 85 00 01 00 00 mov eax, DWORD PTR z$[rbp] 00099 c1 e8 04 shr eax, 4 0009c 89 85 00 01 00 00 mov DWORD PTR z$[rbp], eax $LN5@stbi__high: ; 5626 : } ; 5627 : if (z >= 0x00004) { 000a2 83 bd 00 01 00 00 04 cmp DWORD PTR z$[rbp], 4 000a9 72 18 jb SHORT $LN6@stbi__high ; 5628 : n += 2; 000ab 8b 45 04 mov eax, DWORD PTR n$[rbp] 000ae 83 c0 02 add eax, 2 000b1 89 45 04 mov DWORD PTR n$[rbp], eax ; 5629 : z >>= 2; 000b4 8b 85 00 01 00 00 mov eax, DWORD PTR z$[rbp] 000ba c1 e8 02 shr eax, 2 000bd 89 85 00 01 00 00 mov DWORD PTR z$[rbp], eax $LN6@stbi__high: ; 5630 : } ; 5631 : if (z >= 0x00002) { 000c3 83 bd 00 01 00 00 02 cmp DWORD PTR z$[rbp], 2 000ca 72 08 jb SHORT $LN7@stbi__high ; 5632 : n += 1; /* >>= 1;*/ 000cc 8b 45 04 mov eax, DWORD PTR n$[rbp] 000cf ff c0 inc eax 000d1 89 45 04 mov DWORD PTR n$[rbp], eax $LN7@stbi__high: ; 5633 : } ; 5634 : return n; 000d4 8b 45 04 mov eax, DWORD PTR n$[rbp] $LN1@stbi__high: ; 5635 : } 000d7 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000de 5f pop rdi 000df 5d pop rbp 000e0 c3 ret 0 stbi__high_bit ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bmp_test_raw _TEXT SEGMENT r$ = 4 sz$ = 36 tv83 = 244 s$ = 288 stbi__bmp_test_raw PROC ; COMDAT ; 5586 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 5587 : int r; ; 5588 : int sz; ; 5589 : if (stbi__get8(s) != 'B') 00020 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get8 0002c 0f b6 c0 movzx eax, al 0002f 83 f8 42 cmp eax, 66 ; 00000042H 00032 74 07 je SHORT $LN2@stbi__bmp_ ; 5590 : return 0; 00034 33 c0 xor eax, eax 00036 e9 9e 00 00 00 jmp $LN1@stbi__bmp_ $LN2@stbi__bmp_: ; 5591 : if (stbi__get8(s) != 'M') 0003b 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00042 e8 00 00 00 00 call stbi__get8 00047 0f b6 c0 movzx eax, al 0004a 83 f8 4d cmp eax, 77 ; 0000004dH 0004d 74 07 je SHORT $LN3@stbi__bmp_ ; 5592 : return 0; 0004f 33 c0 xor eax, eax 00051 e9 83 00 00 00 jmp $LN1@stbi__bmp_ $LN3@stbi__bmp_: ; 5593 : stbi__get32le(s); // discard filesize 00056 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 0005d e8 00 00 00 00 call stbi__get32le 00062 90 npad 1 ; 5594 : stbi__get16le(s); // discard reserved 00063 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 0006a e8 00 00 00 00 call stbi__get16le 0006f 90 npad 1 ; 5595 : stbi__get16le(s); // discard reserved 00070 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00077 e8 00 00 00 00 call stbi__get16le 0007c 90 npad 1 ; 5596 : stbi__get32le(s); // discard data offset 0007d 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00084 e8 00 00 00 00 call stbi__get32le 00089 90 npad 1 ; 5597 : sz = stbi__get32le(s); 0008a 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00091 e8 00 00 00 00 call stbi__get32le 00096 89 45 24 mov DWORD PTR sz$[rbp], eax ; 5598 : r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); 00099 83 7d 24 0c cmp DWORD PTR sz$[rbp], 12 0009d 74 24 je SHORT $LN5@stbi__bmp_ 0009f 83 7d 24 28 cmp DWORD PTR sz$[rbp], 40 ; 00000028H 000a3 74 1e je SHORT $LN5@stbi__bmp_ 000a5 83 7d 24 38 cmp DWORD PTR sz$[rbp], 56 ; 00000038H 000a9 74 18 je SHORT $LN5@stbi__bmp_ 000ab 83 7d 24 6c cmp DWORD PTR sz$[rbp], 108 ; 0000006cH 000af 74 12 je SHORT $LN5@stbi__bmp_ 000b1 83 7d 24 7c cmp DWORD PTR sz$[rbp], 124 ; 0000007cH 000b5 74 0c je SHORT $LN5@stbi__bmp_ 000b7 c7 85 f4 00 00 00 00 00 00 00 mov DWORD PTR tv83[rbp], 0 000c1 eb 0a jmp SHORT $LN6@stbi__bmp_ $LN5@stbi__bmp_: 000c3 c7 85 f4 00 00 00 01 00 00 00 mov DWORD PTR tv83[rbp], 1 $LN6@stbi__bmp_: 000cd 8b 85 f4 00 00 00 mov eax, DWORD PTR tv83[rbp] 000d3 89 45 04 mov DWORD PTR r$[rbp], eax ; 5599 : return r; 000d6 8b 45 04 mov eax, DWORD PTR r$[rbp] $LN1@stbi__bmp_: ; 5600 : } 000d9 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000e0 5f pop rdi 000e1 5d pop rbp 000e2 c3 ret 0 stbi__bmp_test_raw ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__png_info_raw _TEXT SEGMENT p$ = 224 x$ = 232 y$ = 240 comp$ = 248 stbi__png_info_raw PROC ; COMDAT ; 5547 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 5548 : if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { 0002f 45 33 c0 xor r8d, r8d 00032 ba 02 00 00 00 mov edx, 2 00037 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] 0003e e8 00 00 00 00 call stbi__parse_png_file 00043 85 c0 test eax, eax 00045 75 14 jne SHORT $LN2@stbi__png_ ; 5549 : stbi__rewind(p->s); 00047 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] 0004e 48 8b 08 mov rcx, QWORD PTR [rax] 00051 e8 00 00 00 00 call stbi__rewind 00056 90 npad 1 ; 5550 : return 0; 00057 33 c0 xor eax, eax 00059 eb 64 jmp SHORT $LN1@stbi__png_ $LN2@stbi__png_: ; 5551 : } ; 5552 : if (x) 0005b 48 83 bd e8 00 00 00 00 cmp QWORD PTR x$[rbp], 0 00063 74 15 je SHORT $LN3@stbi__png_ ; 5553 : *x = p->s->img_x; 00065 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] 0006c 48 8b 00 mov rax, QWORD PTR [rax] 0006f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR x$[rbp] 00076 8b 00 mov eax, DWORD PTR [rax] 00078 89 01 mov DWORD PTR [rcx], eax $LN3@stbi__png_: ; 5554 : if (y) 0007a 48 83 bd f0 00 00 00 00 cmp QWORD PTR y$[rbp], 0 00082 74 16 je SHORT $LN4@stbi__png_ ; 5555 : *y = p->s->img_y; 00084 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] 0008b 48 8b 00 mov rax, QWORD PTR [rax] 0008e 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR y$[rbp] 00095 8b 40 04 mov eax, DWORD PTR [rax+4] 00098 89 01 mov DWORD PTR [rcx], eax $LN4@stbi__png_: ; 5556 : if (comp) 0009a 48 83 bd f8 00 00 00 00 cmp QWORD PTR comp$[rbp], 0 000a2 74 16 je SHORT $LN5@stbi__png_ ; 5557 : *comp = p->s->img_n; 000a4 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] 000ab 48 8b 00 mov rax, QWORD PTR [rax] 000ae 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR comp$[rbp] 000b5 8b 40 08 mov eax, DWORD PTR [rax+8] 000b8 89 01 mov DWORD PTR [rcx], eax $LN5@stbi__png_: ; 5558 : return 1; 000ba b8 01 00 00 00 mov eax, 1 $LN1@stbi__png_: ; 5559 : } 000bf 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 000c6 5f pop rdi 000c7 5d pop rbp 000c8 c3 ret 0 stbi__png_info_raw ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__do_png _TEXT SEGMENT result$ = 8 tv69 = 216 tv84 = 216 p$ = 256 x$ = 264 y$ = 272 n$ = 280 req_comp$ = 288 ri$ = 296 stbi__do_png PROC ; COMDAT ; 5488 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 5489 : void *result = NULL; 0002f 48 c7 45 08 00 00 00 00 mov QWORD PTR result$[rbp], 0 ; 5490 : if (req_comp < 0 || req_comp > 4) 00037 83 bd 20 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 0003e 7c 09 jl SHORT $LN3@stbi__do_p 00040 83 bd 20 01 00 00 04 cmp DWORD PTR req_comp$[rbp], 4 00047 7e 34 jle SHORT $LN2@stbi__do_p $LN3@stbi__do_p: ; 5491 : return stbi__errpuc("bad req_comp", "Internal error"); 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@KBPNPPBJ@bad?5req_comp@ 00050 e8 00 00 00 00 call stbi__err 00055 85 c0 test eax, eax 00057 74 0d je SHORT $LN15@stbi__do_p 00059 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv69[rbp], 0 00064 eb 0b jmp SHORT $LN16@stbi__do_p $LN15@stbi__do_p: 00066 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv69[rbp], 0 $LN16@stbi__do_p: 00071 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv69[rbp] 00078 e9 2e 02 00 00 jmp $LN1@stbi__do_p $LN2@stbi__do_p: ; 5492 : if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { 0007d 44 8b 85 20 01 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00084 33 d2 xor edx, edx 00086 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] 0008d e8 00 00 00 00 call stbi__parse_png_file 00092 85 c0 test eax, eax 00094 0f 84 aa 01 00 00 je $LN4@stbi__do_p ; 5493 : if (p->depth <= 8) 0009a 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 000a1 83 78 20 08 cmp DWORD PTR [rax+32], 8 000a5 7f 0f jg SHORT $LN5@stbi__do_p ; 5494 : ri->bits_per_channel = 8; 000a7 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 000ae c7 00 08 00 00 00 mov DWORD PTR [rax], 8 000b4 eb 50 jmp SHORT $LN6@stbi__do_p $LN5@stbi__do_p: ; 5495 : else if (p->depth == 16) 000b6 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 000bd 83 78 20 10 cmp DWORD PTR [rax+32], 16 000c1 75 0f jne SHORT $LN7@stbi__do_p ; 5496 : ri->bits_per_channel = 16; 000c3 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 000ca c7 00 10 00 00 00 mov DWORD PTR [rax], 16 000d0 eb 34 jmp SHORT $LN8@stbi__do_p $LN7@stbi__do_p: ; 5497 : else ; 5498 : return stbi__errpuc("bad bits_per_channel", 000d2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BF@NOEEEFMF@bad?5bits_per_channel@ 000d9 e8 00 00 00 00 call stbi__err 000de 85 c0 test eax, eax 000e0 74 0d je SHORT $LN17@stbi__do_p 000e2 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv84[rbp], 0 000ed eb 0b jmp SHORT $LN18@stbi__do_p $LN17@stbi__do_p: 000ef 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv84[rbp], 0 $LN18@stbi__do_p: 000fa 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv84[rbp] 00101 e9 a5 01 00 00 jmp $LN1@stbi__do_p $LN8@stbi__do_p: $LN6@stbi__do_p: ; 5499 : "PNG not supported: unsupported color depth"); ; 5500 : result = p->out; 00106 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0010d 48 8b 40 18 mov rax, QWORD PTR [rax+24] 00111 48 89 45 08 mov QWORD PTR result$[rbp], rax ; 5501 : p->out = NULL; 00115 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0011c 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 ; 5502 : if (req_comp && req_comp != p->s->img_out_n) { 00124 83 bd 20 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 0012b 0f 84 c8 00 00 00 je $LN9@stbi__do_p 00131 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 00138 48 8b 00 mov rax, QWORD PTR [rax] 0013b 8b 40 0c mov eax, DWORD PTR [rax+12] 0013e 39 85 20 01 00 00 cmp DWORD PTR req_comp$[rbp], eax 00144 0f 84 af 00 00 00 je $LN9@stbi__do_p ; 5503 : if (ri->bits_per_channel == 8) 0014a 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 00151 83 38 08 cmp DWORD PTR [rax], 8 00154 75 41 jne SHORT $LN10@stbi__do_p ; 5504 : result = stbi__convert_format((unsigned char *)result, 00156 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0015d 48 8b 00 mov rax, QWORD PTR [rax] 00160 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] 00167 48 8b 09 mov rcx, QWORD PTR [rcx] 0016a 48 8b 95 00 01 00 00 mov rdx, QWORD PTR p$[rbp] 00171 48 8b 12 mov rdx, QWORD PTR [rdx] 00174 8b 40 04 mov eax, DWORD PTR [rax+4] 00177 89 44 24 20 mov DWORD PTR [rsp+32], eax 0017b 44 8b 09 mov r9d, DWORD PTR [rcx] 0017e 44 8b 85 20 01 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00185 8b 52 0c mov edx, DWORD PTR [rdx+12] 00188 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] 0018c e8 00 00 00 00 call stbi__convert_format 00191 48 89 45 08 mov QWORD PTR result$[rbp], rax 00195 eb 3f jmp SHORT $LN11@stbi__do_p $LN10@stbi__do_p: ; 5505 : p->s->img_out_n, req_comp, ; 5506 : p->s->img_x, p->s->img_y); ; 5507 : else ; 5508 : result = stbi__convert_format16((stbi__uint16 *)result, 00197 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0019e 48 8b 00 mov rax, QWORD PTR [rax] 001a1 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] 001a8 48 8b 09 mov rcx, QWORD PTR [rcx] 001ab 48 8b 95 00 01 00 00 mov rdx, QWORD PTR p$[rbp] 001b2 48 8b 12 mov rdx, QWORD PTR [rdx] 001b5 8b 40 04 mov eax, DWORD PTR [rax+4] 001b8 89 44 24 20 mov DWORD PTR [rsp+32], eax 001bc 44 8b 09 mov r9d, DWORD PTR [rcx] 001bf 44 8b 85 20 01 00 00 mov r8d, DWORD PTR req_comp$[rbp] 001c6 8b 52 0c mov edx, DWORD PTR [rdx+12] 001c9 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] 001cd e8 00 00 00 00 call stbi__convert_format16 001d2 48 89 45 08 mov QWORD PTR result$[rbp], rax $LN11@stbi__do_p: ; 5509 : p->s->img_out_n, req_comp, ; 5510 : p->s->img_x, p->s->img_y); ; 5511 : p->s->img_out_n = req_comp; 001d6 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 001dd 48 8b 00 mov rax, QWORD PTR [rax] 001e0 8b 8d 20 01 00 00 mov ecx, DWORD PTR req_comp$[rbp] 001e6 89 48 0c mov DWORD PTR [rax+12], ecx ; 5512 : if (result == NULL) 001e9 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0 001ee 75 09 jne SHORT $LN12@stbi__do_p ; 5513 : return result; 001f0 48 8b 45 08 mov rax, QWORD PTR result$[rbp] 001f4 e9 b2 00 00 00 jmp $LN1@stbi__do_p $LN12@stbi__do_p: $LN9@stbi__do_p: ; 5514 : } ; 5515 : *x = p->s->img_x; 001f9 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 00200 48 8b 00 mov rax, QWORD PTR [rax] 00203 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR x$[rbp] 0020a 8b 00 mov eax, DWORD PTR [rax] 0020c 89 01 mov DWORD PTR [rcx], eax ; 5516 : *y = p->s->img_y; 0020e 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 00215 48 8b 00 mov rax, QWORD PTR [rax] 00218 48 8b 8d 10 01 00 00 mov rcx, QWORD PTR y$[rbp] 0021f 8b 40 04 mov eax, DWORD PTR [rax+4] 00222 89 01 mov DWORD PTR [rcx], eax ; 5517 : if (n) 00224 48 83 bd 18 01 00 00 00 cmp QWORD PTR n$[rbp], 0 0022c 74 16 je SHORT $LN13@stbi__do_p ; 5518 : *n = p->s->img_n; 0022e 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 00235 48 8b 00 mov rax, QWORD PTR [rax] 00238 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR n$[rbp] 0023f 8b 40 08 mov eax, DWORD PTR [rax+8] 00242 89 01 mov DWORD PTR [rcx], eax $LN13@stbi__do_p: $LN4@stbi__do_p: ; 5519 : } ; 5520 : STBI_FREE(p->out); 00244 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0024b 48 8b 48 18 mov rcx, QWORD PTR [rax+24] 0024f ff 15 00 00 00 00 call QWORD PTR __imp_free 00255 90 npad 1 ; 5521 : p->out = NULL; 00256 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0025d 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 ; 5522 : STBI_FREE(p->expanded); 00265 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0026c 48 8b 48 10 mov rcx, QWORD PTR [rax+16] 00270 ff 15 00 00 00 00 call QWORD PTR __imp_free 00276 90 npad 1 ; 5523 : p->expanded = NULL; 00277 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0027e 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 ; 5524 : STBI_FREE(p->idata); 00286 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0028d 48 8b 48 08 mov rcx, QWORD PTR [rax+8] 00291 ff 15 00 00 00 00 call QWORD PTR __imp_free 00297 90 npad 1 ; 5525 : p->idata = NULL; 00298 48 8b 85 00 01 00 00 mov rax, QWORD PTR p$[rbp] 0029f 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 ; 5526 : ; 5527 : return result; 002a7 48 8b 45 08 mov rax, QWORD PTR result$[rbp] $LN1@stbi__do_p: ; 5528 : } 002ab 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 002b2 5f pop rdi 002b3 5d pop rbp 002b4 c3 ret 0 stbi__do_png ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__parse_png_file _TEXT SEGMENT palette$ = 16 pal_img_n$ = 1060 has_trans$ = 1092 tc$ = 1124 tc16$ = 1156 ioff$ = 1188 idata_limit$ = 1220 i$ = 1252 pal_len$ = 1284 first$ = 1316 k$ = 1348 interlace$ = 1380 color$ = 1412 is_iphone$ = 1444 s$ = 1480 c$8 = 1512 comp$9 = 1540 filter$10 = 1572 idata_limit_old$11 = 1604 p$12 = 1640 raw_len$13 = 1668 bpl$14 = 1700 tv78 = 2484 tv194 = 2484 tv345 = 2484 tv394 = 2484 tv461 = 2484 tv197 = 2488 __$ArrayPad$ = 2496 z$ = 2544 scan$ = 2552 req_comp$ = 2560 stbi__parse_png_file PROC ; COMDAT ; 5235 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000e 55 push rbp 0000f 57 push rdi 00010 48 81 ec 18 0a 00 00 sub rsp, 2584 ; 00000a18H 00017 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] 0001c 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] 00021 b9 b6 01 00 00 mov ecx, 438 ; 000001b6H 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 0002b f3 ab rep stosd 0002d 48 8b 8c 24 38 0a 00 00 mov rcx, QWORD PTR [rsp+2616] 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0003c 48 33 c5 xor rax, rbp 0003f 48 89 85 c0 09 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00046 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00052 90 npad 1 ; 5236 : stbi_uc palette[1024], pal_img_n = 0; 00053 c6 85 24 04 00 00 00 mov BYTE PTR pal_img_n$[rbp], 0 ; 5237 : stbi_uc has_trans = 0, tc[3] = { 0 }; 0005a c6 85 44 04 00 00 00 mov BYTE PTR has_trans$[rbp], 0 00061 48 8d 85 64 04 00 00 lea rax, QWORD PTR tc$[rbp] 00068 48 8b f8 mov rdi, rax 0006b 33 c0 xor eax, eax 0006d b9 03 00 00 00 mov ecx, 3 00072 f3 aa rep stosb ; 5238 : stbi__uint16 tc16[3]; ; 5239 : stbi__uint32 ioff = 0, idata_limit = 0, i, pal_len = 0; 00074 c7 85 a4 04 00 00 00 00 00 00 mov DWORD PTR ioff$[rbp], 0 0007e c7 85 c4 04 00 00 00 00 00 00 mov DWORD PTR idata_limit$[rbp], 0 00088 c7 85 04 05 00 00 00 00 00 00 mov DWORD PTR pal_len$[rbp], 0 ; 5240 : int first = 1, k, interlace = 0, color = 0, is_iphone = 0; 00092 c7 85 24 05 00 00 01 00 00 00 mov DWORD PTR first$[rbp], 1 0009c c7 85 64 05 00 00 00 00 00 00 mov DWORD PTR interlace$[rbp], 0 000a6 c7 85 84 05 00 00 00 00 00 00 mov DWORD PTR color$[rbp], 0 000b0 c7 85 a4 05 00 00 00 00 00 00 mov DWORD PTR is_iphone$[rbp], 0 ; 5241 : stbi__context *s = z->s; 000ba 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 000c1 48 8b 00 mov rax, QWORD PTR [rax] 000c4 48 89 85 c8 05 00 00 mov QWORD PTR s$[rbp], rax ; 5242 : ; 5243 : z->expanded = NULL; 000cb 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 000d2 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 ; 5244 : z->idata = NULL; 000da 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 000e1 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 ; 5245 : z->out = NULL; 000e9 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 000f0 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 ; 5246 : ; 5247 : if (!stbi__check_png_header(s)) 000f8 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 000ff e8 00 00 00 00 call stbi__check_png_header 00104 85 c0 test eax, eax 00106 75 07 jne SHORT $LN21@stbi__pars ; 5248 : return 0; 00108 33 c0 xor eax, eax 0010a e9 98 0d 00 00 jmp $LN1@stbi__pars $LN21@stbi__pars: ; 5249 : ; 5250 : if (scan == STBI__SCAN_type) 0010f 83 bd f8 09 00 00 01 cmp DWORD PTR scan$[rbp], 1 00116 75 0a jne SHORT $LN22@stbi__pars ; 5251 : return 1; 00118 b8 01 00 00 00 mov eax, 1 0011d e9 85 0d 00 00 jmp $LN1@stbi__pars $LN22@stbi__pars: $LN2@stbi__pars: ; 5252 : ; 5253 : for (;;) { ; 5254 : stbi__pngchunk c = stbi__get_chunk_header(s); 00122 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00129 e8 00 00 00 00 call stbi__get_chunk_header 0012e 48 89 85 e8 05 00 00 mov QWORD PTR c$8[rbp], rax ; 5255 : switch (c.type) { 00135 8b 85 ec 05 00 00 mov eax, DWORD PTR c$8[rbp+4] 0013b 89 85 b4 09 00 00 mov DWORD PTR tv78[rbp], eax 00141 81 bd b4 09 00 00 52 44 48 49 cmp DWORD PTR tv78[rbp], 1229472850 ; 49484452H 0014b 77 3d ja SHORT $LN107@stbi__pars 0014d 81 bd b4 09 00 00 52 44 48 49 cmp DWORD PTR tv78[rbp], 1229472850 ; 49484452H 00157 74 78 je SHORT $LN24@stbi__pars 00159 81 bd b4 09 00 00 49 42 67 43 cmp DWORD PTR tv78[rbp], 1130840649 ; 43674249H 00163 74 4a je SHORT $LN23@stbi__pars 00165 81 bd b4 09 00 00 54 41 44 49 cmp DWORD PTR tv78[rbp], 1229209940 ; 49444154H 0016f 0f 84 e0 06 00 00 je $LN61@stbi__pars 00175 81 bd b4 09 00 00 44 4e 45 49 cmp DWORD PTR tv78[rbp], 1229278788 ; 49454e44H 0017f 0f 84 a7 08 00 00 je $LN72@stbi__pars 00185 e9 3c 0c 00 00 jmp $LN93@stbi__pars $LN107@stbi__pars: 0018a 81 bd b4 09 00 00 45 54 4c 50 cmp DWORD PTR tv78[rbp], 1347179589 ; 504c5445H 00194 0f 84 7c 03 00 00 je $LN44@stbi__pars 0019a 81 bd b4 09 00 00 53 4e 52 74 cmp DWORD PTR tv78[rbp], 1951551059 ; 74524e53H 001a4 0f 84 77 04 00 00 je $LN48@stbi__pars 001aa e9 17 0c 00 00 jmp $LN93@stbi__pars $LN23@stbi__pars: ; 5256 : case STBI__PNG_TYPE('C', 'g', 'B', 'I'): ; 5257 : is_iphone = 1; 001af c7 85 a4 05 00 00 01 00 00 00 mov DWORD PTR is_iphone$[rbp], 1 ; 5258 : stbi__skip(s, c.length); 001b9 8b 95 e8 05 00 00 mov edx, DWORD PTR c$8[rbp] 001bf 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 001c6 e8 00 00 00 00 call stbi__skip 001cb 90 npad 1 ; 5259 : break; 001cc e9 c4 0c 00 00 jmp $LN5@stbi__pars $LN24@stbi__pars: ; 5260 : case STBI__PNG_TYPE('I', 'H', 'D', 'R'): { ; 5261 : int comp, filter; ; 5262 : if (!first) 001d1 83 bd 24 05 00 00 00 cmp DWORD PTR first$[rbp], 0 001d8 75 11 jne SHORT $LN25@stbi__pars ; 5263 : return stbi__err("multiple IHDR", "Corrupt PNG"); 001da 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@KBHBNJOK@multiple?5IHDR@ 001e1 e8 00 00 00 00 call stbi__err 001e6 e9 bc 0c 00 00 jmp $LN1@stbi__pars $LN25@stbi__pars: ; 5264 : first = 0; 001eb c7 85 24 05 00 00 00 00 00 00 mov DWORD PTR first$[rbp], 0 ; 5265 : if (c.length != 13) 001f5 83 bd e8 05 00 00 0d cmp DWORD PTR c$8[rbp], 13 001fc 74 11 je SHORT $LN26@stbi__pars ; 5266 : return stbi__err("bad IHDR len", "Corrupt PNG"); 001fe 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@POJLKMKK@bad?5IHDR?5len@ 00205 e8 00 00 00 00 call stbi__err 0020a e9 98 0c 00 00 jmp $LN1@stbi__pars $LN26@stbi__pars: ; 5267 : s->img_x = stbi__get32be(s); 0020f 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00216 e8 00 00 00 00 call stbi__get32be 0021b 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00222 89 01 mov DWORD PTR [rcx], eax ; 5268 : s->img_y = stbi__get32be(s); 00224 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 0022b e8 00 00 00 00 call stbi__get32be 00230 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00237 89 41 04 mov DWORD PTR [rcx+4], eax ; 5269 : if (s->img_y > STBI_MAX_DIMENSIONS) 0023a 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00241 81 78 04 00 00 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H 00248 76 11 jbe SHORT $LN27@stbi__pars ; 5270 : return stbi__err("too large", "Very large image (corrupt?)"); 0024a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00251 e8 00 00 00 00 call stbi__err 00256 e9 4c 0c 00 00 jmp $LN1@stbi__pars $LN27@stbi__pars: ; 5271 : if (s->img_x > STBI_MAX_DIMENSIONS) 0025b 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00262 81 38 00 00 00 01 cmp DWORD PTR [rax], 16777216 ; 01000000H 00268 76 11 jbe SHORT $LN28@stbi__pars ; 5272 : return stbi__err("too large", "Very large image (corrupt?)"); 0026a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00271 e8 00 00 00 00 call stbi__err 00276 e9 2c 0c 00 00 jmp $LN1@stbi__pars $LN28@stbi__pars: ; 5273 : z->depth = stbi__get8(s); 0027b 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00282 e8 00 00 00 00 call stbi__get8 00287 0f b6 c0 movzx eax, al 0028a 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 00291 89 41 20 mov DWORD PTR [rcx+32], eax ; 5274 : if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && 00294 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 0029b 83 78 20 01 cmp DWORD PTR [rax+32], 1 0029f 74 45 je SHORT $LN29@stbi__pars 002a1 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 002a8 83 78 20 02 cmp DWORD PTR [rax+32], 2 002ac 74 38 je SHORT $LN29@stbi__pars 002ae 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 002b5 83 78 20 04 cmp DWORD PTR [rax+32], 4 002b9 74 2b je SHORT $LN29@stbi__pars 002bb 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 002c2 83 78 20 08 cmp DWORD PTR [rax+32], 8 002c6 74 1e je SHORT $LN29@stbi__pars 002c8 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 002cf 83 78 20 10 cmp DWORD PTR [rax+32], 16 002d3 74 11 je SHORT $LN29@stbi__pars ; 5275 : z->depth != 16) ; 5276 : return stbi__err("1/2/4/8/16-bit only", 002d5 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@EJHIPKNO@1?12?14?18?116?9bit?5only@ 002dc e8 00 00 00 00 call stbi__err 002e1 e9 c1 0b 00 00 jmp $LN1@stbi__pars $LN29@stbi__pars: ; 5277 : "PNG not supported: 1/2/4/8/16-bit only"); ; 5278 : color = stbi__get8(s); 002e6 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 002ed e8 00 00 00 00 call stbi__get8 002f2 0f b6 c0 movzx eax, al 002f5 89 85 84 05 00 00 mov DWORD PTR color$[rbp], eax ; 5279 : if (color > 6) 002fb 83 bd 84 05 00 00 06 cmp DWORD PTR color$[rbp], 6 00302 7e 11 jle SHORT $LN30@stbi__pars ; 5280 : return stbi__err("bad ctype", "Corrupt PNG"); 00304 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09MBBNGCKB@bad?5ctype@ 0030b e8 00 00 00 00 call stbi__err 00310 e9 92 0b 00 00 jmp $LN1@stbi__pars $LN30@stbi__pars: ; 5281 : if (color == 3 && z->depth == 16) 00315 83 bd 84 05 00 00 03 cmp DWORD PTR color$[rbp], 3 0031c 75 1e jne SHORT $LN31@stbi__pars 0031e 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00325 83 78 20 10 cmp DWORD PTR [rax+32], 16 00329 75 11 jne SHORT $LN31@stbi__pars ; 5282 : return stbi__err("bad ctype", "Corrupt PNG"); 0032b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09MBBNGCKB@bad?5ctype@ 00332 e8 00 00 00 00 call stbi__err 00337 e9 6b 0b 00 00 jmp $LN1@stbi__pars $LN31@stbi__pars: ; 5283 : if (color == 3) 0033c 83 bd 84 05 00 00 03 cmp DWORD PTR color$[rbp], 3 00343 75 09 jne SHORT $LN32@stbi__pars ; 5284 : pal_img_n = 3; 00345 c6 85 24 04 00 00 03 mov BYTE PTR pal_img_n$[rbp], 3 0034c eb 1e jmp SHORT $LN33@stbi__pars $LN32@stbi__pars: ; 5285 : else if (color & 1) 0034e 8b 85 84 05 00 00 mov eax, DWORD PTR color$[rbp] 00354 83 e0 01 and eax, 1 00357 85 c0 test eax, eax 00359 74 11 je SHORT $LN34@stbi__pars ; 5286 : return stbi__err("bad ctype", "Corrupt PNG"); 0035b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09MBBNGCKB@bad?5ctype@ 00362 e8 00 00 00 00 call stbi__err 00367 e9 3b 0b 00 00 jmp $LN1@stbi__pars $LN34@stbi__pars: $LN33@stbi__pars: ; 5287 : comp = stbi__get8(s); 0036c 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00373 e8 00 00 00 00 call stbi__get8 00378 0f b6 c0 movzx eax, al 0037b 89 85 04 06 00 00 mov DWORD PTR comp$9[rbp], eax ; 5288 : if (comp) 00381 83 bd 04 06 00 00 00 cmp DWORD PTR comp$9[rbp], 0 00388 74 11 je SHORT $LN35@stbi__pars ; 5289 : return stbi__err("bad comp method", "Corrupt PNG"); 0038a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDMBDDFG@bad?5comp?5method@ 00391 e8 00 00 00 00 call stbi__err 00396 e9 0c 0b 00 00 jmp $LN1@stbi__pars $LN35@stbi__pars: ; 5290 : filter = stbi__get8(s); 0039b 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 003a2 e8 00 00 00 00 call stbi__get8 003a7 0f b6 c0 movzx eax, al 003aa 89 85 24 06 00 00 mov DWORD PTR filter$10[rbp], eax ; 5291 : if (filter) 003b0 83 bd 24 06 00 00 00 cmp DWORD PTR filter$10[rbp], 0 003b7 74 11 je SHORT $LN36@stbi__pars ; 5292 : return stbi__err("bad filter method", "Corrupt PNG"); 003b9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@GHLIKKMD@bad?5filter?5method@ 003c0 e8 00 00 00 00 call stbi__err 003c5 e9 dd 0a 00 00 jmp $LN1@stbi__pars $LN36@stbi__pars: ; 5293 : interlace = stbi__get8(s); 003ca 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 003d1 e8 00 00 00 00 call stbi__get8 003d6 0f b6 c0 movzx eax, al 003d9 89 85 64 05 00 00 mov DWORD PTR interlace$[rbp], eax ; 5294 : if (interlace > 1) 003df 83 bd 64 05 00 00 01 cmp DWORD PTR interlace$[rbp], 1 003e6 7e 11 jle SHORT $LN37@stbi__pars ; 5295 : return stbi__err("bad interlace method", "Corrupt PNG"); 003e8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BF@JCGDPBAA@bad?5interlace?5method@ 003ef e8 00 00 00 00 call stbi__err 003f4 e9 ae 0a 00 00 jmp $LN1@stbi__pars $LN37@stbi__pars: ; 5296 : if (!s->img_x || !s->img_y) 003f9 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00400 83 38 00 cmp DWORD PTR [rax], 0 00403 74 0d je SHORT $LN39@stbi__pars 00405 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 0040c 83 78 04 00 cmp DWORD PTR [rax+4], 0 00410 75 11 jne SHORT $LN38@stbi__pars $LN39@stbi__pars: ; 5297 : return stbi__err("0-pixel image", "Corrupt PNG"); 00412 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@FNFBHCOO@0?9pixel?5image@ 00419 e8 00 00 00 00 call stbi__err 0041e e9 84 0a 00 00 jmp $LN1@stbi__pars $LN38@stbi__pars: ; 5298 : if (!pal_img_n) { 00423 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 0042a 85 c0 test eax, eax 0042c 0f 85 9b 00 00 00 jne $LN40@stbi__pars ; 5299 : s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); 00432 8b 85 84 05 00 00 mov eax, DWORD PTR color$[rbp] 00438 83 e0 02 and eax, 2 0043b 85 c0 test eax, eax 0043d 74 0c je SHORT $LN97@stbi__pars 0043f c7 85 b4 09 00 00 03 00 00 00 mov DWORD PTR tv194[rbp], 3 00449 eb 0a jmp SHORT $LN98@stbi__pars $LN97@stbi__pars: 0044b c7 85 b4 09 00 00 01 00 00 00 mov DWORD PTR tv194[rbp], 1 $LN98@stbi__pars: 00455 8b 85 84 05 00 00 mov eax, DWORD PTR color$[rbp] 0045b 83 e0 04 and eax, 4 0045e 85 c0 test eax, eax 00460 74 0c je SHORT $LN99@stbi__pars 00462 c7 85 b8 09 00 00 01 00 00 00 mov DWORD PTR tv197[rbp], 1 0046c eb 0a jmp SHORT $LN100@stbi__pars $LN99@stbi__pars: 0046e c7 85 b8 09 00 00 00 00 00 00 mov DWORD PTR tv197[rbp], 0 $LN100@stbi__pars: 00478 8b 85 b8 09 00 00 mov eax, DWORD PTR tv197[rbp] 0047e 8b 8d b4 09 00 00 mov ecx, DWORD PTR tv194[rbp] 00484 03 c8 add ecx, eax 00486 8b c1 mov eax, ecx 00488 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 0048f 89 41 08 mov DWORD PTR [rcx+8], eax ; 5300 : if ((1 << 30) / s->img_x / s->img_n < s->img_y) 00492 33 d2 xor edx, edx 00494 b8 00 00 00 40 mov eax, 1073741824 ; 40000000H 00499 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 004a0 f7 31 div DWORD PTR [rcx] 004a2 33 d2 xor edx, edx 004a4 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 004ab f7 71 08 div DWORD PTR [rcx+8] 004ae 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 004b5 3b 41 04 cmp eax, DWORD PTR [rcx+4] 004b8 73 11 jae SHORT $LN42@stbi__pars ; 5301 : return stbi__err("too large", "Image too large to decode"); 004ba 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 004c1 e8 00 00 00 00 call stbi__err 004c6 e9 dc 09 00 00 jmp $LN1@stbi__pars $LN42@stbi__pars: ; 5302 : } else { 004cb eb 44 jmp SHORT $LN41@stbi__pars $LN40@stbi__pars: ; 5303 : // if paletted, then pal_n is our final components, and ; 5304 : // img_n is # components to decompress/filter. ; 5305 : s->img_n = 1; 004cd 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 004d4 c7 40 08 01 00 00 00 mov DWORD PTR [rax+8], 1 ; 5306 : if ((1 << 30) / s->img_x / 4 < s->img_y) 004db 33 d2 xor edx, edx 004dd b8 00 00 00 40 mov eax, 1073741824 ; 40000000H 004e2 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 004e9 f7 31 div DWORD PTR [rcx] 004eb 33 d2 xor edx, edx 004ed b9 04 00 00 00 mov ecx, 4 004f2 f7 f1 div ecx 004f4 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 004fb 3b 41 04 cmp eax, DWORD PTR [rcx+4] 004fe 73 11 jae SHORT $LN43@stbi__pars ; 5307 : return stbi__err("too large", "Corrupt PNG"); 00500 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00507 e8 00 00 00 00 call stbi__err 0050c e9 96 09 00 00 jmp $LN1@stbi__pars $LN43@stbi__pars: $LN41@stbi__pars: ; 5308 : } ; 5309 : // even with SCAN_header, have to scan to see if we have a tRNS ; 5310 : break; 00511 e9 7f 09 00 00 jmp $LN5@stbi__pars $LN44@stbi__pars: ; 5311 : } ; 5312 : ; 5313 : case STBI__PNG_TYPE('P', 'L', 'T', 'E'): { ; 5314 : if (first) 00516 83 bd 24 05 00 00 00 cmp DWORD PTR first$[rbp], 0 0051d 74 11 je SHORT $LN45@stbi__pars ; 5315 : return stbi__err("first not IHDR", "Corrupt PNG"); 0051f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ 00526 e8 00 00 00 00 call stbi__err 0052b e9 77 09 00 00 jmp $LN1@stbi__pars $LN45@stbi__pars: ; 5316 : if (c.length > 256 * 3) 00530 81 bd e8 05 00 00 00 03 00 00 cmp DWORD PTR c$8[rbp], 768 ; 00000300H 0053a 76 11 jbe SHORT $LN46@stbi__pars ; 5317 : return stbi__err("invalid PLTE", "Corrupt PNG"); 0053c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@JCPAJAKB@invalid?5PLTE@ 00543 e8 00 00 00 00 call stbi__err 00548 e9 5a 09 00 00 jmp $LN1@stbi__pars $LN46@stbi__pars: ; 5318 : pal_len = c.length / 3; 0054d 33 d2 xor edx, edx 0054f 8b 85 e8 05 00 00 mov eax, DWORD PTR c$8[rbp] 00555 b9 03 00 00 00 mov ecx, 3 0055a f7 f1 div ecx 0055c 89 85 04 05 00 00 mov DWORD PTR pal_len$[rbp], eax ; 5319 : if (pal_len * 3 != c.length) 00562 6b 85 04 05 00 00 03 imul eax, DWORD PTR pal_len$[rbp], 3 00569 3b 85 e8 05 00 00 cmp eax, DWORD PTR c$8[rbp] 0056f 74 11 je SHORT $LN47@stbi__pars ; 5320 : return stbi__err("invalid PLTE", "Corrupt PNG"); 00571 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@JCPAJAKB@invalid?5PLTE@ 00578 e8 00 00 00 00 call stbi__err 0057d e9 25 09 00 00 jmp $LN1@stbi__pars $LN47@stbi__pars: ; 5321 : for (i = 0; i < pal_len; ++i) { 00582 c7 85 e4 04 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 0058c eb 0e jmp SHORT $LN9@stbi__pars $LN7@stbi__pars: 0058e 8b 85 e4 04 00 00 mov eax, DWORD PTR i$[rbp] 00594 ff c0 inc eax 00596 89 85 e4 04 00 00 mov DWORD PTR i$[rbp], eax $LN9@stbi__pars: 0059c 8b 85 04 05 00 00 mov eax, DWORD PTR pal_len$[rbp] 005a2 39 85 e4 04 00 00 cmp DWORD PTR i$[rbp], eax 005a8 73 72 jae SHORT $LN8@stbi__pars ; 5322 : palette[i * 4 + 0] = stbi__get8(s); 005aa 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 005b1 e8 00 00 00 00 call stbi__get8 005b6 8b 8d e4 04 00 00 mov ecx, DWORD PTR i$[rbp] 005bc c1 e1 02 shl ecx, 2 005bf 8b c9 mov ecx, ecx 005c1 88 44 0d 10 mov BYTE PTR palette$[rbp+rcx], al ; 5323 : palette[i * 4 + 1] = stbi__get8(s); 005c5 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 005cc e8 00 00 00 00 call stbi__get8 005d1 8b 8d e4 04 00 00 mov ecx, DWORD PTR i$[rbp] 005d7 8d 0c 8d 01 00 00 00 lea ecx, DWORD PTR [rcx*4+1] 005de 8b c9 mov ecx, ecx 005e0 88 44 0d 10 mov BYTE PTR palette$[rbp+rcx], al ; 5324 : palette[i * 4 + 2] = stbi__get8(s); 005e4 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 005eb e8 00 00 00 00 call stbi__get8 005f0 8b 8d e4 04 00 00 mov ecx, DWORD PTR i$[rbp] 005f6 8d 0c 8d 02 00 00 00 lea ecx, DWORD PTR [rcx*4+2] 005fd 8b c9 mov ecx, ecx 005ff 88 44 0d 10 mov BYTE PTR palette$[rbp+rcx], al ; 5325 : palette[i * 4 + 3] = 255; 00603 8b 85 e4 04 00 00 mov eax, DWORD PTR i$[rbp] 00609 8d 04 85 03 00 00 00 lea eax, DWORD PTR [rax*4+3] 00610 8b c0 mov eax, eax 00612 c6 44 05 10 ff mov BYTE PTR palette$[rbp+rax], 255 ; 000000ffH ; 5326 : } 00617 e9 72 ff ff ff jmp $LN7@stbi__pars $LN8@stbi__pars: ; 5327 : break; 0061c e9 74 08 00 00 jmp $LN5@stbi__pars $LN48@stbi__pars: ; 5328 : } ; 5329 : ; 5330 : case STBI__PNG_TYPE('t', 'R', 'N', 'S'): { ; 5331 : if (first) 00621 83 bd 24 05 00 00 00 cmp DWORD PTR first$[rbp], 0 00628 74 11 je SHORT $LN49@stbi__pars ; 5332 : return stbi__err("first not IHDR", "Corrupt PNG"); 0062a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ 00631 e8 00 00 00 00 call stbi__err 00636 e9 6c 08 00 00 jmp $LN1@stbi__pars $LN49@stbi__pars: ; 5333 : if (z->idata) 0063b 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00642 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 00647 74 11 je SHORT $LN50@stbi__pars ; 5334 : return stbi__err("tRNS after IDAT", "Corrupt PNG"); 00649 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@PCPJHDKJ@tRNS?5after?5IDAT@ 00650 e8 00 00 00 00 call stbi__err 00655 e9 4d 08 00 00 jmp $LN1@stbi__pars $LN50@stbi__pars: ; 5335 : if (pal_img_n) { 0065a 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 00661 85 c0 test eax, eax 00663 0f 84 af 00 00 00 je $LN51@stbi__pars ; 5336 : if (scan == STBI__SCAN_header) { 00669 83 bd f8 09 00 00 02 cmp DWORD PTR scan$[rbp], 2 00670 75 18 jne SHORT $LN53@stbi__pars ; 5337 : s->img_n = 4; 00672 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00679 c7 40 08 04 00 00 00 mov DWORD PTR [rax+8], 4 ; 5338 : return 1; 00680 b8 01 00 00 00 mov eax, 1 00685 e9 1d 08 00 00 jmp $LN1@stbi__pars $LN53@stbi__pars: ; 5339 : } ; 5340 : if (pal_len == 0) 0068a 83 bd 04 05 00 00 00 cmp DWORD PTR pal_len$[rbp], 0 00691 75 11 jne SHORT $LN54@stbi__pars ; 5341 : return stbi__err("tRNS before PLTE", "Corrupt PNG"); 00693 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@CEDNNLBG@tRNS?5before?5PLTE@ 0069a e8 00 00 00 00 call stbi__err 0069f e9 03 08 00 00 jmp $LN1@stbi__pars $LN54@stbi__pars: ; 5342 : if (c.length > pal_len) 006a4 8b 85 04 05 00 00 mov eax, DWORD PTR pal_len$[rbp] 006aa 39 85 e8 05 00 00 cmp DWORD PTR c$8[rbp], eax 006b0 76 11 jbe SHORT $LN55@stbi__pars ; 5343 : return stbi__err("bad tRNS len", "Corrupt PNG"); 006b2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ 006b9 e8 00 00 00 00 call stbi__err 006be e9 e4 07 00 00 jmp $LN1@stbi__pars $LN55@stbi__pars: ; 5344 : pal_img_n = 4; 006c3 c6 85 24 04 00 00 04 mov BYTE PTR pal_img_n$[rbp], 4 ; 5345 : for (i = 0; i < c.length; ++i) 006ca c7 85 e4 04 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 006d4 eb 0e jmp SHORT $LN12@stbi__pars $LN10@stbi__pars: 006d6 8b 85 e4 04 00 00 mov eax, DWORD PTR i$[rbp] 006dc ff c0 inc eax 006de 89 85 e4 04 00 00 mov DWORD PTR i$[rbp], eax $LN12@stbi__pars: 006e4 8b 85 e8 05 00 00 mov eax, DWORD PTR c$8[rbp] 006ea 39 85 e4 04 00 00 cmp DWORD PTR i$[rbp], eax 006f0 73 21 jae SHORT $LN11@stbi__pars ; 5346 : palette[i * 4 + 3] = stbi__get8(s); 006f2 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 006f9 e8 00 00 00 00 call stbi__get8 006fe 8b 8d e4 04 00 00 mov ecx, DWORD PTR i$[rbp] 00704 8d 0c 8d 03 00 00 00 lea ecx, DWORD PTR [rcx*4+3] 0070b 8b c9 mov ecx, ecx 0070d 88 44 0d 10 mov BYTE PTR palette$[rbp+rcx], al 00711 eb c3 jmp SHORT $LN10@stbi__pars $LN11@stbi__pars: ; 5347 : } else { 00713 e9 38 01 00 00 jmp $LN52@stbi__pars $LN51@stbi__pars: ; 5348 : if (!(s->img_n & 1)) 00718 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 0071f 8b 40 08 mov eax, DWORD PTR [rax+8] 00722 83 e0 01 and eax, 1 00725 85 c0 test eax, eax 00727 75 11 jne SHORT $LN56@stbi__pars ; 5349 : return stbi__err("tRNS with alpha", "Corrupt PNG"); 00729 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@ENDPGCHB@tRNS?5with?5alpha@ 00730 e8 00 00 00 00 call stbi__err 00735 e9 6d 07 00 00 jmp $LN1@stbi__pars $LN56@stbi__pars: ; 5350 : if (c.length != (stbi__uint32)s->img_n * 2) 0073a 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00741 8b 40 08 mov eax, DWORD PTR [rax+8] 00744 d1 e0 shl eax, 1 00746 39 85 e8 05 00 00 cmp DWORD PTR c$8[rbp], eax 0074c 74 11 je SHORT $LN57@stbi__pars ; 5351 : return stbi__err("bad tRNS len", "Corrupt PNG"); 0074e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@KDLCCKCH@bad?5tRNS?5len@ 00755 e8 00 00 00 00 call stbi__err 0075a e9 48 07 00 00 jmp $LN1@stbi__pars $LN57@stbi__pars: ; 5352 : has_trans = 1; 0075f c6 85 44 04 00 00 01 mov BYTE PTR has_trans$[rbp], 1 ; 5353 : // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now. ; 5354 : if (scan == STBI__SCAN_header) { 00766 83 bd f8 09 00 00 02 cmp DWORD PTR scan$[rbp], 2 0076d 75 20 jne SHORT $LN58@stbi__pars ; 5355 : ++s->img_n; 0076f 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00776 8b 40 08 mov eax, DWORD PTR [rax+8] 00779 ff c0 inc eax 0077b 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00782 89 41 08 mov DWORD PTR [rcx+8], eax ; 5356 : return 1; 00785 b8 01 00 00 00 mov eax, 1 0078a e9 18 07 00 00 jmp $LN1@stbi__pars $LN58@stbi__pars: ; 5357 : } ; 5358 : if (z->depth == 16) { 0078f 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00796 83 78 20 10 cmp DWORD PTR [rax+32], 16 0079a 75 4b jne SHORT $LN59@stbi__pars ; 5359 : for (k = 0; k < s->img_n; ++k) 0079c c7 85 44 05 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 007a6 eb 0e jmp SHORT $LN15@stbi__pars $LN13@stbi__pars: 007a8 8b 85 44 05 00 00 mov eax, DWORD PTR k$[rbp] 007ae ff c0 inc eax 007b0 89 85 44 05 00 00 mov DWORD PTR k$[rbp], eax $LN15@stbi__pars: 007b6 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 007bd 8b 40 08 mov eax, DWORD PTR [rax+8] 007c0 39 85 44 05 00 00 cmp DWORD PTR k$[rbp], eax 007c6 7d 1d jge SHORT $LN14@stbi__pars ; 5360 : tc16[k] = (stbi__uint16)stbi__get16be( 007c8 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 007cf e8 00 00 00 00 call stbi__get16be 007d4 48 63 8d 44 05 00 00 movsxd rcx, DWORD PTR k$[rbp] 007db 66 89 84 4d 84 04 00 00 mov WORD PTR tc16$[rbp+rcx*2], ax 007e3 eb c3 jmp SHORT $LN13@stbi__pars $LN14@stbi__pars: ; 5361 : s); // copy the values as-is ; 5362 : } else { 007e5 eb 69 jmp SHORT $LN60@stbi__pars $LN59@stbi__pars: ; 5363 : for (k = 0; k < s->img_n; ++k) 007e7 c7 85 44 05 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 007f1 eb 0e jmp SHORT $LN18@stbi__pars $LN16@stbi__pars: 007f3 8b 85 44 05 00 00 mov eax, DWORD PTR k$[rbp] 007f9 ff c0 inc eax 007fb 89 85 44 05 00 00 mov DWORD PTR k$[rbp], eax $LN18@stbi__pars: 00801 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00808 8b 40 08 mov eax, DWORD PTR [rax+8] 0080b 39 85 44 05 00 00 cmp DWORD PTR k$[rbp], eax 00811 7d 3d jge SHORT $LN17@stbi__pars ; 5364 : tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * 00813 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 0081a e8 00 00 00 00 call stbi__get16be 0081f 25 ff 00 00 00 and eax, 255 ; 000000ffH 00824 0f b6 c0 movzx eax, al 00827 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 0082e 48 63 49 20 movsxd rcx, DWORD PTR [rcx+32] 00832 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__depth_scale_table 00839 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0083d 0f af c1 imul eax, ecx 00840 48 63 8d 44 05 00 00 movsxd rcx, DWORD PTR k$[rbp] 00847 88 84 0d 64 04 00 00 mov BYTE PTR tc$[rbp+rcx], al 0084e eb a3 jmp SHORT $LN16@stbi__pars $LN17@stbi__pars: $LN60@stbi__pars: $LN52@stbi__pars: ; 5365 : stbi__depth_scale_table ; 5366 : [z->depth]; // non 8-bit images will be larger ; 5367 : } ; 5368 : } ; 5369 : break; 00850 e9 40 06 00 00 jmp $LN5@stbi__pars $LN61@stbi__pars: ; 5370 : } ; 5371 : ; 5372 : case STBI__PNG_TYPE('I', 'D', 'A', 'T'): { ; 5373 : if (first) 00855 83 bd 24 05 00 00 00 cmp DWORD PTR first$[rbp], 0 0085c 74 11 je SHORT $LN62@stbi__pars ; 5374 : return stbi__err("first not IHDR", "Corrupt PNG"); 0085e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ 00865 e8 00 00 00 00 call stbi__err 0086a e9 38 06 00 00 jmp $LN1@stbi__pars $LN62@stbi__pars: ; 5375 : if (pal_img_n && !pal_len) 0086f 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 00876 85 c0 test eax, eax 00878 74 1a je SHORT $LN63@stbi__pars 0087a 83 bd 04 05 00 00 00 cmp DWORD PTR pal_len$[rbp], 0 00881 75 11 jne SHORT $LN63@stbi__pars ; 5376 : return stbi__err("no PLTE", "Corrupt PNG"); 00883 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07CKIELOEH@no?5PLTE@ 0088a e8 00 00 00 00 call stbi__err 0088f e9 13 06 00 00 jmp $LN1@stbi__pars $LN63@stbi__pars: ; 5377 : if (scan == STBI__SCAN_header) { 00894 83 bd f8 09 00 00 02 cmp DWORD PTR scan$[rbp], 2 0089b 75 26 jne SHORT $LN64@stbi__pars ; 5378 : // header scan definitely stops at first IDAT ; 5379 : if (pal_img_n) 0089d 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 008a4 85 c0 test eax, eax 008a6 74 11 je SHORT $LN65@stbi__pars ; 5380 : s->img_n = pal_img_n; 008a8 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 008af 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 008b6 89 41 08 mov DWORD PTR [rcx+8], eax $LN65@stbi__pars: ; 5381 : return 1; 008b9 b8 01 00 00 00 mov eax, 1 008be e9 e4 05 00 00 jmp $LN1@stbi__pars $LN64@stbi__pars: ; 5382 : } ; 5383 : if (c.length > (1u << 30)) 008c3 81 bd e8 05 00 00 00 00 00 40 cmp DWORD PTR c$8[rbp], 1073741824 ; 40000000H 008cd 76 11 jbe SHORT $LN66@stbi__pars ; 5384 : return stbi__err("IDAT size limit", 008cf 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@PLHGLONG@IDAT?5size?5limit@ 008d6 e8 00 00 00 00 call stbi__err 008db e9 c7 05 00 00 jmp $LN1@stbi__pars $LN66@stbi__pars: ; 5385 : "IDAT section larger than 2^30 bytes"); ; 5386 : if ((int)(ioff + c.length) < (int)ioff) 008e0 8b 85 e8 05 00 00 mov eax, DWORD PTR c$8[rbp] 008e6 8b 8d a4 04 00 00 mov ecx, DWORD PTR ioff$[rbp] 008ec 03 c8 add ecx, eax 008ee 8b c1 mov eax, ecx 008f0 3b 85 a4 04 00 00 cmp eax, DWORD PTR ioff$[rbp] 008f6 7d 07 jge SHORT $LN67@stbi__pars ; 5387 : return 0; 008f8 33 c0 xor eax, eax 008fa e9 a8 05 00 00 jmp $LN1@stbi__pars $LN67@stbi__pars: ; 5388 : if (ioff + c.length > idata_limit) { 008ff 8b 85 e8 05 00 00 mov eax, DWORD PTR c$8[rbp] 00905 8b 8d a4 04 00 00 mov ecx, DWORD PTR ioff$[rbp] 0090b 03 c8 add ecx, eax 0090d 8b c1 mov eax, ecx 0090f 3b 85 c4 04 00 00 cmp eax, DWORD PTR idata_limit$[rbp] 00915 0f 86 ba 00 00 00 jbe $LN68@stbi__pars ; 5389 : stbi__uint32 idata_limit_old = idata_limit; 0091b 8b 85 c4 04 00 00 mov eax, DWORD PTR idata_limit$[rbp] 00921 89 85 44 06 00 00 mov DWORD PTR idata_limit_old$11[rbp], eax ; 5390 : stbi_uc *p; ; 5391 : if (idata_limit == 0) 00927 83 bd c4 04 00 00 00 cmp DWORD PTR idata_limit$[rbp], 0 0092e 75 30 jne SHORT $LN69@stbi__pars ; 5392 : idata_limit = c.length > 4096 ? c.length : 4096; 00930 81 bd e8 05 00 00 00 10 00 00 cmp DWORD PTR c$8[rbp], 4096 ; 00001000H 0093a 76 0e jbe SHORT $LN101@stbi__pars 0093c 8b 85 e8 05 00 00 mov eax, DWORD PTR c$8[rbp] 00942 89 85 b4 09 00 00 mov DWORD PTR tv345[rbp], eax 00948 eb 0a jmp SHORT $LN102@stbi__pars $LN101@stbi__pars: 0094a c7 85 b4 09 00 00 00 10 00 00 mov DWORD PTR tv345[rbp], 4096 ; 00001000H $LN102@stbi__pars: 00954 8b 85 b4 09 00 00 mov eax, DWORD PTR tv345[rbp] 0095a 89 85 c4 04 00 00 mov DWORD PTR idata_limit$[rbp], eax $LN69@stbi__pars: $LN19@stbi__pars: ; 5393 : while (ioff + c.length > idata_limit) 00960 8b 85 e8 05 00 00 mov eax, DWORD PTR c$8[rbp] 00966 8b 8d a4 04 00 00 mov ecx, DWORD PTR ioff$[rbp] 0096c 03 c8 add ecx, eax 0096e 8b c1 mov eax, ecx 00970 3b 85 c4 04 00 00 cmp eax, DWORD PTR idata_limit$[rbp] 00976 76 10 jbe SHORT $LN20@stbi__pars ; 5394 : idata_limit *= 2; 00978 8b 85 c4 04 00 00 mov eax, DWORD PTR idata_limit$[rbp] 0097e d1 e0 shl eax, 1 00980 89 85 c4 04 00 00 mov DWORD PTR idata_limit$[rbp], eax 00986 eb d8 jmp SHORT $LN19@stbi__pars $LN20@stbi__pars: ; 5395 : STBI_NOTUSED(idata_limit_old); ; 5396 : p = (stbi_uc *)STBI_REALLOC_SIZED(z->idata, idata_limit_old, 00988 8b 85 c4 04 00 00 mov eax, DWORD PTR idata_limit$[rbp] 0098e 8b d0 mov edx, eax 00990 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00997 48 8b 48 08 mov rcx, QWORD PTR [rax+8] 0099b ff 15 00 00 00 00 call QWORD PTR __imp_realloc 009a1 48 89 85 68 06 00 00 mov QWORD PTR p$12[rbp], rax ; 5397 : idata_limit); ; 5398 : if (p == NULL) 009a8 48 83 bd 68 06 00 00 00 cmp QWORD PTR p$12[rbp], 0 009b0 75 11 jne SHORT $LN70@stbi__pars ; 5399 : return stbi__err("outofmem", "Out of memory"); 009b2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 009b9 e8 00 00 00 00 call stbi__err 009be e9 e4 04 00 00 jmp $LN1@stbi__pars $LN70@stbi__pars: ; 5400 : z->idata = p; 009c3 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 009ca 48 8b 8d 68 06 00 00 mov rcx, QWORD PTR p$12[rbp] 009d1 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN68@stbi__pars: ; 5401 : } ; 5402 : if (!stbi__getn(s, z->idata + ioff, c.length)) 009d5 8b 85 a4 04 00 00 mov eax, DWORD PTR ioff$[rbp] 009db 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 009e2 48 03 41 08 add rax, QWORD PTR [rcx+8] 009e6 44 8b 85 e8 05 00 00 mov r8d, DWORD PTR c$8[rbp] 009ed 48 8b d0 mov rdx, rax 009f0 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 009f7 e8 00 00 00 00 call stbi__getn 009fc 85 c0 test eax, eax 009fe 75 11 jne SHORT $LN71@stbi__pars ; 5403 : return stbi__err("outofdata", "Corrupt PNG"); 00a00 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09MNNCNKEO@outofdata@ 00a07 e8 00 00 00 00 call stbi__err 00a0c e9 96 04 00 00 jmp $LN1@stbi__pars $LN71@stbi__pars: ; 5404 : ioff += c.length; 00a11 8b 85 e8 05 00 00 mov eax, DWORD PTR c$8[rbp] 00a17 8b 8d a4 04 00 00 mov ecx, DWORD PTR ioff$[rbp] 00a1d 03 c8 add ecx, eax 00a1f 8b c1 mov eax, ecx 00a21 89 85 a4 04 00 00 mov DWORD PTR ioff$[rbp], eax ; 5405 : break; 00a27 e9 69 04 00 00 jmp $LN5@stbi__pars $LN72@stbi__pars: ; 5406 : } ; 5407 : ; 5408 : case STBI__PNG_TYPE('I', 'E', 'N', 'D'): { ; 5409 : stbi__uint32 raw_len, bpl; ; 5410 : if (first) 00a2c 83 bd 24 05 00 00 00 cmp DWORD PTR first$[rbp], 0 00a33 74 11 je SHORT $LN73@stbi__pars ; 5411 : return stbi__err("first not IHDR", "Corrupt PNG"); 00a35 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ 00a3c e8 00 00 00 00 call stbi__err 00a41 e9 61 04 00 00 jmp $LN1@stbi__pars $LN73@stbi__pars: ; 5412 : if (scan != STBI__SCAN_load) 00a46 83 bd f8 09 00 00 00 cmp DWORD PTR scan$[rbp], 0 00a4d 74 0a je SHORT $LN74@stbi__pars ; 5413 : return 1; 00a4f b8 01 00 00 00 mov eax, 1 00a54 e9 4e 04 00 00 jmp $LN1@stbi__pars $LN74@stbi__pars: ; 5414 : if (z->idata == NULL) 00a59 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00a60 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 00a65 75 11 jne SHORT $LN75@stbi__pars ; 5415 : return stbi__err("no IDAT", "Corrupt PNG"); 00a67 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07MLPECBNA@no?5IDAT@ 00a6e e8 00 00 00 00 call stbi__err 00a73 e9 2f 04 00 00 jmp $LN1@stbi__pars $LN75@stbi__pars: ; 5416 : // initial guess for decoded data size to avoid unnecessary reallocs ; 5417 : bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component 00a78 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00a7f 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 00a86 8b 00 mov eax, DWORD PTR [rax] 00a88 0f af 41 20 imul eax, DWORD PTR [rcx+32] 00a8c 83 c0 07 add eax, 7 00a8f 33 d2 xor edx, edx 00a91 b9 08 00 00 00 mov ecx, 8 00a96 f7 f1 div ecx 00a98 89 85 a4 06 00 00 mov DWORD PTR bpl$14[rbp], eax ; 5418 : raw_len = bpl * s->img_y * s->img_n /* pixels */ + 00a9e 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00aa5 8b 8d a4 06 00 00 mov ecx, DWORD PTR bpl$14[rbp] 00aab 0f af 48 04 imul ecx, DWORD PTR [rax+4] 00aaf 8b c1 mov eax, ecx 00ab1 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00ab8 0f af 41 08 imul eax, DWORD PTR [rcx+8] 00abc 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00ac3 03 41 04 add eax, DWORD PTR [rcx+4] 00ac6 89 85 84 06 00 00 mov DWORD PTR raw_len$13[rbp], eax ; 5419 : s->img_y /* filter mode per row */; ; 5420 : z->expanded = (stbi_uc *)stbi_zlib_decode_malloc_guesssize_headerflag( 00acc 83 bd a4 05 00 00 00 cmp DWORD PTR is_iphone$[rbp], 0 00ad3 75 0c jne SHORT $LN103@stbi__pars 00ad5 c7 85 b4 09 00 00 01 00 00 00 mov DWORD PTR tv394[rbp], 1 00adf eb 0a jmp SHORT $LN104@stbi__pars $LN103@stbi__pars: 00ae1 c7 85 b4 09 00 00 00 00 00 00 mov DWORD PTR tv394[rbp], 0 $LN104@stbi__pars: 00aeb 8b 85 b4 09 00 00 mov eax, DWORD PTR tv394[rbp] 00af1 89 44 24 20 mov DWORD PTR [rsp+32], eax 00af5 4c 8d 8d 84 06 00 00 lea r9, QWORD PTR raw_len$13[rbp] 00afc 44 8b 85 84 06 00 00 mov r8d, DWORD PTR raw_len$13[rbp] 00b03 8b 95 a4 04 00 00 mov edx, DWORD PTR ioff$[rbp] 00b09 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00b10 48 8b 48 08 mov rcx, QWORD PTR [rax+8] 00b14 e8 00 00 00 00 call stbi_zlib_decode_malloc_guesssize_headerflag 00b19 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 00b20 48 89 41 10 mov QWORD PTR [rcx+16], rax ; 5421 : (char *)z->idata, ioff, raw_len, (int *)&raw_len, !is_iphone); ; 5422 : if (z->expanded == NULL) 00b24 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00b2b 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 00b30 75 07 jne SHORT $LN76@stbi__pars ; 5423 : return 0; // zlib should set error 00b32 33 c0 xor eax, eax 00b34 e9 6e 03 00 00 jmp $LN1@stbi__pars $LN76@stbi__pars: ; 5424 : STBI_FREE(z->idata); 00b39 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00b40 48 8b 48 08 mov rcx, QWORD PTR [rax+8] 00b44 ff 15 00 00 00 00 call QWORD PTR __imp_free 00b4a 90 npad 1 ; 5425 : z->idata = NULL; 00b4b 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00b52 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 ; 5426 : if ((req_comp == s->img_n + 1 && req_comp != 3 && !pal_img_n) || has_trans) 00b5a 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00b61 8b 40 08 mov eax, DWORD PTR [rax+8] 00b64 ff c0 inc eax 00b66 39 85 00 0a 00 00 cmp DWORD PTR req_comp$[rbp], eax 00b6c 75 14 jne SHORT $LN80@stbi__pars 00b6e 83 bd 00 0a 00 00 03 cmp DWORD PTR req_comp$[rbp], 3 00b75 74 0b je SHORT $LN80@stbi__pars 00b77 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 00b7e 85 c0 test eax, eax 00b80 74 0b je SHORT $LN79@stbi__pars $LN80@stbi__pars: 00b82 0f b6 85 44 04 00 00 movzx eax, BYTE PTR has_trans$[rbp] 00b89 85 c0 test eax, eax 00b8b 74 18 je SHORT $LN77@stbi__pars $LN79@stbi__pars: ; 5427 : s->img_out_n = s->img_n + 1; 00b8d 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00b94 8b 40 08 mov eax, DWORD PTR [rax+8] 00b97 ff c0 inc eax 00b99 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00ba0 89 41 0c mov DWORD PTR [rcx+12], eax 00ba3 eb 14 jmp SHORT $LN78@stbi__pars $LN77@stbi__pars: ; 5428 : else ; 5429 : s->img_out_n = s->img_n; 00ba5 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00bac 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00bb3 8b 49 08 mov ecx, DWORD PTR [rcx+8] 00bb6 89 48 0c mov DWORD PTR [rax+12], ecx $LN78@stbi__pars: ; 5430 : if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, 00bb9 8b 85 64 05 00 00 mov eax, DWORD PTR interlace$[rbp] 00bbf 89 44 24 30 mov DWORD PTR [rsp+48], eax 00bc3 8b 85 84 05 00 00 mov eax, DWORD PTR color$[rbp] 00bc9 89 44 24 28 mov DWORD PTR [rsp+40], eax 00bcd 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00bd4 8b 40 20 mov eax, DWORD PTR [rax+32] 00bd7 89 44 24 20 mov DWORD PTR [rsp+32], eax 00bdb 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00be2 44 8b 48 0c mov r9d, DWORD PTR [rax+12] 00be6 44 8b 85 84 06 00 00 mov r8d, DWORD PTR raw_len$13[rbp] 00bed 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00bf4 48 8b 50 10 mov rdx, QWORD PTR [rax+16] 00bf8 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 00bff e8 00 00 00 00 call stbi__create_png_image 00c04 85 c0 test eax, eax 00c06 75 07 jne SHORT $LN81@stbi__pars ; 5431 : color, interlace)) ; 5432 : return 0; 00c08 33 c0 xor eax, eax 00c0a e9 98 02 00 00 jmp $LN1@stbi__pars $LN81@stbi__pars: ; 5433 : if (has_trans) { 00c0f 0f b6 85 44 04 00 00 movzx eax, BYTE PTR has_trans$[rbp] 00c16 85 c0 test eax, eax 00c18 74 61 je SHORT $LN82@stbi__pars ; 5434 : if (z->depth == 16) { 00c1a 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00c21 83 78 20 10 cmp DWORD PTR [rax+32], 16 00c25 75 2b jne SHORT $LN83@stbi__pars ; 5435 : if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) 00c27 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00c2e 44 8b 40 0c mov r8d, DWORD PTR [rax+12] 00c32 48 8d 95 84 04 00 00 lea rdx, QWORD PTR tc16$[rbp] 00c39 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 00c40 e8 00 00 00 00 call stbi__compute_transparency16 00c45 85 c0 test eax, eax 00c47 75 07 jne SHORT $LN85@stbi__pars ; 5436 : return 0; 00c49 33 c0 xor eax, eax 00c4b e9 57 02 00 00 jmp $LN1@stbi__pars $LN85@stbi__pars: ; 5437 : } else { 00c50 eb 29 jmp SHORT $LN84@stbi__pars $LN83@stbi__pars: ; 5438 : if (!stbi__compute_transparency(z, tc, s->img_out_n)) 00c52 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00c59 44 8b 40 0c mov r8d, DWORD PTR [rax+12] 00c5d 48 8d 95 64 04 00 00 lea rdx, QWORD PTR tc$[rbp] 00c64 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 00c6b e8 00 00 00 00 call stbi__compute_transparency 00c70 85 c0 test eax, eax 00c72 75 07 jne SHORT $LN86@stbi__pars ; 5439 : return 0; 00c74 33 c0 xor eax, eax 00c76 e9 2c 02 00 00 jmp $LN1@stbi__pars $LN86@stbi__pars: $LN84@stbi__pars: $LN82@stbi__pars: ; 5440 : } ; 5441 : } ; 5442 : if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) 00c7b 83 bd a4 05 00 00 00 cmp DWORD PTR is_iphone$[rbp], 0 00c82 74 74 je SHORT $LN87@stbi__pars 00c84 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_set 00c89 8b c0 mov eax, eax 00c8b 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00c91 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00c9a 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00c9e 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 00ca2 74 25 je SHORT $LN105@stbi__pars 00ca4 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_local 00ca9 8b c0 mov eax, eax 00cab 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00cb1 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00cba 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00cbe 8b 04 08 mov eax, DWORD PTR [rax+rcx] 00cc1 89 85 b4 09 00 00 mov DWORD PTR tv461[rbp], eax 00cc7 eb 0c jmp SHORT $LN106@stbi__pars $LN105@stbi__pars: 00cc9 8b 05 00 00 00 00 mov eax, DWORD PTR stbi__de_iphone_flag_global 00ccf 89 85 b4 09 00 00 mov DWORD PTR tv461[rbp], eax $LN106@stbi__pars: 00cd5 83 bd b4 09 00 00 00 cmp DWORD PTR tv461[rbp], 0 00cdc 74 1a je SHORT $LN87@stbi__pars 00cde 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00ce5 83 78 0c 02 cmp DWORD PTR [rax+12], 2 00ce9 7e 0d jle SHORT $LN87@stbi__pars ; 5443 : stbi__de_iphone(z); 00ceb 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 00cf2 e8 00 00 00 00 call stbi__de_iphone 00cf7 90 npad 1 $LN87@stbi__pars: ; 5444 : if (pal_img_n) { 00cf8 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 00cff 85 c0 test eax, eax 00d01 74 6a je SHORT $LN88@stbi__pars ; 5445 : // pal_img_n == 3 or 4 ; 5446 : s->img_n = pal_img_n; // record the actual colors we had 00d03 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 00d0a 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00d11 89 41 08 mov DWORD PTR [rcx+8], eax ; 5447 : s->img_out_n = pal_img_n; 00d14 0f b6 85 24 04 00 00 movzx eax, BYTE PTR pal_img_n$[rbp] 00d1b 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00d22 89 41 0c mov DWORD PTR [rcx+12], eax ; 5448 : if (req_comp >= 3) 00d25 83 bd 00 0a 00 00 03 cmp DWORD PTR req_comp$[rbp], 3 00d2c 7c 10 jl SHORT $LN90@stbi__pars ; 5449 : s->img_out_n = req_comp; 00d2e 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00d35 8b 8d 00 0a 00 00 mov ecx, DWORD PTR req_comp$[rbp] 00d3b 89 48 0c mov DWORD PTR [rax+12], ecx $LN90@stbi__pars: ; 5450 : if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) 00d3e 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00d45 44 8b 48 0c mov r9d, DWORD PTR [rax+12] 00d49 44 8b 85 04 05 00 00 mov r8d, DWORD PTR pal_len$[rbp] 00d50 48 8d 55 10 lea rdx, QWORD PTR palette$[rbp] 00d54 48 8b 8d f0 09 00 00 mov rcx, QWORD PTR z$[rbp] 00d5b e8 00 00 00 00 call stbi__expand_png_palette 00d60 85 c0 test eax, eax 00d62 75 07 jne SHORT $LN91@stbi__pars ; 5451 : return 0; 00d64 33 c0 xor eax, eax 00d66 e9 3c 01 00 00 jmp $LN1@stbi__pars $LN91@stbi__pars: ; 5452 : } else if (has_trans) { 00d6b eb 21 jmp SHORT $LN89@stbi__pars $LN88@stbi__pars: 00d6d 0f b6 85 44 04 00 00 movzx eax, BYTE PTR has_trans$[rbp] 00d74 85 c0 test eax, eax 00d76 74 16 je SHORT $LN92@stbi__pars ; 5453 : // non-paletted image with tRNS -> source image has (constant) alpha ; 5454 : ++s->img_n; 00d78 48 8b 85 c8 05 00 00 mov rax, QWORD PTR s$[rbp] 00d7f 8b 40 08 mov eax, DWORD PTR [rax+8] 00d82 ff c0 inc eax 00d84 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00d8b 89 41 08 mov DWORD PTR [rcx+8], eax $LN92@stbi__pars: $LN89@stbi__pars: ; 5455 : } ; 5456 : STBI_FREE(z->expanded); 00d8e 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00d95 48 8b 48 10 mov rcx, QWORD PTR [rax+16] 00d99 ff 15 00 00 00 00 call QWORD PTR __imp_free 00d9f 90 npad 1 ; 5457 : z->expanded = NULL; 00da0 48 8b 85 f0 09 00 00 mov rax, QWORD PTR z$[rbp] 00da7 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 ; 5458 : // end of PNG chunk, read and skip CRC ; 5459 : stbi__get32be(s); 00daf 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00db6 e8 00 00 00 00 call stbi__get32be 00dbb 90 npad 1 ; 5460 : return 1; 00dbc b8 01 00 00 00 mov eax, 1 00dc1 e9 e1 00 00 00 jmp $LN1@stbi__pars $LN93@stbi__pars: ; 5461 : } ; 5462 : ; 5463 : default: ; 5464 : // if critical, fail ; 5465 : if (first) 00dc6 83 bd 24 05 00 00 00 cmp DWORD PTR first$[rbp], 0 00dcd 74 11 je SHORT $LN94@stbi__pars ; 5466 : return stbi__err("first not IHDR", "Corrupt PNG"); 00dcf 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@ 00dd6 e8 00 00 00 00 call stbi__err 00ddb e9 c7 00 00 00 jmp $LN1@stbi__pars $LN94@stbi__pars: ; 5467 : if ((c.type & (1 << 29)) == 0) { 00de0 8b 85 ec 05 00 00 mov eax, DWORD PTR c$8[rbp+4] 00de6 25 00 00 00 20 and eax, 536870912 ; 20000000H 00deb 85 c0 test eax, eax 00ded 0f 85 8f 00 00 00 jne $LN95@stbi__pars ; 5468 : #ifndef STBI_NO_FAILURE_STRINGS ; 5469 : // not threadsafe ; 5470 : static char invalid_chunk[] = "XXXX PNG chunk not known"; ; 5471 : invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); 00df3 8b 85 ec 05 00 00 mov eax, DWORD PTR c$8[rbp+4] 00df9 c1 e8 18 shr eax, 24 00dfc 25 ff 00 00 00 and eax, 255 ; 000000ffH 00e01 b9 01 00 00 00 mov ecx, 1 00e06 48 6b c9 00 imul rcx, rcx, 0 00e0a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 00e11 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5472 : invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); 00e14 8b 85 ec 05 00 00 mov eax, DWORD PTR c$8[rbp+4] 00e1a c1 e8 10 shr eax, 16 00e1d 25 ff 00 00 00 and eax, 255 ; 000000ffH 00e22 b9 01 00 00 00 mov ecx, 1 00e27 48 6b c9 01 imul rcx, rcx, 1 00e2b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 00e32 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5473 : invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); 00e35 8b 85 ec 05 00 00 mov eax, DWORD PTR c$8[rbp+4] 00e3b c1 e8 08 shr eax, 8 00e3e 25 ff 00 00 00 and eax, 255 ; 000000ffH 00e43 b9 01 00 00 00 mov ecx, 1 00e48 48 6b c9 02 imul rcx, rcx, 2 00e4c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 00e53 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5474 : invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); 00e56 8b 85 ec 05 00 00 mov eax, DWORD PTR c$8[rbp+4] 00e5c 25 ff 00 00 00 and eax, 255 ; 000000ffH 00e61 b9 01 00 00 00 mov ecx, 1 00e66 48 6b c9 03 imul rcx, rcx, 3 00e6a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 00e71 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5475 : #endif ; 5476 : return stbi__err(invalid_chunk, 00e74 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9 00e7b e8 00 00 00 00 call stbi__err 00e80 eb 25 jmp SHORT $LN1@stbi__pars $LN95@stbi__pars: ; 5477 : "PNG not supported: unknown PNG chunk type"); ; 5478 : } ; 5479 : stbi__skip(s, c.length); 00e82 8b 95 e8 05 00 00 mov edx, DWORD PTR c$8[rbp] 00e88 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00e8f e8 00 00 00 00 call stbi__skip 00e94 90 npad 1 $LN5@stbi__pars: ; 5480 : break; ; 5481 : } ; 5482 : // end of PNG chunk, read and skip CRC ; 5483 : stbi__get32be(s); 00e95 48 8b 8d c8 05 00 00 mov rcx, QWORD PTR s$[rbp] 00e9c e8 00 00 00 00 call stbi__get32be 00ea1 90 npad 1 ; 5484 : } 00ea2 e9 7b f2 ff ff jmp $LN2@stbi__pars $LN1@stbi__pars: ; 5485 : } 00ea7 48 8b f8 mov rdi, rax 00eaa 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] 00eae 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__parse_png_file$rtcFrameData 00eb5 e8 00 00 00 00 call _RTC_CheckStackVars 00eba 48 8b c7 mov rax, rdi 00ebd 48 8b 8d c0 09 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00ec4 48 33 cd xor rcx, rbp 00ec7 e8 00 00 00 00 call __security_check_cookie 00ecc 48 8d a5 d8 09 00 00 lea rsp, QWORD PTR [rbp+2520] 00ed3 5f pop rdi 00ed4 5d pop rbp 00ed5 c3 ret 0 stbi__parse_png_file ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__de_iphone _TEXT SEGMENT s$ = 8 i$ = 36 pixel_count$ = 68 p$ = 104 t$1 = 132 a$2 = 164 t$3 = 196 half$4 = 228 t$5 = 260 tv133 = 468 z$ = 512 stbi__de_iphone PROC ; COMDAT ; 5189 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 02 00 00 sub rsp, 520 ; 00000208H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 5190 : stbi__context *s = z->s; 00020 48 8b 85 00 02 00 00 mov rax, QWORD PTR z$[rbp] 00027 48 8b 00 mov rax, QWORD PTR [rax] 0002a 48 89 45 08 mov QWORD PTR s$[rbp], rax ; 5191 : stbi__uint32 i, pixel_count = s->img_x * s->img_y; 0002e 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00032 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00036 8b 00 mov eax, DWORD PTR [rax] 00038 0f af 41 04 imul eax, DWORD PTR [rcx+4] 0003c 89 45 44 mov DWORD PTR pixel_count$[rbp], eax ; 5192 : stbi_uc *p = z->out; 0003f 48 8b 85 00 02 00 00 mov rax, QWORD PTR z$[rbp] 00046 48 8b 40 18 mov rax, QWORD PTR [rax+24] 0004a 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5193 : ; 5194 : if (s->img_out_n == 3) { // convert bgr to rgb 0004e 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00052 83 78 0c 03 cmp DWORD PTR [rax+12], 3 00056 75 7c jne SHORT $LN11@stbi__de_i ; 5195 : for (i = 0; i < pixel_count; ++i) { 00058 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 0005f eb 08 jmp SHORT $LN4@stbi__de_i $LN2@stbi__de_i: 00061 8b 45 24 mov eax, DWORD PTR i$[rbp] 00064 ff c0 inc eax 00066 89 45 24 mov DWORD PTR i$[rbp], eax $LN4@stbi__de_i: 00069 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] 0006c 39 45 24 cmp DWORD PTR i$[rbp], eax 0006f 73 5e jae SHORT $LN3@stbi__de_i ; 5196 : stbi_uc t = p[0]; 00071 b8 01 00 00 00 mov eax, 1 00076 48 6b c0 00 imul rax, rax, 0 0007a 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 0007e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00082 88 85 84 00 00 00 mov BYTE PTR t$1[rbp], al ; 5197 : p[0] = p[2]; 00088 b8 01 00 00 00 mov eax, 1 0008d 48 6b c0 02 imul rax, rax, 2 00091 b9 01 00 00 00 mov ecx, 1 00096 48 6b c9 00 imul rcx, rcx, 0 0009a 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] 0009e 4c 8b 45 68 mov r8, QWORD PTR p$[rbp] 000a2 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 000a7 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5198 : p[2] = t; 000aa b8 01 00 00 00 mov eax, 1 000af 48 6b c0 02 imul rax, rax, 2 000b3 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 000b7 0f b6 95 84 00 00 00 movzx edx, BYTE PTR t$1[rbp] 000be 88 14 01 mov BYTE PTR [rcx+rax], dl ; 5199 : p += 3; 000c1 48 8b 45 68 mov rax, QWORD PTR p$[rbp] 000c5 48 83 c0 03 add rax, 3 000c9 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5200 : } 000cd eb 92 jmp SHORT $LN2@stbi__de_i $LN3@stbi__de_i: ; 5201 : } else { 000cf e9 59 02 00 00 jmp $LN12@stbi__de_i $LN11@stbi__de_i: ; 5202 : STBI_ASSERT(s->img_out_n == 4); 000d4 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 000d8 83 78 0c 04 cmp DWORD PTR [rax+12], 4 000dc 74 1c je SHORT $LN18@stbi__de_i 000de 41 b8 52 14 00 00 mov r8d, 5202 ; 00001452H 000e4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 000eb 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CE@GKIDJEJM@?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg?$AA_?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN@ 000f2 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 000f8 33 c0 xor eax, eax $LN18@stbi__de_i: ; 5203 : if (stbi__unpremultiply_on_load) { 000fa b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__unpremultiply_on_load_set 000ff 8b c0 mov eax, eax 00101 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00107 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00110 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00114 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 00118 74 25 je SHORT $LN19@stbi__de_i 0011a b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__unpremultiply_on_load_local 0011f 8b c0 mov eax, eax 00121 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00127 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00130 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00134 8b 04 08 mov eax, DWORD PTR [rax+rcx] 00137 89 85 d4 01 00 00 mov DWORD PTR tv133[rbp], eax 0013d eb 0c jmp SHORT $LN20@stbi__de_i $LN19@stbi__de_i: 0013f 8b 05 00 00 00 00 mov eax, DWORD PTR stbi__unpremultiply_on_load_global 00145 89 85 d4 01 00 00 mov DWORD PTR tv133[rbp], eax $LN20@stbi__de_i: 0014b 83 bd d4 01 00 00 00 cmp DWORD PTR tv133[rbp], 0 00152 0f 84 5e 01 00 00 je $LN13@stbi__de_i ; 5204 : // convert bgr to rgb and unpremultiply ; 5205 : for (i = 0; i < pixel_count; ++i) { 00158 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 0015f eb 08 jmp SHORT $LN7@stbi__de_i $LN5@stbi__de_i: 00161 8b 45 24 mov eax, DWORD PTR i$[rbp] 00164 ff c0 inc eax 00166 89 45 24 mov DWORD PTR i$[rbp], eax $LN7@stbi__de_i: 00169 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] 0016c 39 45 24 cmp DWORD PTR i$[rbp], eax 0016f 0f 83 3f 01 00 00 jae $LN6@stbi__de_i ; 5206 : stbi_uc a = p[3]; 00175 b8 01 00 00 00 mov eax, 1 0017a 48 6b c0 03 imul rax, rax, 3 0017e 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00182 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00186 88 85 a4 00 00 00 mov BYTE PTR a$2[rbp], al ; 5207 : stbi_uc t = p[0]; 0018c b8 01 00 00 00 mov eax, 1 00191 48 6b c0 00 imul rax, rax, 0 00195 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00199 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0019d 88 85 c4 00 00 00 mov BYTE PTR t$3[rbp], al ; 5208 : if (a) { 001a3 0f b6 85 a4 00 00 00 movzx eax, BYTE PTR a$2[rbp] 001aa 85 c0 test eax, eax 001ac 0f 84 b8 00 00 00 je $LN15@stbi__de_i ; 5209 : stbi_uc half = a / 2; 001b2 0f b6 85 a4 00 00 00 movzx eax, BYTE PTR a$2[rbp] 001b9 99 cdq 001ba 2b c2 sub eax, edx 001bc d1 f8 sar eax, 1 001be 88 85 e4 00 00 00 mov BYTE PTR half$4[rbp], al ; 5210 : p[0] = (p[2] * 255 + half) / a; 001c4 b8 01 00 00 00 mov eax, 1 001c9 48 6b c0 02 imul rax, rax, 2 001cd 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 001d1 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 001d5 69 c0 ff 00 00 00 imul eax, eax, 255 ; 000000ffH 001db 0f b6 8d e4 00 00 00 movzx ecx, BYTE PTR half$4[rbp] 001e2 03 c1 add eax, ecx 001e4 0f b6 8d a4 00 00 00 movzx ecx, BYTE PTR a$2[rbp] 001eb 99 cdq 001ec f7 f9 idiv ecx 001ee b9 01 00 00 00 mov ecx, 1 001f3 48 6b c9 00 imul rcx, rcx, 0 001f7 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] 001fb 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5211 : p[1] = (p[1] * 255 + half) / a; 001fe b8 01 00 00 00 mov eax, 1 00203 48 6b c0 01 imul rax, rax, 1 00207 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 0020b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0020f 69 c0 ff 00 00 00 imul eax, eax, 255 ; 000000ffH 00215 0f b6 8d e4 00 00 00 movzx ecx, BYTE PTR half$4[rbp] 0021c 03 c1 add eax, ecx 0021e 0f b6 8d a4 00 00 00 movzx ecx, BYTE PTR a$2[rbp] 00225 99 cdq 00226 f7 f9 idiv ecx 00228 b9 01 00 00 00 mov ecx, 1 0022d 48 6b c9 01 imul rcx, rcx, 1 00231 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] 00235 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5212 : p[2] = (t * 255 + half) / a; 00238 0f b6 85 c4 00 00 00 movzx eax, BYTE PTR t$3[rbp] 0023f 69 c0 ff 00 00 00 imul eax, eax, 255 ; 000000ffH 00245 0f b6 8d e4 00 00 00 movzx ecx, BYTE PTR half$4[rbp] 0024c 03 c1 add eax, ecx 0024e 0f b6 8d a4 00 00 00 movzx ecx, BYTE PTR a$2[rbp] 00255 99 cdq 00256 f7 f9 idiv ecx 00258 b9 01 00 00 00 mov ecx, 1 0025d 48 6b c9 02 imul rcx, rcx, 2 00261 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] 00265 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5213 : } else { 00268 eb 39 jmp SHORT $LN16@stbi__de_i $LN15@stbi__de_i: ; 5214 : p[0] = p[2]; 0026a b8 01 00 00 00 mov eax, 1 0026f 48 6b c0 02 imul rax, rax, 2 00273 b9 01 00 00 00 mov ecx, 1 00278 48 6b c9 00 imul rcx, rcx, 0 0027c 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] 00280 4c 8b 45 68 mov r8, QWORD PTR p$[rbp] 00284 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00289 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5215 : p[2] = t; 0028c b8 01 00 00 00 mov eax, 1 00291 48 6b c0 02 imul rax, rax, 2 00295 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00299 0f b6 95 c4 00 00 00 movzx edx, BYTE PTR t$3[rbp] 002a0 88 14 01 mov BYTE PTR [rcx+rax], dl $LN16@stbi__de_i: ; 5216 : } ; 5217 : p += 4; 002a3 48 8b 45 68 mov rax, QWORD PTR p$[rbp] 002a7 48 83 c0 04 add rax, 4 002ab 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5218 : } 002af e9 ad fe ff ff jmp $LN5@stbi__de_i $LN6@stbi__de_i: ; 5219 : } else { 002b4 eb 77 jmp SHORT $LN14@stbi__de_i $LN13@stbi__de_i: ; 5220 : // convert bgr to rgb ; 5221 : for (i = 0; i < pixel_count; ++i) { 002b6 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 002bd eb 08 jmp SHORT $LN10@stbi__de_i $LN8@stbi__de_i: 002bf 8b 45 24 mov eax, DWORD PTR i$[rbp] 002c2 ff c0 inc eax 002c4 89 45 24 mov DWORD PTR i$[rbp], eax $LN10@stbi__de_i: 002c7 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] 002ca 39 45 24 cmp DWORD PTR i$[rbp], eax 002cd 73 5e jae SHORT $LN9@stbi__de_i ; 5222 : stbi_uc t = p[0]; 002cf b8 01 00 00 00 mov eax, 1 002d4 48 6b c0 00 imul rax, rax, 0 002d8 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 002dc 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 002e0 88 85 04 01 00 00 mov BYTE PTR t$5[rbp], al ; 5223 : p[0] = p[2]; 002e6 b8 01 00 00 00 mov eax, 1 002eb 48 6b c0 02 imul rax, rax, 2 002ef b9 01 00 00 00 mov ecx, 1 002f4 48 6b c9 00 imul rcx, rcx, 0 002f8 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] 002fc 4c 8b 45 68 mov r8, QWORD PTR p$[rbp] 00300 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00305 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5224 : p[2] = t; 00308 b8 01 00 00 00 mov eax, 1 0030d 48 6b c0 02 imul rax, rax, 2 00311 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00315 0f b6 95 04 01 00 00 movzx edx, BYTE PTR t$5[rbp] 0031c 88 14 01 mov BYTE PTR [rcx+rax], dl ; 5225 : p += 4; 0031f 48 8b 45 68 mov rax, QWORD PTR p$[rbp] 00323 48 83 c0 04 add rax, 4 00327 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5226 : } 0032b eb 92 jmp SHORT $LN8@stbi__de_i $LN9@stbi__de_i: $LN14@stbi__de_i: $LN12@stbi__de_i: ; 5227 : } ; 5228 : } ; 5229 : } 0032d 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] 00334 5f pop rdi 00335 5d pop rbp 00336 c3 ret 0 stbi__de_iphone ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__expand_png_palette _TEXT SEGMENT i$ = 4 pixel_count$ = 36 p$ = 72 temp_out$ = 104 orig$ = 136 n$1 = 164 n$2 = 196 a$ = 448 palette$ = 456 len$ = 464 pal_img_n$ = 472 stbi__expand_png_palette PROC ; COMDAT ; 5112 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec c8 01 00 00 sub rsp, 456 ; 000001c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 5113 : stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; 0002f 48 8b 85 c0 01 00 00 mov rax, QWORD PTR a$[rbp] 00036 48 8b 00 mov rax, QWORD PTR [rax] 00039 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR a$[rbp] 00040 48 8b 09 mov rcx, QWORD PTR [rcx] 00043 8b 00 mov eax, DWORD PTR [rax] 00045 0f af 41 04 imul eax, DWORD PTR [rcx+4] 00049 89 45 24 mov DWORD PTR pixel_count$[rbp], eax ; 5114 : stbi_uc *p, *temp_out, *orig = a->out; 0004c 48 8b 85 c0 01 00 00 mov rax, QWORD PTR a$[rbp] 00053 48 8b 40 18 mov rax, QWORD PTR [rax+24] 00057 48 89 85 88 00 00 00 mov QWORD PTR orig$[rbp], rax ; 5115 : ; 5116 : p = (stbi_uc *)stbi__malloc_mad2(pixel_count, pal_img_n, 0); 0005e 45 33 c0 xor r8d, r8d 00061 8b 95 d8 01 00 00 mov edx, DWORD PTR pal_img_n$[rbp] 00067 8b 4d 24 mov ecx, DWORD PTR pixel_count$[rbp] 0006a e8 00 00 00 00 call stbi__malloc_mad2 0006f 48 89 45 48 mov QWORD PTR p$[rbp], rax ; 5117 : if (p == NULL) 00073 48 83 7d 48 00 cmp QWORD PTR p$[rbp], 0 00078 75 11 jne SHORT $LN8@stbi__expa ; 5118 : return stbi__err("outofmem", "Out of memory"); 0007a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00081 e8 00 00 00 00 call stbi__err 00086 e9 d1 01 00 00 jmp $LN1@stbi__expa $LN8@stbi__expa: ; 5119 : ; 5120 : // between here and free(out) below, exitting would leak ; 5121 : temp_out = p; 0008b 48 8b 45 48 mov rax, QWORD PTR p$[rbp] 0008f 48 89 45 68 mov QWORD PTR temp_out$[rbp], rax ; 5122 : ; 5123 : if (pal_img_n == 3) { 00093 83 bd d8 01 00 00 03 cmp DWORD PTR pal_img_n$[rbp], 3 0009a 0f 85 ba 00 00 00 jne $LN9@stbi__expa ; 5124 : for (i = 0; i < pixel_count; ++i) { 000a0 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 000a7 eb 08 jmp SHORT $LN4@stbi__expa $LN2@stbi__expa: 000a9 8b 45 04 mov eax, DWORD PTR i$[rbp] 000ac ff c0 inc eax 000ae 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__expa: 000b1 8b 45 24 mov eax, DWORD PTR pixel_count$[rbp] 000b4 39 45 04 cmp DWORD PTR i$[rbp], eax 000b7 0f 83 98 00 00 00 jae $LN3@stbi__expa ; 5125 : int n = orig[i] * 4; 000bd 8b 45 04 mov eax, DWORD PTR i$[rbp] 000c0 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR orig$[rbp] 000c7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 000cb c1 e0 02 shl eax, 2 000ce 89 85 a4 00 00 00 mov DWORD PTR n$1[rbp], eax ; 5126 : p[0] = palette[n]; 000d4 48 63 85 a4 00 00 00 movsxd rax, DWORD PTR n$1[rbp] 000db b9 01 00 00 00 mov ecx, 1 000e0 48 6b c9 00 imul rcx, rcx, 0 000e4 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] 000e8 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR palette$[rbp] 000ef 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 000f4 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5127 : p[1] = palette[n + 1]; 000f7 8b 85 a4 00 00 00 mov eax, DWORD PTR n$1[rbp] 000fd ff c0 inc eax 000ff 48 98 cdqe 00101 b9 01 00 00 00 mov ecx, 1 00106 48 6b c9 01 imul rcx, rcx, 1 0010a 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] 0010e 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR palette$[rbp] 00115 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0011a 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5128 : p[2] = palette[n + 2]; 0011d 8b 85 a4 00 00 00 mov eax, DWORD PTR n$1[rbp] 00123 83 c0 02 add eax, 2 00126 48 98 cdqe 00128 b9 01 00 00 00 mov ecx, 1 0012d 48 6b c9 02 imul rcx, rcx, 2 00131 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] 00135 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR palette$[rbp] 0013c 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00141 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5129 : p += 3; 00144 48 8b 45 48 mov rax, QWORD PTR p$[rbp] 00148 48 83 c0 03 add rax, 3 0014c 48 89 45 48 mov QWORD PTR p$[rbp], rax ; 5130 : } 00150 e9 54 ff ff ff jmp $LN2@stbi__expa $LN3@stbi__expa: ; 5131 : } else { 00155 e9 dc 00 00 00 jmp $LN10@stbi__expa $LN9@stbi__expa: ; 5132 : for (i = 0; i < pixel_count; ++i) { 0015a c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00161 eb 08 jmp SHORT $LN7@stbi__expa $LN5@stbi__expa: 00163 8b 45 04 mov eax, DWORD PTR i$[rbp] 00166 ff c0 inc eax 00168 89 45 04 mov DWORD PTR i$[rbp], eax $LN7@stbi__expa: 0016b 8b 45 24 mov eax, DWORD PTR pixel_count$[rbp] 0016e 39 45 04 cmp DWORD PTR i$[rbp], eax 00171 0f 83 bf 00 00 00 jae $LN6@stbi__expa ; 5133 : int n = orig[i] * 4; 00177 8b 45 04 mov eax, DWORD PTR i$[rbp] 0017a 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR orig$[rbp] 00181 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00185 c1 e0 02 shl eax, 2 00188 89 85 c4 00 00 00 mov DWORD PTR n$2[rbp], eax ; 5134 : p[0] = palette[n]; 0018e 48 63 85 c4 00 00 00 movsxd rax, DWORD PTR n$2[rbp] 00195 b9 01 00 00 00 mov ecx, 1 0019a 48 6b c9 00 imul rcx, rcx, 0 0019e 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] 001a2 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR palette$[rbp] 001a9 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 001ae 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5135 : p[1] = palette[n + 1]; 001b1 8b 85 c4 00 00 00 mov eax, DWORD PTR n$2[rbp] 001b7 ff c0 inc eax 001b9 48 98 cdqe 001bb b9 01 00 00 00 mov ecx, 1 001c0 48 6b c9 01 imul rcx, rcx, 1 001c4 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] 001c8 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR palette$[rbp] 001cf 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 001d4 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5136 : p[2] = palette[n + 2]; 001d7 8b 85 c4 00 00 00 mov eax, DWORD PTR n$2[rbp] 001dd 83 c0 02 add eax, 2 001e0 48 98 cdqe 001e2 b9 01 00 00 00 mov ecx, 1 001e7 48 6b c9 02 imul rcx, rcx, 2 001eb 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] 001ef 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR palette$[rbp] 001f6 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 001fb 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5137 : p[3] = palette[n + 3]; 001fe 8b 85 c4 00 00 00 mov eax, DWORD PTR n$2[rbp] 00204 83 c0 03 add eax, 3 00207 48 98 cdqe 00209 b9 01 00 00 00 mov ecx, 1 0020e 48 6b c9 03 imul rcx, rcx, 3 00212 48 8b 55 48 mov rdx, QWORD PTR p$[rbp] 00216 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR palette$[rbp] 0021d 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00222 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5138 : p += 4; 00225 48 8b 45 48 mov rax, QWORD PTR p$[rbp] 00229 48 83 c0 04 add rax, 4 0022d 48 89 45 48 mov QWORD PTR p$[rbp], rax ; 5139 : } 00231 e9 2d ff ff ff jmp $LN5@stbi__expa $LN6@stbi__expa: $LN10@stbi__expa: ; 5140 : } ; 5141 : STBI_FREE(a->out); 00236 48 8b 85 c0 01 00 00 mov rax, QWORD PTR a$[rbp] 0023d 48 8b 48 18 mov rcx, QWORD PTR [rax+24] 00241 ff 15 00 00 00 00 call QWORD PTR __imp_free 00247 90 npad 1 ; 5142 : a->out = temp_out; 00248 48 8b 85 c0 01 00 00 mov rax, QWORD PTR a$[rbp] 0024f 48 8b 4d 68 mov rcx, QWORD PTR temp_out$[rbp] 00253 48 89 48 18 mov QWORD PTR [rax+24], rcx ; 5143 : ; 5144 : STBI_NOTUSED(len); ; 5145 : ; 5146 : return 1; 00257 b8 01 00 00 00 mov eax, 1 $LN1@stbi__expa: ; 5147 : } 0025c 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] 00263 5f pop rdi 00264 5d pop rbp 00265 c3 ret 0 stbi__expand_png_palette ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__compute_transparency16 _TEXT SEGMENT s$ = 8 i$ = 36 pixel_count$ = 68 p$ = 104 tv87 = 308 z$ = 352 tc$ = 360 out_n$ = 368 stbi__compute_transparency16 PROC ; COMDAT ; 5087 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 5088 : stbi__context *s = z->s; 0002a 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 00031 48 8b 00 mov rax, QWORD PTR [rax] 00034 48 89 45 08 mov QWORD PTR s$[rbp], rax ; 5089 : stbi__uint32 i, pixel_count = s->img_x * s->img_y; 00038 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 0003c 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00040 8b 00 mov eax, DWORD PTR [rax] 00042 0f af 41 04 imul eax, DWORD PTR [rcx+4] 00046 89 45 44 mov DWORD PTR pixel_count$[rbp], eax ; 5090 : stbi__uint16 *p = (stbi__uint16 *)z->out; 00049 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 00050 48 8b 40 18 mov rax, QWORD PTR [rax+24] 00054 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5091 : ; 5092 : // compute color-based transparency, assuming we've ; 5093 : // already got 65535 as the alpha value in the output ; 5094 : STBI_ASSERT(out_n == 2 || out_n == 4); 00058 83 bd 70 01 00 00 02 cmp DWORD PTR out_n$[rbp], 2 0005f 74 25 je SHORT $LN12@stbi__comp 00061 83 bd 70 01 00 00 04 cmp DWORD PTR out_n$[rbp], 4 00068 74 1c je SHORT $LN12@stbi__comp 0006a 41 b8 e6 13 00 00 mov r8d, 5094 ; 000013e6H 00070 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00077 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ 0007e ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00084 33 c0 xor eax, eax $LN12@stbi__comp: ; 5095 : ; 5096 : if (out_n == 2) { 00086 83 bd 70 01 00 00 02 cmp DWORD PTR out_n$[rbp], 2 0008d 0f 85 83 00 00 00 jne $LN8@stbi__comp ; 5097 : for (i = 0; i < pixel_count; ++i) { 00093 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 0009a eb 08 jmp SHORT $LN4@stbi__comp $LN2@stbi__comp: 0009c 8b 45 24 mov eax, DWORD PTR i$[rbp] 0009f ff c0 inc eax 000a1 89 45 24 mov DWORD PTR i$[rbp], eax $LN4@stbi__comp: 000a4 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] 000a7 39 45 24 cmp DWORD PTR i$[rbp], eax 000aa 73 65 jae SHORT $LN3@stbi__comp ; 5098 : p[1] = (p[0] == tc[0] ? 0 : 65535); 000ac b8 02 00 00 00 mov eax, 2 000b1 48 6b c0 00 imul rax, rax, 0 000b5 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 000b9 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 000bd b9 02 00 00 00 mov ecx, 2 000c2 48 6b c9 00 imul rcx, rcx, 0 000c6 48 8b 95 68 01 00 00 mov rdx, QWORD PTR tc$[rbp] 000cd 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] 000d1 3b c1 cmp eax, ecx 000d3 75 0c jne SHORT $LN13@stbi__comp 000d5 c7 85 34 01 00 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 000df eb 0a jmp SHORT $LN14@stbi__comp $LN13@stbi__comp: 000e1 c7 85 34 01 00 00 ff ff 00 00 mov DWORD PTR tv87[rbp], 65535 ; 0000ffffH $LN14@stbi__comp: 000eb b8 02 00 00 00 mov eax, 2 000f0 48 6b c0 01 imul rax, rax, 1 000f4 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 000f8 0f b7 95 34 01 00 00 movzx edx, WORD PTR tv87[rbp] 000ff 66 89 14 01 mov WORD PTR [rcx+rax], dx ; 5099 : p += 2; 00103 48 8b 45 68 mov rax, QWORD PTR p$[rbp] 00107 48 83 c0 04 add rax, 4 0010b 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5100 : } 0010f eb 8b jmp SHORT $LN2@stbi__comp $LN3@stbi__comp: ; 5101 : } else { 00111 e9 bc 00 00 00 jmp $LN9@stbi__comp $LN8@stbi__comp: ; 5102 : for (i = 0; i < pixel_count; ++i) { 00116 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 0011d eb 08 jmp SHORT $LN7@stbi__comp $LN5@stbi__comp: 0011f 8b 45 24 mov eax, DWORD PTR i$[rbp] 00122 ff c0 inc eax 00124 89 45 24 mov DWORD PTR i$[rbp], eax $LN7@stbi__comp: 00127 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] 0012a 39 45 24 cmp DWORD PTR i$[rbp], eax 0012d 0f 83 9f 00 00 00 jae $LN6@stbi__comp ; 5103 : if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) 00133 b8 02 00 00 00 mov eax, 2 00138 48 6b c0 00 imul rax, rax, 0 0013c 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00140 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 00144 b9 02 00 00 00 mov ecx, 2 00149 48 6b c9 00 imul rcx, rcx, 0 0014d 48 8b 95 68 01 00 00 mov rdx, QWORD PTR tc$[rbp] 00154 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] 00158 3b c1 cmp eax, ecx 0015a 75 65 jne SHORT $LN10@stbi__comp 0015c b8 02 00 00 00 mov eax, 2 00161 48 6b c0 01 imul rax, rax, 1 00165 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00169 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 0016d b9 02 00 00 00 mov ecx, 2 00172 48 6b c9 01 imul rcx, rcx, 1 00176 48 8b 95 68 01 00 00 mov rdx, QWORD PTR tc$[rbp] 0017d 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] 00181 3b c1 cmp eax, ecx 00183 75 3c jne SHORT $LN10@stbi__comp 00185 b8 02 00 00 00 mov eax, 2 0018a 48 6b c0 02 imul rax, rax, 2 0018e 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00192 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 00196 b9 02 00 00 00 mov ecx, 2 0019b 48 6b c9 02 imul rcx, rcx, 2 0019f 48 8b 95 68 01 00 00 mov rdx, QWORD PTR tc$[rbp] 001a6 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] 001aa 3b c1 cmp eax, ecx 001ac 75 13 jne SHORT $LN10@stbi__comp ; 5104 : p[3] = 0; 001ae b8 02 00 00 00 mov eax, 2 001b3 48 6b c0 03 imul rax, rax, 3 001b7 33 c9 xor ecx, ecx 001b9 48 8b 55 68 mov rdx, QWORD PTR p$[rbp] 001bd 66 89 0c 02 mov WORD PTR [rdx+rax], cx $LN10@stbi__comp: ; 5105 : p += 4; 001c1 48 8b 45 68 mov rax, QWORD PTR p$[rbp] 001c5 48 83 c0 08 add rax, 8 001c9 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5106 : } 001cd e9 4d ff ff ff jmp $LN5@stbi__comp $LN6@stbi__comp: $LN9@stbi__comp: ; 5107 : } ; 5108 : return 1; 001d2 b8 01 00 00 00 mov eax, 1 ; 5109 : } 001d7 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 001de 5f pop rdi 001df 5d pop rbp 001e0 c3 ret 0 stbi__compute_transparency16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__compute_transparency _TEXT SEGMENT s$ = 8 i$ = 36 pixel_count$ = 68 p$ = 104 tv87 = 308 z$ = 352 tc$ = 360 out_n$ = 368 stbi__compute_transparency PROC ; COMDAT ; 5062 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 5063 : stbi__context *s = z->s; 0002a 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 00031 48 8b 00 mov rax, QWORD PTR [rax] 00034 48 89 45 08 mov QWORD PTR s$[rbp], rax ; 5064 : stbi__uint32 i, pixel_count = s->img_x * s->img_y; 00038 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 0003c 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00040 8b 00 mov eax, DWORD PTR [rax] 00042 0f af 41 04 imul eax, DWORD PTR [rcx+4] 00046 89 45 44 mov DWORD PTR pixel_count$[rbp], eax ; 5065 : stbi_uc *p = z->out; 00049 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 00050 48 8b 40 18 mov rax, QWORD PTR [rax+24] 00054 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5066 : ; 5067 : // compute color-based transparency, assuming we've ; 5068 : // already got 255 as the alpha value in the output ; 5069 : STBI_ASSERT(out_n == 2 || out_n == 4); 00058 83 bd 70 01 00 00 02 cmp DWORD PTR out_n$[rbp], 2 0005f 74 25 je SHORT $LN12@stbi__comp 00061 83 bd 70 01 00 00 04 cmp DWORD PTR out_n$[rbp], 4 00068 74 1c je SHORT $LN12@stbi__comp 0006a 41 b8 cd 13 00 00 mov r8d, 5069 ; 000013cdH 00070 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00077 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1DC@BMIDKOPK@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA2?$AA?5?$AA?$HM?$AA?$HM?$AA?5?$AAo@ 0007e ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00084 33 c0 xor eax, eax $LN12@stbi__comp: ; 5070 : ; 5071 : if (out_n == 2) { 00086 83 bd 70 01 00 00 02 cmp DWORD PTR out_n$[rbp], 2 0008d 0f 85 82 00 00 00 jne $LN8@stbi__comp ; 5072 : for (i = 0; i < pixel_count; ++i) { 00093 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 0009a eb 08 jmp SHORT $LN4@stbi__comp $LN2@stbi__comp: 0009c 8b 45 24 mov eax, DWORD PTR i$[rbp] 0009f ff c0 inc eax 000a1 89 45 24 mov DWORD PTR i$[rbp], eax $LN4@stbi__comp: 000a4 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] 000a7 39 45 24 cmp DWORD PTR i$[rbp], eax 000aa 73 64 jae SHORT $LN3@stbi__comp ; 5073 : p[1] = (p[0] == tc[0] ? 0 : 255); 000ac b8 01 00 00 00 mov eax, 1 000b1 48 6b c0 00 imul rax, rax, 0 000b5 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 000b9 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 000bd b9 01 00 00 00 mov ecx, 1 000c2 48 6b c9 00 imul rcx, rcx, 0 000c6 48 8b 95 68 01 00 00 mov rdx, QWORD PTR tc$[rbp] 000cd 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 000d1 3b c1 cmp eax, ecx 000d3 75 0c jne SHORT $LN13@stbi__comp 000d5 c7 85 34 01 00 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 000df eb 0a jmp SHORT $LN14@stbi__comp $LN13@stbi__comp: 000e1 c7 85 34 01 00 00 ff 00 00 00 mov DWORD PTR tv87[rbp], 255 ; 000000ffH $LN14@stbi__comp: 000eb b8 01 00 00 00 mov eax, 1 000f0 48 6b c0 01 imul rax, rax, 1 000f4 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 000f8 0f b6 95 34 01 00 00 movzx edx, BYTE PTR tv87[rbp] 000ff 88 14 01 mov BYTE PTR [rcx+rax], dl ; 5074 : p += 2; 00102 48 8b 45 68 mov rax, QWORD PTR p$[rbp] 00106 48 83 c0 02 add rax, 2 0010a 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5075 : } 0010e eb 8c jmp SHORT $LN2@stbi__comp $LN3@stbi__comp: ; 5076 : } else { 00110 e9 ba 00 00 00 jmp $LN9@stbi__comp $LN8@stbi__comp: ; 5077 : for (i = 0; i < pixel_count; ++i) { 00115 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 0011c eb 08 jmp SHORT $LN7@stbi__comp $LN5@stbi__comp: 0011e 8b 45 24 mov eax, DWORD PTR i$[rbp] 00121 ff c0 inc eax 00123 89 45 24 mov DWORD PTR i$[rbp], eax $LN7@stbi__comp: 00126 8b 45 44 mov eax, DWORD PTR pixel_count$[rbp] 00129 39 45 24 cmp DWORD PTR i$[rbp], eax 0012c 0f 83 9d 00 00 00 jae $LN6@stbi__comp ; 5078 : if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) 00132 b8 01 00 00 00 mov eax, 1 00137 48 6b c0 00 imul rax, rax, 0 0013b 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 0013f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00143 b9 01 00 00 00 mov ecx, 1 00148 48 6b c9 00 imul rcx, rcx, 0 0014c 48 8b 95 68 01 00 00 mov rdx, QWORD PTR tc$[rbp] 00153 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00157 3b c1 cmp eax, ecx 00159 75 63 jne SHORT $LN10@stbi__comp 0015b b8 01 00 00 00 mov eax, 1 00160 48 6b c0 01 imul rax, rax, 1 00164 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00168 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0016c b9 01 00 00 00 mov ecx, 1 00171 48 6b c9 01 imul rcx, rcx, 1 00175 48 8b 95 68 01 00 00 mov rdx, QWORD PTR tc$[rbp] 0017c 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00180 3b c1 cmp eax, ecx 00182 75 3a jne SHORT $LN10@stbi__comp 00184 b8 01 00 00 00 mov eax, 1 00189 48 6b c0 02 imul rax, rax, 2 0018d 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 00191 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00195 b9 01 00 00 00 mov ecx, 1 0019a 48 6b c9 02 imul rcx, rcx, 2 0019e 48 8b 95 68 01 00 00 mov rdx, QWORD PTR tc$[rbp] 001a5 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 001a9 3b c1 cmp eax, ecx 001ab 75 11 jne SHORT $LN10@stbi__comp ; 5079 : p[3] = 0; 001ad b8 01 00 00 00 mov eax, 1 001b2 48 6b c0 03 imul rax, rax, 3 001b6 48 8b 4d 68 mov rcx, QWORD PTR p$[rbp] 001ba c6 04 01 00 mov BYTE PTR [rcx+rax], 0 $LN10@stbi__comp: ; 5080 : p += 4; 001be 48 8b 45 68 mov rax, QWORD PTR p$[rbp] 001c2 48 83 c0 04 add rax, 4 001c6 48 89 45 68 mov QWORD PTR p$[rbp], rax ; 5081 : } 001ca e9 4f ff ff ff jmp $LN5@stbi__comp $LN6@stbi__comp: $LN9@stbi__comp: ; 5082 : } ; 5083 : return 1; 001cf b8 01 00 00 00 mov eax, 1 ; 5084 : } 001d4 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 001db 5f pop rdi 001dc 5d pop rbp 001dd c3 ret 0 stbi__compute_transparency ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__create_png_image _TEXT SEGMENT bytes$ = 4 out_bytes$ = 36 final$ = 72 p$ = 100 xorig$7 = 136 yorig$8 = 200 xspc$9 = 264 yspc$10 = 328 i$11 = 388 j$12 = 420 x$13 = 452 y$14 = 484 img_len$15 = 516 out_y$16 = 548 out_x$17 = 580 tv65 = 980 tv280 = 984 a$ = 1024 image_data$ = 1032 image_data_len$ = 1040 out_n$ = 1048 depth$ = 1056 color$ = 1064 interlaced$ = 1072 stbi__create_png_image PROC ; COMDAT ; 5013 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 04 00 00 sub rsp, 1064 ; 00000428H 0001d 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] 00022 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] 00027 b9 9a 00 00 00 mov ecx, 154 ; 0000009aH 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 48 04 00 00 mov rcx, QWORD PTR [rsp+1096] 0003b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00047 90 npad 1 ; 5014 : int bytes = (depth == 16 ? 2 : 1); 00048 83 bd 20 04 00 00 10 cmp DWORD PTR depth$[rbp], 16 0004f 75 0c jne SHORT $LN16@stbi__crea 00051 c7 85 d4 03 00 00 02 00 00 00 mov DWORD PTR tv65[rbp], 2 0005b eb 0a jmp SHORT $LN17@stbi__crea $LN16@stbi__crea: 0005d c7 85 d4 03 00 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 $LN17@stbi__crea: 00067 8b 85 d4 03 00 00 mov eax, DWORD PTR tv65[rbp] 0006d 89 45 04 mov DWORD PTR bytes$[rbp], eax ; 5015 : int out_bytes = out_n * bytes; 00070 8b 85 18 04 00 00 mov eax, DWORD PTR out_n$[rbp] 00076 0f af 45 04 imul eax, DWORD PTR bytes$[rbp] 0007a 89 45 24 mov DWORD PTR out_bytes$[rbp], eax ; 5016 : stbi_uc *final; ; 5017 : int p; ; 5018 : if (!interlaced) 0007d 83 bd 30 04 00 00 00 cmp DWORD PTR interlaced$[rbp], 0 00084 75 5b jne SHORT $LN11@stbi__crea ; 5019 : return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, 00086 48 8b 85 00 04 00 00 mov rax, QWORD PTR a$[rbp] 0008d 48 8b 00 mov rax, QWORD PTR [rax] 00090 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR a$[rbp] 00097 48 8b 09 mov rcx, QWORD PTR [rcx] 0009a 8b 95 28 04 00 00 mov edx, DWORD PTR color$[rbp] 000a0 89 54 24 38 mov DWORD PTR [rsp+56], edx 000a4 8b 95 20 04 00 00 mov edx, DWORD PTR depth$[rbp] 000aa 89 54 24 30 mov DWORD PTR [rsp+48], edx 000ae 8b 40 04 mov eax, DWORD PTR [rax+4] 000b1 89 44 24 28 mov DWORD PTR [rsp+40], eax 000b5 8b 01 mov eax, DWORD PTR [rcx] 000b7 89 44 24 20 mov DWORD PTR [rsp+32], eax 000bb 44 8b 8d 18 04 00 00 mov r9d, DWORD PTR out_n$[rbp] 000c2 44 8b 85 10 04 00 00 mov r8d, DWORD PTR image_data_len$[rbp] 000c9 48 8b 95 08 04 00 00 mov rdx, QWORD PTR image_data$[rbp] 000d0 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR a$[rbp] 000d7 e8 00 00 00 00 call stbi__create_png_image_raw 000dc e9 1b 04 00 00 jmp $LN1@stbi__crea $LN11@stbi__crea: ; 5020 : a->s->img_y, depth, color); ; 5021 : ; 5022 : // de-interlacing ; 5023 : final = (stbi_uc *)stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); 000e1 48 8b 85 00 04 00 00 mov rax, QWORD PTR a$[rbp] 000e8 48 8b 00 mov rax, QWORD PTR [rax] 000eb 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR a$[rbp] 000f2 48 8b 09 mov rcx, QWORD PTR [rcx] 000f5 45 33 c9 xor r9d, r9d 000f8 44 8b 45 24 mov r8d, DWORD PTR out_bytes$[rbp] 000fc 8b 50 04 mov edx, DWORD PTR [rax+4] 000ff 8b 09 mov ecx, DWORD PTR [rcx] 00101 e8 00 00 00 00 call stbi__malloc_mad3 00106 48 89 45 48 mov QWORD PTR final$[rbp], rax ; 5024 : if (!final) 0010a 48 83 7d 48 00 cmp QWORD PTR final$[rbp], 0 0010f 75 11 jne SHORT $LN12@stbi__crea ; 5025 : return stbi__err("outofmem", "Out of memory"); 00111 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00118 e8 00 00 00 00 call stbi__err 0011d e9 da 03 00 00 jmp $LN1@stbi__crea $LN12@stbi__crea: ; 5026 : for (p = 0; p < 7; ++p) { 00122 c7 45 64 00 00 00 00 mov DWORD PTR p$[rbp], 0 00129 eb 08 jmp SHORT $LN4@stbi__crea $LN2@stbi__crea: 0012b 8b 45 64 mov eax, DWORD PTR p$[rbp] 0012e ff c0 inc eax 00130 89 45 64 mov DWORD PTR p$[rbp], eax $LN4@stbi__crea: 00133 83 7d 64 07 cmp DWORD PTR p$[rbp], 7 00137 0f 8d ab 03 00 00 jge $LN3@stbi__crea ; 5027 : int xorig[] = { 0, 4, 0, 2, 0, 1, 0 }; 0013d c7 85 88 00 00 00 00 00 00 00 mov DWORD PTR xorig$7[rbp], 0 00147 c7 85 8c 00 00 00 04 00 00 00 mov DWORD PTR xorig$7[rbp+4], 4 00151 c7 85 90 00 00 00 00 00 00 00 mov DWORD PTR xorig$7[rbp+8], 0 0015b c7 85 94 00 00 00 02 00 00 00 mov DWORD PTR xorig$7[rbp+12], 2 00165 c7 85 98 00 00 00 00 00 00 00 mov DWORD PTR xorig$7[rbp+16], 0 0016f c7 85 9c 00 00 00 01 00 00 00 mov DWORD PTR xorig$7[rbp+20], 1 00179 c7 85 a0 00 00 00 00 00 00 00 mov DWORD PTR xorig$7[rbp+24], 0 ; 5028 : int yorig[] = { 0, 0, 4, 0, 2, 0, 1 }; 00183 c7 85 c8 00 00 00 00 00 00 00 mov DWORD PTR yorig$8[rbp], 0 0018d c7 85 cc 00 00 00 00 00 00 00 mov DWORD PTR yorig$8[rbp+4], 0 00197 c7 85 d0 00 00 00 04 00 00 00 mov DWORD PTR yorig$8[rbp+8], 4 001a1 c7 85 d4 00 00 00 00 00 00 00 mov DWORD PTR yorig$8[rbp+12], 0 001ab c7 85 d8 00 00 00 02 00 00 00 mov DWORD PTR yorig$8[rbp+16], 2 001b5 c7 85 dc 00 00 00 00 00 00 00 mov DWORD PTR yorig$8[rbp+20], 0 001bf c7 85 e0 00 00 00 01 00 00 00 mov DWORD PTR yorig$8[rbp+24], 1 ; 5029 : int xspc[] = { 8, 8, 4, 4, 2, 2, 1 }; 001c9 c7 85 08 01 00 00 08 00 00 00 mov DWORD PTR xspc$9[rbp], 8 001d3 c7 85 0c 01 00 00 08 00 00 00 mov DWORD PTR xspc$9[rbp+4], 8 001dd c7 85 10 01 00 00 04 00 00 00 mov DWORD PTR xspc$9[rbp+8], 4 001e7 c7 85 14 01 00 00 04 00 00 00 mov DWORD PTR xspc$9[rbp+12], 4 001f1 c7 85 18 01 00 00 02 00 00 00 mov DWORD PTR xspc$9[rbp+16], 2 001fb c7 85 1c 01 00 00 02 00 00 00 mov DWORD PTR xspc$9[rbp+20], 2 00205 c7 85 20 01 00 00 01 00 00 00 mov DWORD PTR xspc$9[rbp+24], 1 ; 5030 : int yspc[] = { 8, 8, 8, 4, 4, 2, 2 }; 0020f c7 85 48 01 00 00 08 00 00 00 mov DWORD PTR yspc$10[rbp], 8 00219 c7 85 4c 01 00 00 08 00 00 00 mov DWORD PTR yspc$10[rbp+4], 8 00223 c7 85 50 01 00 00 08 00 00 00 mov DWORD PTR yspc$10[rbp+8], 8 0022d c7 85 54 01 00 00 04 00 00 00 mov DWORD PTR yspc$10[rbp+12], 4 00237 c7 85 58 01 00 00 04 00 00 00 mov DWORD PTR yspc$10[rbp+16], 4 00241 c7 85 5c 01 00 00 02 00 00 00 mov DWORD PTR yspc$10[rbp+20], 2 0024b c7 85 60 01 00 00 02 00 00 00 mov DWORD PTR yspc$10[rbp+24], 2 ; 5031 : int i, j, x, y; ; 5032 : // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 ; 5033 : x = (a->s->img_x - xorig[p] + xspc[p] - 1) / xspc[p]; 00255 48 8b 85 00 04 00 00 mov rax, QWORD PTR a$[rbp] 0025c 48 8b 00 mov rax, QWORD PTR [rax] 0025f 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] 00263 8b 8c 8d 88 00 00 00 mov ecx, DWORD PTR xorig$7[rbp+rcx*4] 0026a 8b 00 mov eax, DWORD PTR [rax] 0026c 2b c1 sub eax, ecx 0026e 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] 00272 8b 8c 8d 08 01 00 00 mov ecx, DWORD PTR xspc$9[rbp+rcx*4] 00279 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] 0027d 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] 00281 33 d2 xor edx, edx 00283 f7 b4 8d 08 01 00 00 div DWORD PTR xspc$9[rbp+rcx*4] 0028a 89 85 c4 01 00 00 mov DWORD PTR x$13[rbp], eax ; 5034 : y = (a->s->img_y - yorig[p] + yspc[p] - 1) / yspc[p]; 00290 48 8b 85 00 04 00 00 mov rax, QWORD PTR a$[rbp] 00297 48 8b 00 mov rax, QWORD PTR [rax] 0029a 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] 0029e 8b 8c 8d c8 00 00 00 mov ecx, DWORD PTR yorig$8[rbp+rcx*4] 002a5 8b 40 04 mov eax, DWORD PTR [rax+4] 002a8 2b c1 sub eax, ecx 002aa 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] 002ae 8b 8c 8d 48 01 00 00 mov ecx, DWORD PTR yspc$10[rbp+rcx*4] 002b5 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] 002b9 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] 002bd 33 d2 xor edx, edx 002bf f7 b4 8d 48 01 00 00 div DWORD PTR yspc$10[rbp+rcx*4] 002c6 89 85 e4 01 00 00 mov DWORD PTR y$14[rbp], eax ; 5035 : if (x && y) { 002cc 83 bd c4 01 00 00 00 cmp DWORD PTR x$13[rbp], 0 002d3 0f 84 0a 02 00 00 je $LN13@stbi__crea 002d9 83 bd e4 01 00 00 00 cmp DWORD PTR y$14[rbp], 0 002e0 0f 84 fd 01 00 00 je $LN13@stbi__crea ; 5036 : stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; 002e6 48 8b 85 00 04 00 00 mov rax, QWORD PTR a$[rbp] 002ed 48 8b 00 mov rax, QWORD PTR [rax] 002f0 8b 40 08 mov eax, DWORD PTR [rax+8] 002f3 0f af 85 c4 01 00 00 imul eax, DWORD PTR x$13[rbp] 002fa 0f af 85 20 04 00 00 imul eax, DWORD PTR depth$[rbp] 00301 83 c0 07 add eax, 7 00304 c1 f8 03 sar eax, 3 00307 ff c0 inc eax 00309 0f af 85 e4 01 00 00 imul eax, DWORD PTR y$14[rbp] 00310 89 85 04 02 00 00 mov DWORD PTR img_len$15[rbp], eax ; 5037 : if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, 00316 8b 85 28 04 00 00 mov eax, DWORD PTR color$[rbp] 0031c 89 44 24 38 mov DWORD PTR [rsp+56], eax 00320 8b 85 20 04 00 00 mov eax, DWORD PTR depth$[rbp] 00326 89 44 24 30 mov DWORD PTR [rsp+48], eax 0032a 8b 85 e4 01 00 00 mov eax, DWORD PTR y$14[rbp] 00330 89 44 24 28 mov DWORD PTR [rsp+40], eax 00334 8b 85 c4 01 00 00 mov eax, DWORD PTR x$13[rbp] 0033a 89 44 24 20 mov DWORD PTR [rsp+32], eax 0033e 44 8b 8d 18 04 00 00 mov r9d, DWORD PTR out_n$[rbp] 00345 44 8b 85 10 04 00 00 mov r8d, DWORD PTR image_data_len$[rbp] 0034c 48 8b 95 08 04 00 00 mov rdx, QWORD PTR image_data$[rbp] 00353 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR a$[rbp] 0035a e8 00 00 00 00 call stbi__create_png_image_raw 0035f 85 c0 test eax, eax 00361 75 12 jne SHORT $LN14@stbi__crea ; 5038 : depth, color)) { ; 5039 : STBI_FREE(final); 00363 48 8b 4d 48 mov rcx, QWORD PTR final$[rbp] 00367 ff 15 00 00 00 00 call QWORD PTR __imp_free 0036d 90 npad 1 ; 5040 : return 0; 0036e 33 c0 xor eax, eax 00370 e9 87 01 00 00 jmp $LN1@stbi__crea $LN14@stbi__crea: ; 5041 : } ; 5042 : for (j = 0; j < y; ++j) { 00375 c7 85 a4 01 00 00 00 00 00 00 mov DWORD PTR j$12[rbp], 0 0037f eb 0e jmp SHORT $LN7@stbi__crea $LN5@stbi__crea: 00381 8b 85 a4 01 00 00 mov eax, DWORD PTR j$12[rbp] 00387 ff c0 inc eax 00389 89 85 a4 01 00 00 mov DWORD PTR j$12[rbp], eax $LN7@stbi__crea: 0038f 8b 85 e4 01 00 00 mov eax, DWORD PTR y$14[rbp] 00395 39 85 a4 01 00 00 cmp DWORD PTR j$12[rbp], eax 0039b 0f 8d 00 01 00 00 jge $LN6@stbi__crea ; 5043 : for (i = 0; i < x; ++i) { 003a1 c7 85 84 01 00 00 00 00 00 00 mov DWORD PTR i$11[rbp], 0 003ab eb 0e jmp SHORT $LN10@stbi__crea $LN8@stbi__crea: 003ad 8b 85 84 01 00 00 mov eax, DWORD PTR i$11[rbp] 003b3 ff c0 inc eax 003b5 89 85 84 01 00 00 mov DWORD PTR i$11[rbp], eax $LN10@stbi__crea: 003bb 8b 85 c4 01 00 00 mov eax, DWORD PTR x$13[rbp] 003c1 39 85 84 01 00 00 cmp DWORD PTR i$11[rbp], eax 003c7 0f 8d cf 00 00 00 jge $LN9@stbi__crea ; 5044 : int out_y = j * yspc[p] + yorig[p]; 003cd 48 63 45 64 movsxd rax, DWORD PTR p$[rbp] 003d1 8b 8d a4 01 00 00 mov ecx, DWORD PTR j$12[rbp] 003d7 0f af 8c 85 48 01 00 00 imul ecx, DWORD PTR yspc$10[rbp+rax*4] 003df 8b c1 mov eax, ecx 003e1 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] 003e5 03 84 8d c8 00 00 00 add eax, DWORD PTR yorig$8[rbp+rcx*4] 003ec 89 85 24 02 00 00 mov DWORD PTR out_y$16[rbp], eax ; 5045 : int out_x = i * xspc[p] + xorig[p]; 003f2 48 63 45 64 movsxd rax, DWORD PTR p$[rbp] 003f6 8b 8d 84 01 00 00 mov ecx, DWORD PTR i$11[rbp] 003fc 0f af 8c 85 08 01 00 00 imul ecx, DWORD PTR xspc$9[rbp+rax*4] 00404 8b c1 mov eax, ecx 00406 48 63 4d 64 movsxd rcx, DWORD PTR p$[rbp] 0040a 03 84 8d 88 00 00 00 add eax, DWORD PTR xorig$7[rbp+rcx*4] 00411 89 85 44 02 00 00 mov DWORD PTR out_x$17[rbp], eax ; 5046 : memcpy(final + out_y * a->s->img_x * out_bytes + 00417 48 63 45 24 movsxd rax, DWORD PTR out_bytes$[rbp] 0041b 8b 8d a4 01 00 00 mov ecx, DWORD PTR j$12[rbp] 00421 0f af 8d c4 01 00 00 imul ecx, DWORD PTR x$13[rbp] 00428 03 8d 84 01 00 00 add ecx, DWORD PTR i$11[rbp] 0042e 0f af 4d 24 imul ecx, DWORD PTR out_bytes$[rbp] 00432 48 63 c9 movsxd rcx, ecx 00435 48 8b 95 00 04 00 00 mov rdx, QWORD PTR a$[rbp] 0043c 48 03 4a 18 add rcx, QWORD PTR [rdx+24] 00440 48 8b 95 00 04 00 00 mov rdx, QWORD PTR a$[rbp] 00447 48 8b 12 mov rdx, QWORD PTR [rdx] 0044a 44 8b 85 24 02 00 00 mov r8d, DWORD PTR out_y$16[rbp] 00451 44 0f af 02 imul r8d, DWORD PTR [rdx] 00455 41 8b d0 mov edx, r8d 00458 0f af 55 24 imul edx, DWORD PTR out_bytes$[rbp] 0045c 8b d2 mov edx, edx 0045e 4c 8b 45 48 mov r8, QWORD PTR final$[rbp] 00462 4c 03 c2 add r8, rdx 00465 49 8b d0 mov rdx, r8 00468 44 8b 85 44 02 00 00 mov r8d, DWORD PTR out_x$17[rbp] 0046f 44 0f af 45 24 imul r8d, DWORD PTR out_bytes$[rbp] 00474 4d 63 c0 movsxd r8, r8d 00477 49 03 d0 add rdx, r8 0047a 48 89 95 d8 03 00 00 mov QWORD PTR tv280[rbp], rdx 00481 4c 8b c0 mov r8, rax 00484 48 8b d1 mov rdx, rcx 00487 48 8b 85 d8 03 00 00 mov rax, QWORD PTR tv280[rbp] 0048e 48 8b c8 mov rcx, rax 00491 e8 00 00 00 00 call memcpy 00496 90 npad 1 ; 5047 : out_x * out_bytes, ; 5048 : a->out + (j * x + i) * out_bytes, out_bytes); ; 5049 : } 00497 e9 11 ff ff ff jmp $LN8@stbi__crea $LN9@stbi__crea: ; 5050 : } 0049c e9 e0 fe ff ff jmp $LN5@stbi__crea $LN6@stbi__crea: ; 5051 : STBI_FREE(a->out); 004a1 48 8b 85 00 04 00 00 mov rax, QWORD PTR a$[rbp] 004a8 48 8b 48 18 mov rcx, QWORD PTR [rax+24] 004ac ff 15 00 00 00 00 call QWORD PTR __imp_free 004b2 90 npad 1 ; 5052 : image_data += img_len; 004b3 8b 85 04 02 00 00 mov eax, DWORD PTR img_len$15[rbp] 004b9 48 8b 8d 08 04 00 00 mov rcx, QWORD PTR image_data$[rbp] 004c0 48 03 c8 add rcx, rax 004c3 48 8b c1 mov rax, rcx 004c6 48 89 85 08 04 00 00 mov QWORD PTR image_data$[rbp], rax ; 5053 : image_data_len -= img_len; 004cd 8b 85 04 02 00 00 mov eax, DWORD PTR img_len$15[rbp] 004d3 8b 8d 10 04 00 00 mov ecx, DWORD PTR image_data_len$[rbp] 004d9 2b c8 sub ecx, eax 004db 8b c1 mov eax, ecx 004dd 89 85 10 04 00 00 mov DWORD PTR image_data_len$[rbp], eax $LN13@stbi__crea: ; 5054 : } ; 5055 : } 004e3 e9 43 fc ff ff jmp $LN2@stbi__crea $LN3@stbi__crea: ; 5056 : a->out = final; 004e8 48 8b 85 00 04 00 00 mov rax, QWORD PTR a$[rbp] 004ef 48 8b 4d 48 mov rcx, QWORD PTR final$[rbp] 004f3 48 89 48 18 mov QWORD PTR [rax+24], rcx ; 5057 : ; 5058 : return 1; 004f7 b8 01 00 00 00 mov eax, 1 $LN1@stbi__crea: ; 5059 : } 004fc 48 8b f8 mov rdi, rax 004ff 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] 00503 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__create_png_image$rtcFrameData 0050a e8 00 00 00 00 call _RTC_CheckStackVars 0050f 48 8b c7 mov rax, rdi 00512 48 8d a5 e8 03 00 00 lea rsp, QWORD PTR [rbp+1000] 00519 5f pop rdi 0051a 5d pop rbp 0051b c3 ret 0 stbi__create_png_image ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__create_png_image_raw _TEXT SEGMENT bytes$ = 4 s$ = 40 i$ = 68 j$ = 100 stride$ = 132 img_len$ = 164 img_width_bytes$ = 196 k$ = 228 img_n$ = 260 output_bytes$ = 292 filter_bytes$ = 324 width$ = 356 cur$1 = 392 prior$2 = 424 filter$3 = 452 nk$4 = 484 cur$5 = 520 in$6 = 552 scale$7 = 580 q$8 = 612 cur$9 = 648 cur16$10 = 680 tv391 = 1076 tv65 = 1076 tv168 = 1076 tv216 = 1076 tv274 = 1076 tv343 = 1076 tv413 = 1076 tv546 = 1076 tv618 = 1076 tv666 = 1076 tv360 = 1080 tv563 = 1080 a$ = 1120 raw$ = 1128 raw_len$ = 1136 out_n$ = 1144 x$ = 1152 y$ = 1160 depth$ = 1168 color$ = 1176 stbi__create_png_image_raw PROC ; COMDAT ; 4698 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 68 04 00 00 sub rsp, 1128 ; 00000468H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 4699 : int bytes = (depth == 16 ? 2 : 1); 0002f 83 bd 90 04 00 00 10 cmp DWORD PTR depth$[rbp], 16 00036 75 0c jne SHORT $LN159@stbi__crea 00038 c7 85 34 04 00 00 02 00 00 00 mov DWORD PTR tv65[rbp], 2 00042 eb 0a jmp SHORT $LN160@stbi__crea $LN159@stbi__crea: 00044 c7 85 34 04 00 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 $LN160@stbi__crea: 0004e 8b 85 34 04 00 00 mov eax, DWORD PTR tv65[rbp] 00054 89 45 04 mov DWORD PTR bytes$[rbp], eax ; 4700 : stbi__context *s = a->s; 00057 48 8b 85 60 04 00 00 mov rax, QWORD PTR a$[rbp] 0005e 48 8b 00 mov rax, QWORD PTR [rax] 00061 48 89 45 28 mov QWORD PTR s$[rbp], rax ; 4701 : stbi__uint32 i, j, stride = x * out_n * bytes; 00065 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 0006b 0f af 85 78 04 00 00 imul eax, DWORD PTR out_n$[rbp] 00072 0f af 45 04 imul eax, DWORD PTR bytes$[rbp] 00076 89 85 84 00 00 00 mov DWORD PTR stride$[rbp], eax ; 4702 : stbi__uint32 img_len, img_width_bytes; ; 4703 : int k; ; 4704 : int img_n = s->img_n; // copy it into a local for later 0007c 48 8b 45 28 mov rax, QWORD PTR s$[rbp] 00080 8b 40 08 mov eax, DWORD PTR [rax+8] 00083 89 85 04 01 00 00 mov DWORD PTR img_n$[rbp], eax ; 4705 : ; 4706 : int output_bytes = out_n * bytes; 00089 8b 85 78 04 00 00 mov eax, DWORD PTR out_n$[rbp] 0008f 0f af 45 04 imul eax, DWORD PTR bytes$[rbp] 00093 89 85 24 01 00 00 mov DWORD PTR output_bytes$[rbp], eax ; 4707 : int filter_bytes = img_n * bytes; 00099 8b 85 04 01 00 00 mov eax, DWORD PTR img_n$[rbp] 0009f 0f af 45 04 imul eax, DWORD PTR bytes$[rbp] 000a3 89 85 44 01 00 00 mov DWORD PTR filter_bytes$[rbp], eax ; 4708 : int width = x; 000a9 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 000af 89 85 64 01 00 00 mov DWORD PTR width$[rbp], eax ; 4709 : ; 4710 : STBI_ASSERT(out_n == s->img_n || out_n == s->img_n + 1); 000b5 48 8b 45 28 mov rax, QWORD PTR s$[rbp] 000b9 8b 40 08 mov eax, DWORD PTR [rax+8] 000bc 39 85 78 04 00 00 cmp DWORD PTR out_n$[rbp], eax 000c2 74 2d je SHORT $LN161@stbi__crea 000c4 48 8b 45 28 mov rax, QWORD PTR s$[rbp] 000c8 8b 40 08 mov eax, DWORD PTR [rax+8] 000cb ff c0 inc eax 000cd 39 85 78 04 00 00 cmp DWORD PTR out_n$[rbp], eax 000d3 74 1c je SHORT $LN161@stbi__crea 000d5 41 b8 66 12 00 00 mov r8d, 4710 ; 00001266H 000db 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 000e2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1FG@LGPEHEPM@?$AAo?$AAu?$AAt?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAs?$AA?9?$AA?$DO?$AAi?$AAm?$AAg@ 000e9 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 000ef 33 c0 xor eax, eax $LN161@stbi__crea: ; 4711 : a->out = (stbi_uc *)stbi__malloc_mad3(x, y, output_bytes, 000f1 45 33 c9 xor r9d, r9d 000f4 44 8b 85 24 01 00 00 mov r8d, DWORD PTR output_bytes$[rbp] 000fb 8b 95 88 04 00 00 mov edx, DWORD PTR y$[rbp] 00101 8b 8d 80 04 00 00 mov ecx, DWORD PTR x$[rbp] 00107 e8 00 00 00 00 call stbi__malloc_mad3 0010c 48 8b 8d 60 04 00 00 mov rcx, QWORD PTR a$[rbp] 00113 48 89 41 18 mov QWORD PTR [rcx+24], rax ; 4712 : 0); // extra bytes to write off the end into ; 4713 : if (!a->out) 00117 48 8b 85 60 04 00 00 mov rax, QWORD PTR a$[rbp] 0011e 48 83 78 18 00 cmp QWORD PTR [rax+24], 0 00123 75 11 jne SHORT $LN98@stbi__crea ; 4714 : return stbi__err("outofmem", "Out of memory"); 00125 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0012c e8 00 00 00 00 call stbi__err 00131 e9 55 1a 00 00 jmp $LN1@stbi__crea $LN98@stbi__crea: ; 4715 : ; 4716 : if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) 00136 41 b9 07 00 00 00 mov r9d, 7 0013c 44 8b 85 90 04 00 00 mov r8d, DWORD PTR depth$[rbp] 00143 8b 95 80 04 00 00 mov edx, DWORD PTR x$[rbp] 00149 8b 8d 04 01 00 00 mov ecx, DWORD PTR img_n$[rbp] 0014f e8 00 00 00 00 call stbi__mad3sizes_valid 00154 85 c0 test eax, eax 00156 75 11 jne SHORT $LN99@stbi__crea ; 4717 : return stbi__err("too large", "Corrupt PNG"); 00158 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 0015f e8 00 00 00 00 call stbi__err 00164 e9 22 1a 00 00 jmp $LN1@stbi__crea $LN99@stbi__crea: ; 4718 : img_width_bytes = (((img_n * x * depth) + 7) >> 3); 00169 8b 85 04 01 00 00 mov eax, DWORD PTR img_n$[rbp] 0016f 0f af 85 80 04 00 00 imul eax, DWORD PTR x$[rbp] 00176 0f af 85 90 04 00 00 imul eax, DWORD PTR depth$[rbp] 0017d 83 c0 07 add eax, 7 00180 c1 e8 03 shr eax, 3 00183 89 85 c4 00 00 00 mov DWORD PTR img_width_bytes$[rbp], eax ; 4719 : img_len = (img_width_bytes + 1) * y; 00189 8b 85 c4 00 00 00 mov eax, DWORD PTR img_width_bytes$[rbp] 0018f ff c0 inc eax 00191 0f af 85 88 04 00 00 imul eax, DWORD PTR y$[rbp] 00198 89 85 a4 00 00 00 mov DWORD PTR img_len$[rbp], eax ; 4720 : ; 4721 : // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, ; 4722 : // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), ; 4723 : // so just check for raw_len < img_len always. ; 4724 : if (raw_len < img_len) 0019e 8b 85 a4 00 00 00 mov eax, DWORD PTR img_len$[rbp] 001a4 39 85 70 04 00 00 cmp DWORD PTR raw_len$[rbp], eax 001aa 73 11 jae SHORT $LN100@stbi__crea ; 4725 : return stbi__err("not enough pixels", "Corrupt PNG"); 001ac 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@BHMPBBMG@not?5enough?5pixels@ 001b3 e8 00 00 00 00 call stbi__err 001b8 e9 ce 19 00 00 jmp $LN1@stbi__crea $LN100@stbi__crea: ; 4726 : ; 4727 : for (j = 0; j < y; ++j) { 001bd c7 45 64 00 00 00 00 mov DWORD PTR j$[rbp], 0 001c4 eb 08 jmp SHORT $LN4@stbi__crea $LN2@stbi__crea: 001c6 8b 45 64 mov eax, DWORD PTR j$[rbp] 001c9 ff c0 inc eax 001cb 89 45 64 mov DWORD PTR j$[rbp], eax $LN4@stbi__crea: 001ce 8b 85 88 04 00 00 mov eax, DWORD PTR y$[rbp] 001d4 39 45 64 cmp DWORD PTR j$[rbp], eax 001d7 0f 83 28 10 00 00 jae $LN3@stbi__crea ; 4728 : stbi_uc *cur = a->out + stride * j; 001dd 8b 85 84 00 00 00 mov eax, DWORD PTR stride$[rbp] 001e3 0f af 45 64 imul eax, DWORD PTR j$[rbp] 001e7 8b c0 mov eax, eax 001e9 48 8b 8d 60 04 00 00 mov rcx, QWORD PTR a$[rbp] 001f0 48 03 41 18 add rax, QWORD PTR [rcx+24] 001f4 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax ; 4729 : stbi_uc *prior; ; 4730 : int filter = *raw++; 001fb 48 8b 85 68 04 00 00 mov rax, QWORD PTR raw$[rbp] 00202 0f b6 00 movzx eax, BYTE PTR [rax] 00205 89 85 c4 01 00 00 mov DWORD PTR filter$3[rbp], eax 0020b 48 8b 85 68 04 00 00 mov rax, QWORD PTR raw$[rbp] 00212 48 ff c0 inc rax 00215 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax ; 4731 : ; 4732 : if (filter > 4) 0021c 83 bd c4 01 00 00 04 cmp DWORD PTR filter$3[rbp], 4 00223 7e 11 jle SHORT $LN101@stbi__crea ; 4733 : return stbi__err("invalid filter", "Corrupt PNG"); 00225 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@FBBCPGMN@invalid?5filter@ 0022c e8 00 00 00 00 call stbi__err 00231 e9 55 19 00 00 jmp $LN1@stbi__crea $LN101@stbi__crea: ; 4734 : ; 4735 : if (depth < 8) { 00236 83 bd 90 04 00 00 08 cmp DWORD PTR depth$[rbp], 8 0023d 7d 5e jge SHORT $LN102@stbi__crea ; 4736 : if (img_width_bytes > x) 0023f 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 00245 39 85 c4 00 00 00 cmp DWORD PTR img_width_bytes$[rbp], eax 0024b 76 11 jbe SHORT $LN103@stbi__crea ; 4737 : return stbi__err("invalid width", "Corrupt PNG"); 0024d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@MKGNGALN@invalid?5width@ 00254 e8 00 00 00 00 call stbi__err 00259 e9 2d 19 00 00 jmp $LN1@stbi__crea $LN103@stbi__crea: ; 4738 : cur += x * out_n - 0025e 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 00264 0f af 85 78 04 00 00 imul eax, DWORD PTR out_n$[rbp] 0026b 2b 85 c4 00 00 00 sub eax, DWORD PTR img_width_bytes$[rbp] 00271 8b c0 mov eax, eax 00273 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 0027a 48 03 c8 add rcx, rax 0027d 48 8b c1 mov rax, rcx 00280 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax ; 4739 : img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place ; 4740 : filter_bytes = 1; 00287 c7 85 44 01 00 00 01 00 00 00 mov DWORD PTR filter_bytes$[rbp], 1 ; 4741 : width = img_width_bytes; 00291 8b 85 c4 00 00 00 mov eax, DWORD PTR img_width_bytes$[rbp] 00297 89 85 64 01 00 00 mov DWORD PTR width$[rbp], eax $LN102@stbi__crea: ; 4742 : } ; 4743 : prior = cur - 0029d 8b 85 84 00 00 00 mov eax, DWORD PTR stride$[rbp] 002a3 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 002aa 48 2b c8 sub rcx, rax 002ad 48 8b c1 mov rax, rcx 002b0 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax ; 4744 : stride; // bugfix: need to compute this after 'cur +=' computation above ; 4745 : ; 4746 : // if first row, use special filter that doesn't sample previous row ; 4747 : if (j == 0) 002b7 83 7d 64 00 cmp DWORD PTR j$[rbp], 0 002bb 75 18 jne SHORT $LN104@stbi__crea ; 4748 : filter = first_row_filter[filter]; 002bd 48 63 85 c4 01 00 00 movsxd rax, DWORD PTR filter$3[rbp] 002c4 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:first_row_filter 002cb 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 002cf 89 85 c4 01 00 00 mov DWORD PTR filter$3[rbp], eax $LN104@stbi__crea: ; 4749 : ; 4750 : // handle first byte explicitly ; 4751 : for (k = 0; k < filter_bytes; ++k) { 002d5 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 002df eb 0e jmp SHORT $LN7@stbi__crea $LN5@stbi__crea: 002e1 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 002e7 ff c0 inc eax 002e9 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN7@stbi__crea: 002ef 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 002f5 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 002fb 0f 8d b0 01 00 00 jge $LN6@stbi__crea ; 4752 : switch (filter) { 00301 8b 85 c4 01 00 00 mov eax, DWORD PTR filter$3[rbp] 00307 89 85 34 04 00 00 mov DWORD PTR tv168[rbp], eax 0030d 83 bd 34 04 00 00 06 cmp DWORD PTR tv168[rbp], 6 00314 0f 87 92 01 00 00 ja $LN8@stbi__crea 0031a 48 63 85 34 04 00 00 movsxd rax, DWORD PTR tv168[rbp] 00321 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase 00328 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN168@stbi__crea[rcx+rax*4] 0032f 48 03 c1 add rax, rcx 00332 ff e0 jmp rax $LN105@stbi__crea: ; 4753 : case STBI__F_none: ; 4754 : cur[k] = raw[k]; 00334 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 0033b 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00342 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00349 4c 8b 85 68 04 00 00 mov r8, QWORD PTR raw$[rbp] 00350 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00355 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4755 : break; 00358 e9 4f 01 00 00 jmp $LN8@stbi__crea $LN106@stbi__crea: ; 4756 : case STBI__F_sub: ; 4757 : cur[k] = raw[k]; 0035d 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00364 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 0036b 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00372 4c 8b 85 68 04 00 00 mov r8, QWORD PTR raw$[rbp] 00379 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0037e 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4758 : break; 00381 e9 26 01 00 00 jmp $LN8@stbi__crea $LN107@stbi__crea: ; 4759 : case STBI__F_up: ; 4760 : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); 00386 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 0038d 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00394 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00398 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 0039f 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 003a6 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 003aa 03 c1 add eax, ecx 003ac 25 ff 00 00 00 and eax, 255 ; 000000ffH 003b1 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 003b8 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 003bf 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4761 : break; 003c2 e9 e5 00 00 00 jmp $LN8@stbi__crea $LN108@stbi__crea: ; 4762 : case STBI__F_avg: ; 4763 : cur[k] = STBI__BYTECAST(raw[k] + (prior[k] >> 1)); 003c7 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 003ce 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 003d5 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 003d9 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 003e0 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 003e7 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 003eb d1 f9 sar ecx, 1 003ed 03 c1 add eax, ecx 003ef 25 ff 00 00 00 and eax, 255 ; 000000ffH 003f4 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 003fb 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00402 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4764 : break; 00405 e9 a2 00 00 00 jmp $LN8@stbi__crea $LN109@stbi__crea: ; 4765 : case STBI__F_paeth: ; 4766 : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0, prior[k], 0)); 0040a 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00411 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00418 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0041c 89 85 34 04 00 00 mov DWORD PTR tv216[rbp], eax 00422 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00429 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 00430 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00434 45 33 c0 xor r8d, r8d 00437 8b d1 mov edx, ecx 00439 33 c9 xor ecx, ecx 0043b e8 00 00 00 00 call stbi__paeth 00440 8b 8d 34 04 00 00 mov ecx, DWORD PTR tv216[rbp] 00446 03 c8 add ecx, eax 00448 8b c1 mov eax, ecx 0044a 25 ff 00 00 00 and eax, 255 ; 000000ffH 0044f 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00456 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 0045d 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4767 : break; 00460 eb 4a jmp SHORT $LN8@stbi__crea $LN110@stbi__crea: ; 4768 : case STBI__F_avg_first: ; 4769 : cur[k] = raw[k]; 00462 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00469 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00470 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00477 4c 8b 85 68 04 00 00 mov r8, QWORD PTR raw$[rbp] 0047e 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00483 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4770 : break; 00486 eb 24 jmp SHORT $LN8@stbi__crea $LN111@stbi__crea: ; 4771 : case STBI__F_paeth_first: ; 4772 : cur[k] = raw[k]; 00488 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 0048f 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00496 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 0049d 4c 8b 85 68 04 00 00 mov r8, QWORD PTR raw$[rbp] 004a4 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 004a9 88 04 0a mov BYTE PTR [rdx+rcx], al $LN8@stbi__crea: ; 4773 : break; ; 4774 : } ; 4775 : } 004ac e9 30 fe ff ff jmp $LN5@stbi__crea $LN6@stbi__crea: ; 4776 : ; 4777 : if (depth == 8) { 004b1 83 bd 90 04 00 00 08 cmp DWORD PTR depth$[rbp], 8 004b8 75 76 jne SHORT $LN112@stbi__crea ; 4778 : if (img_n != out_n) 004ba 8b 85 78 04 00 00 mov eax, DWORD PTR out_n$[rbp] 004c0 39 85 04 01 00 00 cmp DWORD PTR img_n$[rbp], eax 004c6 74 12 je SHORT $LN114@stbi__crea ; 4779 : cur[img_n] = 255; // first pixel 004c8 48 63 85 04 01 00 00 movsxd rax, DWORD PTR img_n$[rbp] 004cf 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 004d6 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH $LN114@stbi__crea: ; 4780 : raw += img_n; 004da 48 63 85 04 01 00 00 movsxd rax, DWORD PTR img_n$[rbp] 004e1 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 004e8 48 03 c8 add rcx, rax 004eb 48 8b c1 mov rax, rcx 004ee 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax ; 4781 : cur += out_n; 004f5 48 63 85 78 04 00 00 movsxd rax, DWORD PTR out_n$[rbp] 004fc 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00503 48 03 c8 add rcx, rax 00506 48 8b c1 mov rax, rcx 00509 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax ; 4782 : prior += out_n; 00510 48 63 85 78 04 00 00 movsxd rax, DWORD PTR out_n$[rbp] 00517 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 0051e 48 03 c8 add rcx, rax 00521 48 8b c1 mov rax, rcx 00524 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax 0052b e9 c8 00 00 00 jmp $LN113@stbi__crea $LN112@stbi__crea: ; 4783 : } else if (depth == 16) { 00530 83 bd 90 04 00 00 10 cmp DWORD PTR depth$[rbp], 16 00537 0f 85 88 00 00 00 jne $LN115@stbi__crea ; 4784 : if (img_n != out_n) { 0053d 8b 85 78 04 00 00 mov eax, DWORD PTR out_n$[rbp] 00543 39 85 04 01 00 00 cmp DWORD PTR img_n$[rbp], eax 00549 74 27 je SHORT $LN117@stbi__crea ; 4785 : cur[filter_bytes] = 255; // first pixel top byte 0054b 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00552 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00559 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 4786 : cur[filter_bytes + 1] = 255; // first pixel bottom byte 0055d 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 00563 ff c0 inc eax 00565 48 98 cdqe 00567 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 0056e c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH $LN117@stbi__crea: ; 4787 : } ; 4788 : raw += filter_bytes; 00572 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00579 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00580 48 03 c8 add rcx, rax 00583 48 8b c1 mov rax, rcx 00586 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax ; 4789 : cur += output_bytes; 0058d 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00594 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 0059b 48 03 c8 add rcx, rax 0059e 48 8b c1 mov rax, rcx 005a1 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax ; 4790 : prior += output_bytes; 005a8 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 005af 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 005b6 48 03 c8 add rcx, rax 005b9 48 8b c1 mov rax, rcx 005bc 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax ; 4791 : } else { 005c3 eb 33 jmp SHORT $LN116@stbi__crea $LN115@stbi__crea: ; 4792 : raw += 1; 005c5 48 8b 85 68 04 00 00 mov rax, QWORD PTR raw$[rbp] 005cc 48 ff c0 inc rax 005cf 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax ; 4793 : cur += 1; 005d6 48 8b 85 88 01 00 00 mov rax, QWORD PTR cur$1[rbp] 005dd 48 ff c0 inc rax 005e0 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax ; 4794 : prior += 1; 005e7 48 8b 85 a8 01 00 00 mov rax, QWORD PTR prior$2[rbp] 005ee 48 ff c0 inc rax 005f1 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax $LN116@stbi__crea: $LN113@stbi__crea: ; 4795 : } ; 4796 : ; 4797 : // this is a little gross, so that we don't switch per-pixel or per-component ; 4798 : if (depth < 8 || img_n == out_n) { 005f8 83 bd 90 04 00 00 08 cmp DWORD PTR depth$[rbp], 8 005ff 7c 12 jl SHORT $LN120@stbi__crea 00601 8b 85 78 04 00 00 mov eax, DWORD PTR out_n$[rbp] 00607 39 85 04 01 00 00 cmp DWORD PTR img_n$[rbp], eax 0060d 0f 85 d8 03 00 00 jne $LN118@stbi__crea $LN120@stbi__crea: ; 4799 : int nk = (width - 1) * filter_bytes; 00613 8b 85 64 01 00 00 mov eax, DWORD PTR width$[rbp] 00619 ff c8 dec eax 0061b 0f af 85 44 01 00 00 imul eax, DWORD PTR filter_bytes$[rbp] 00622 89 85 e4 01 00 00 mov DWORD PTR nk$4[rbp], eax ; 4800 : #define STBI__CASE(f) \ ; 4801 : case f: \ ; 4802 : for (k = 0; k < nk; ++k) ; 4803 : switch (filter) { 00628 8b 85 c4 01 00 00 mov eax, DWORD PTR filter$3[rbp] 0062e 89 85 34 04 00 00 mov DWORD PTR tv274[rbp], eax 00634 83 bd 34 04 00 00 06 cmp DWORD PTR tv274[rbp], 6 0063b 0f 87 8a 03 00 00 ja $LN10@stbi__crea 00641 48 63 85 34 04 00 00 movsxd rax, DWORD PTR tv274[rbp] 00648 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase 0064f 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN167@stbi__crea[rcx+rax*4] 00656 48 03 c1 add rax, rcx 00659 ff e0 jmp rax $LN121@stbi__crea: ; 4804 : // "none" filter turns into a memcpy here; make that explicit. ; 4805 : case STBI__F_none: ; 4806 : memcpy(cur, raw, nk); 0065b 48 63 85 e4 01 00 00 movsxd rax, DWORD PTR nk$4[rbp] 00662 4c 8b c0 mov r8, rax 00665 48 8b 95 68 04 00 00 mov rdx, QWORD PTR raw$[rbp] 0066c 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00673 e8 00 00 00 00 call memcpy 00678 90 npad 1 ; 4807 : break; 00679 e9 4d 03 00 00 jmp $LN10@stbi__crea $LN122@stbi__crea: ; 4808 : STBI__CASE(STBI__F_sub) 0067e c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 00688 eb 0e jmp SHORT $LN14@stbi__crea $LN12@stbi__crea: 0068a 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00690 ff c0 inc eax 00692 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN14@stbi__crea: 00698 8b 85 e4 01 00 00 mov eax, DWORD PTR nk$4[rbp] 0069e 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 006a4 7d 4a jge SHORT $LN13@stbi__crea ; 4809 : { ; 4810 : cur[k] = STBI__BYTECAST(raw[k] + cur[k - filter_bytes]); 006a6 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 006ad 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 006b4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 006b8 8b 8d 44 01 00 00 mov ecx, DWORD PTR filter_bytes$[rbp] 006be 8b 95 e4 00 00 00 mov edx, DWORD PTR k$[rbp] 006c4 2b d1 sub edx, ecx 006c6 8b ca mov ecx, edx 006c8 48 63 c9 movsxd rcx, ecx 006cb 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 006d2 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 006d6 03 c1 add eax, ecx 006d8 25 ff 00 00 00 and eax, 255 ; 000000ffH 006dd 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 006e4 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 006eb 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4811 : } 006ee eb 9a jmp SHORT $LN12@stbi__crea $LN13@stbi__crea: ; 4812 : break; 006f0 e9 d6 02 00 00 jmp $LN10@stbi__crea $LN123@stbi__crea: ; 4813 : STBI__CASE(STBI__F_up) 006f5 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 006ff eb 0e jmp SHORT $LN17@stbi__crea $LN15@stbi__crea: 00701 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00707 ff c0 inc eax 00709 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN17@stbi__crea: 0070f 8b 85 e4 01 00 00 mov eax, DWORD PTR nk$4[rbp] 00715 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 0071b 7d 3e jge SHORT $LN16@stbi__crea ; 4814 : { ; 4815 : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); 0071d 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00724 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 0072b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0072f 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00736 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 0073d 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00741 03 c1 add eax, ecx 00743 25 ff 00 00 00 and eax, 255 ; 000000ffH 00748 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 0074f 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00756 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4816 : } 00759 eb a6 jmp SHORT $LN15@stbi__crea $LN16@stbi__crea: ; 4817 : break; 0075b e9 6b 02 00 00 jmp $LN10@stbi__crea $LN124@stbi__crea: ; 4818 : STBI__CASE(STBI__F_avg) 00760 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 0076a eb 0e jmp SHORT $LN20@stbi__crea $LN18@stbi__crea: 0076c 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00772 ff c0 inc eax 00774 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN20@stbi__crea: 0077a 8b 85 e4 01 00 00 mov eax, DWORD PTR nk$4[rbp] 00780 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 00786 7d 64 jge SHORT $LN19@stbi__crea ; 4819 : { ; 4820 : cur[k] = STBI__BYTECAST( 00788 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 0078f 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00796 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0079a 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 007a1 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 007a8 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 007ac 8b 95 44 01 00 00 mov edx, DWORD PTR filter_bytes$[rbp] 007b2 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR k$[rbp] 007b9 44 2b c2 sub r8d, edx 007bc 41 8b d0 mov edx, r8d 007bf 48 63 d2 movsxd rdx, edx 007c2 4c 8b 85 88 01 00 00 mov r8, QWORD PTR cur$1[rbp] 007c9 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] 007ce 03 ca add ecx, edx 007d0 d1 f9 sar ecx, 1 007d2 03 c1 add eax, ecx 007d4 25 ff 00 00 00 and eax, 255 ; 000000ffH 007d9 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 007e0 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 007e7 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4821 : raw[k] + ((prior[k] + cur[k - filter_bytes]) >> 1)); ; 4822 : } 007ea eb 80 jmp SHORT $LN18@stbi__crea $LN19@stbi__crea: ; 4823 : break; 007ec e9 da 01 00 00 jmp $LN10@stbi__crea $LN125@stbi__crea: ; 4824 : STBI__CASE(STBI__F_paeth) 007f1 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 007fb eb 0e jmp SHORT $LN23@stbi__crea $LN21@stbi__crea: 007fd 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00803 ff c0 inc eax 00805 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN23@stbi__crea: 0080b 8b 85 e4 01 00 00 mov eax, DWORD PTR nk$4[rbp] 00811 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 00817 0f 8d a6 00 00 00 jge $LN22@stbi__crea ; 4825 : { ; 4826 : cur[k] = STBI__BYTECAST( 0081d 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00824 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 0082b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0082f 89 85 34 04 00 00 mov DWORD PTR tv343[rbp], eax 00835 8b 8d 44 01 00 00 mov ecx, DWORD PTR filter_bytes$[rbp] 0083b 8b 95 e4 00 00 00 mov edx, DWORD PTR k$[rbp] 00841 2b d1 sub edx, ecx 00843 8b ca mov ecx, edx 00845 48 63 c9 movsxd rcx, ecx 00848 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 0084f 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00853 48 63 95 e4 00 00 00 movsxd rdx, DWORD PTR k$[rbp] 0085a 4c 8b 85 a8 01 00 00 mov r8, QWORD PTR prior$2[rbp] 00861 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] 00866 44 8b 85 44 01 00 00 mov r8d, DWORD PTR filter_bytes$[rbp] 0086d 44 8b 8d e4 00 00 00 mov r9d, DWORD PTR k$[rbp] 00874 45 2b c8 sub r9d, r8d 00877 45 8b c1 mov r8d, r9d 0087a 4d 63 c0 movsxd r8, r8d 0087d 4c 8b 8d 88 01 00 00 mov r9, QWORD PTR cur$1[rbp] 00884 47 0f b6 04 01 movzx r8d, BYTE PTR [r9+r8] 00889 44 89 85 38 04 00 00 mov DWORD PTR tv360[rbp], r8d 00890 44 8b c1 mov r8d, ecx 00893 8b 8d 38 04 00 00 mov ecx, DWORD PTR tv360[rbp] 00899 e8 00 00 00 00 call stbi__paeth 0089e 8b 8d 34 04 00 00 mov ecx, DWORD PTR tv343[rbp] 008a4 03 c8 add ecx, eax 008a6 8b c1 mov eax, ecx 008a8 25 ff 00 00 00 and eax, 255 ; 000000ffH 008ad 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 008b4 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 008bb 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4827 : raw[k] + stbi__paeth(cur[k - filter_bytes], ; 4828 : prior[k], ; 4829 : prior[k - filter_bytes])); ; 4830 : } 008be e9 3a ff ff ff jmp $LN21@stbi__crea $LN22@stbi__crea: ; 4831 : break; 008c3 e9 03 01 00 00 jmp $LN10@stbi__crea $LN126@stbi__crea: ; 4832 : STBI__CASE(STBI__F_avg_first) 008c8 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 008d2 eb 0e jmp SHORT $LN26@stbi__crea $LN24@stbi__crea: 008d4 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 008da ff c0 inc eax 008dc 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN26@stbi__crea: 008e2 8b 85 e4 01 00 00 mov eax, DWORD PTR nk$4[rbp] 008e8 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 008ee 7d 4c jge SHORT $LN25@stbi__crea ; 4833 : { ; 4834 : cur[k] = STBI__BYTECAST(raw[k] + 008f0 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 008f7 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 008fe 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00902 8b 8d 44 01 00 00 mov ecx, DWORD PTR filter_bytes$[rbp] 00908 8b 95 e4 00 00 00 mov edx, DWORD PTR k$[rbp] 0090e 2b d1 sub edx, ecx 00910 8b ca mov ecx, edx 00912 48 63 c9 movsxd rcx, ecx 00915 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 0091c 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00920 d1 f9 sar ecx, 1 00922 03 c1 add eax, ecx 00924 25 ff 00 00 00 and eax, 255 ; 000000ffH 00929 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00930 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00937 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4835 : (cur[k - filter_bytes] >> 1)); ; 4836 : } 0093a eb 98 jmp SHORT $LN24@stbi__crea $LN25@stbi__crea: ; 4837 : break; 0093c e9 8a 00 00 00 jmp $LN10@stbi__crea $LN127@stbi__crea: ; 4838 : STBI__CASE(STBI__F_paeth_first) 00941 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 0094b eb 0e jmp SHORT $LN29@stbi__crea $LN27@stbi__crea: 0094d 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00953 ff c0 inc eax 00955 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN29@stbi__crea: 0095b 8b 85 e4 01 00 00 mov eax, DWORD PTR nk$4[rbp] 00961 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 00967 7d 62 jge SHORT $LN28@stbi__crea ; 4839 : { ; 4840 : cur[k] = STBI__BYTECAST( 00969 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00970 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00977 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0097b 89 85 34 04 00 00 mov DWORD PTR tv391[rbp], eax 00981 8b 8d 44 01 00 00 mov ecx, DWORD PTR filter_bytes$[rbp] 00987 8b 95 e4 00 00 00 mov edx, DWORD PTR k$[rbp] 0098d 2b d1 sub edx, ecx 0098f 8b ca mov ecx, edx 00991 48 63 c9 movsxd rcx, ecx 00994 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 0099b 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0099f 45 33 c0 xor r8d, r8d 009a2 33 d2 xor edx, edx 009a4 e8 00 00 00 00 call stbi__paeth 009a9 8b 8d 34 04 00 00 mov ecx, DWORD PTR tv391[rbp] 009af 03 c8 add ecx, eax 009b1 8b c1 mov eax, ecx 009b3 25 ff 00 00 00 and eax, 255 ; 000000ffH 009b8 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 009bf 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 009c6 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4841 : raw[k] + stbi__paeth(cur[k - filter_bytes], 0, 0)); ; 4842 : } 009c9 eb 82 jmp SHORT $LN27@stbi__crea $LN28@stbi__crea: $LN10@stbi__crea: ; 4843 : break; ; 4844 : } ; 4845 : #undef STBI__CASE ; 4846 : raw += nk; 009cb 48 63 85 e4 01 00 00 movsxd rax, DWORD PTR nk$4[rbp] 009d2 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 009d9 48 03 c8 add rcx, rax 009dc 48 8b c1 mov rax, rcx 009df 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax ; 4847 : } else { 009e6 e9 15 08 00 00 jmp $LN119@stbi__crea $LN118@stbi__crea: ; 4848 : STBI_ASSERT(img_n + 1 == out_n); 009eb 8b 85 04 01 00 00 mov eax, DWORD PTR img_n$[rbp] 009f1 ff c0 inc eax 009f3 3b 85 78 04 00 00 cmp eax, DWORD PTR out_n$[rbp] 009f9 74 1c je SHORT $LN162@stbi__crea 009fb 41 b8 f0 12 00 00 mov r8d, 4848 ; 000012f0H 00a01 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00a08 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CG@MFAHHIFB@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$CL?$AA?5?$AA1?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAo?$AAu@ 00a0f ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00a15 33 c0 xor eax, eax $LN162@stbi__crea: ; 4849 : #define STBI__CASE(f) \ ; 4850 : case f: \ ; 4851 : for (i = x - 1; i >= 1; --i, cur[filter_bytes] = 255, raw += filter_bytes, \ ; 4852 : cur += output_bytes, prior += output_bytes) \ ; 4853 : for (k = 0; k < filter_bytes; ++k) ; 4854 : switch (filter) { 00a17 8b 85 c4 01 00 00 mov eax, DWORD PTR filter$3[rbp] 00a1d 89 85 34 04 00 00 mov DWORD PTR tv413[rbp], eax 00a23 83 bd 34 04 00 00 06 cmp DWORD PTR tv413[rbp], 6 00a2a 0f 87 5b 07 00 00 ja $LN30@stbi__crea 00a30 48 63 85 34 04 00 00 movsxd rax, DWORD PTR tv413[rbp] 00a37 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase 00a3e 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN166@stbi__crea[rcx+rax*4] 00a45 48 03 c1 add rax, rcx 00a48 ff e0 jmp rax $LN128@stbi__crea: ; 4855 : STBI__CASE(STBI__F_none) 00a4a 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 00a50 ff c8 dec eax 00a52 89 45 44 mov DWORD PTR i$[rbp], eax 00a55 eb 6b jmp SHORT $LN34@stbi__crea $LN32@stbi__crea: 00a57 8b 45 44 mov eax, DWORD PTR i$[rbp] 00a5a ff c8 dec eax 00a5c 89 45 44 mov DWORD PTR i$[rbp], eax 00a5f 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00a66 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00a6d c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 00a71 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00a78 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00a7f 48 03 c8 add rcx, rax 00a82 48 8b c1 mov rax, rcx 00a85 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax 00a8c 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00a93 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00a9a 48 03 c8 add rcx, rax 00a9d 48 8b c1 mov rax, rcx 00aa0 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax 00aa7 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00aae 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 00ab5 48 03 c8 add rcx, rax 00ab8 48 8b c1 mov rax, rcx 00abb 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax $LN34@stbi__crea: 00ac2 83 7d 44 01 cmp DWORD PTR i$[rbp], 1 00ac6 72 53 jb SHORT $LN33@stbi__crea 00ac8 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 00ad2 eb 0e jmp SHORT $LN37@stbi__crea $LN35@stbi__crea: 00ad4 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00ada ff c0 inc eax 00adc 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN37@stbi__crea: 00ae2 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 00ae8 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 00aee 7d 26 jge SHORT $LN36@stbi__crea ; 4856 : { ; 4857 : cur[k] = raw[k]; 00af0 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00af7 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00afe 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00b05 4c 8b 85 68 04 00 00 mov r8, QWORD PTR raw$[rbp] 00b0c 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00b11 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4858 : } 00b14 eb be jmp SHORT $LN35@stbi__crea $LN36@stbi__crea: 00b16 e9 3c ff ff ff jmp $LN32@stbi__crea $LN33@stbi__crea: ; 4859 : break; 00b1b e9 6b 06 00 00 jmp $LN30@stbi__crea $LN129@stbi__crea: ; 4860 : STBI__CASE(STBI__F_sub) 00b20 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 00b26 ff c8 dec eax 00b28 89 45 44 mov DWORD PTR i$[rbp], eax 00b2b eb 6b jmp SHORT $LN40@stbi__crea $LN38@stbi__crea: 00b2d 8b 45 44 mov eax, DWORD PTR i$[rbp] 00b30 ff c8 dec eax 00b32 89 45 44 mov DWORD PTR i$[rbp], eax 00b35 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00b3c 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00b43 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 00b47 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00b4e 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00b55 48 03 c8 add rcx, rax 00b58 48 8b c1 mov rax, rcx 00b5b 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax 00b62 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00b69 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00b70 48 03 c8 add rcx, rax 00b73 48 8b c1 mov rax, rcx 00b76 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax 00b7d 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00b84 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 00b8b 48 03 c8 add rcx, rax 00b8e 48 8b c1 mov rax, rcx 00b91 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax $LN40@stbi__crea: 00b98 83 7d 44 01 cmp DWORD PTR i$[rbp], 1 00b9c 72 77 jb SHORT $LN39@stbi__crea 00b9e c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 00ba8 eb 0e jmp SHORT $LN43@stbi__crea $LN41@stbi__crea: 00baa 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00bb0 ff c0 inc eax 00bb2 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN43@stbi__crea: 00bb8 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 00bbe 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 00bc4 7d 4a jge SHORT $LN42@stbi__crea ; 4861 : { ; 4862 : cur[k] = STBI__BYTECAST(raw[k] + cur[k - output_bytes]); 00bc6 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00bcd 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00bd4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00bd8 8b 8d 24 01 00 00 mov ecx, DWORD PTR output_bytes$[rbp] 00bde 8b 95 e4 00 00 00 mov edx, DWORD PTR k$[rbp] 00be4 2b d1 sub edx, ecx 00be6 8b ca mov ecx, edx 00be8 48 63 c9 movsxd rcx, ecx 00beb 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00bf2 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00bf6 03 c1 add eax, ecx 00bf8 25 ff 00 00 00 and eax, 255 ; 000000ffH 00bfd 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00c04 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00c0b 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4863 : } 00c0e eb 9a jmp SHORT $LN41@stbi__crea $LN42@stbi__crea: 00c10 e9 18 ff ff ff jmp $LN38@stbi__crea $LN39@stbi__crea: ; 4864 : break; 00c15 e9 71 05 00 00 jmp $LN30@stbi__crea $LN130@stbi__crea: ; 4865 : STBI__CASE(STBI__F_up) 00c1a 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 00c20 ff c8 dec eax 00c22 89 45 44 mov DWORD PTR i$[rbp], eax 00c25 eb 6b jmp SHORT $LN46@stbi__crea $LN44@stbi__crea: 00c27 8b 45 44 mov eax, DWORD PTR i$[rbp] 00c2a ff c8 dec eax 00c2c 89 45 44 mov DWORD PTR i$[rbp], eax 00c2f 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00c36 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00c3d c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 00c41 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00c48 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00c4f 48 03 c8 add rcx, rax 00c52 48 8b c1 mov rax, rcx 00c55 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax 00c5c 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00c63 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00c6a 48 03 c8 add rcx, rax 00c6d 48 8b c1 mov rax, rcx 00c70 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax 00c77 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00c7e 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 00c85 48 03 c8 add rcx, rax 00c88 48 8b c1 mov rax, rcx 00c8b 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax $LN46@stbi__crea: 00c92 83 7d 44 01 cmp DWORD PTR i$[rbp], 1 00c96 72 6b jb SHORT $LN45@stbi__crea 00c98 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 00ca2 eb 0e jmp SHORT $LN49@stbi__crea $LN47@stbi__crea: 00ca4 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00caa ff c0 inc eax 00cac 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN49@stbi__crea: 00cb2 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 00cb8 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 00cbe 7d 3e jge SHORT $LN48@stbi__crea ; 4866 : { ; 4867 : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); 00cc0 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00cc7 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00cce 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00cd2 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00cd9 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 00ce0 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00ce4 03 c1 add eax, ecx 00ce6 25 ff 00 00 00 and eax, 255 ; 000000ffH 00ceb 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00cf2 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00cf9 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4868 : } 00cfc eb a6 jmp SHORT $LN47@stbi__crea $LN48@stbi__crea: 00cfe e9 24 ff ff ff jmp $LN44@stbi__crea $LN45@stbi__crea: ; 4869 : break; 00d03 e9 83 04 00 00 jmp $LN30@stbi__crea $LN131@stbi__crea: ; 4870 : STBI__CASE(STBI__F_avg) 00d08 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 00d0e ff c8 dec eax 00d10 89 45 44 mov DWORD PTR i$[rbp], eax 00d13 eb 6b jmp SHORT $LN52@stbi__crea $LN50@stbi__crea: 00d15 8b 45 44 mov eax, DWORD PTR i$[rbp] 00d18 ff c8 dec eax 00d1a 89 45 44 mov DWORD PTR i$[rbp], eax 00d1d 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00d24 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00d2b c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 00d2f 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00d36 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00d3d 48 03 c8 add rcx, rax 00d40 48 8b c1 mov rax, rcx 00d43 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax 00d4a 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00d51 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00d58 48 03 c8 add rcx, rax 00d5b 48 8b c1 mov rax, rcx 00d5e 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax 00d65 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00d6c 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 00d73 48 03 c8 add rcx, rax 00d76 48 8b c1 mov rax, rcx 00d79 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax $LN52@stbi__crea: 00d80 83 7d 44 01 cmp DWORD PTR i$[rbp], 1 00d84 0f 82 91 00 00 00 jb $LN51@stbi__crea 00d8a c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 00d94 eb 0e jmp SHORT $LN55@stbi__crea $LN53@stbi__crea: 00d96 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00d9c ff c0 inc eax 00d9e 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN55@stbi__crea: 00da4 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 00daa 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 00db0 7d 64 jge SHORT $LN54@stbi__crea ; 4871 : { ; 4872 : cur[k] = STBI__BYTECAST( 00db2 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00db9 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00dc0 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00dc4 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00dcb 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 00dd2 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00dd6 8b 95 24 01 00 00 mov edx, DWORD PTR output_bytes$[rbp] 00ddc 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR k$[rbp] 00de3 44 2b c2 sub r8d, edx 00de6 41 8b d0 mov edx, r8d 00de9 48 63 d2 movsxd rdx, edx 00dec 4c 8b 85 88 01 00 00 mov r8, QWORD PTR cur$1[rbp] 00df3 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] 00df8 03 ca add ecx, edx 00dfa d1 f9 sar ecx, 1 00dfc 03 c1 add eax, ecx 00dfe 25 ff 00 00 00 and eax, 255 ; 000000ffH 00e03 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00e0a 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00e11 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4873 : raw[k] + ((prior[k] + cur[k - output_bytes]) >> 1)); ; 4874 : } 00e14 eb 80 jmp SHORT $LN53@stbi__crea $LN54@stbi__crea: 00e16 e9 fa fe ff ff jmp $LN50@stbi__crea $LN51@stbi__crea: ; 4875 : break; 00e1b e9 6b 03 00 00 jmp $LN30@stbi__crea $LN132@stbi__crea: ; 4876 : STBI__CASE(STBI__F_paeth) 00e20 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 00e26 ff c8 dec eax 00e28 89 45 44 mov DWORD PTR i$[rbp], eax 00e2b eb 6b jmp SHORT $LN58@stbi__crea $LN56@stbi__crea: 00e2d 8b 45 44 mov eax, DWORD PTR i$[rbp] 00e30 ff c8 dec eax 00e32 89 45 44 mov DWORD PTR i$[rbp], eax 00e35 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00e3c 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00e43 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 00e47 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00e4e 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00e55 48 03 c8 add rcx, rax 00e58 48 8b c1 mov rax, rcx 00e5b 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax 00e62 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00e69 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00e70 48 03 c8 add rcx, rax 00e73 48 8b c1 mov rax, rcx 00e76 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax 00e7d 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00e84 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 00e8b 48 03 c8 add rcx, rax 00e8e 48 8b c1 mov rax, rcx 00e91 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax $LN58@stbi__crea: 00e98 83 7d 44 01 cmp DWORD PTR i$[rbp], 1 00e9c 0f 82 d7 00 00 00 jb $LN57@stbi__crea 00ea2 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 00eac eb 0e jmp SHORT $LN61@stbi__crea $LN59@stbi__crea: 00eae 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 00eb4 ff c0 inc eax 00eb6 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN61@stbi__crea: 00ebc 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 00ec2 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 00ec8 0f 8d a6 00 00 00 jge $LN60@stbi__crea ; 4877 : { ; 4878 : cur[k] = STBI__BYTECAST( 00ece 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 00ed5 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00edc 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00ee0 89 85 34 04 00 00 mov DWORD PTR tv546[rbp], eax 00ee6 8b 8d 24 01 00 00 mov ecx, DWORD PTR output_bytes$[rbp] 00eec 8b 95 e4 00 00 00 mov edx, DWORD PTR k$[rbp] 00ef2 2b d1 sub edx, ecx 00ef4 8b ca mov ecx, edx 00ef6 48 63 c9 movsxd rcx, ecx 00ef9 48 8b 95 a8 01 00 00 mov rdx, QWORD PTR prior$2[rbp] 00f00 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00f04 48 63 95 e4 00 00 00 movsxd rdx, DWORD PTR k$[rbp] 00f0b 4c 8b 85 a8 01 00 00 mov r8, QWORD PTR prior$2[rbp] 00f12 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] 00f17 44 8b 85 24 01 00 00 mov r8d, DWORD PTR output_bytes$[rbp] 00f1e 44 8b 8d e4 00 00 00 mov r9d, DWORD PTR k$[rbp] 00f25 45 2b c8 sub r9d, r8d 00f28 45 8b c1 mov r8d, r9d 00f2b 4d 63 c0 movsxd r8, r8d 00f2e 4c 8b 8d 88 01 00 00 mov r9, QWORD PTR cur$1[rbp] 00f35 47 0f b6 04 01 movzx r8d, BYTE PTR [r9+r8] 00f3a 44 89 85 38 04 00 00 mov DWORD PTR tv563[rbp], r8d 00f41 44 8b c1 mov r8d, ecx 00f44 8b 8d 38 04 00 00 mov ecx, DWORD PTR tv563[rbp] 00f4a e8 00 00 00 00 call stbi__paeth 00f4f 8b 8d 34 04 00 00 mov ecx, DWORD PTR tv546[rbp] 00f55 03 c8 add ecx, eax 00f57 8b c1 mov eax, ecx 00f59 25 ff 00 00 00 and eax, 255 ; 000000ffH 00f5e 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 00f65 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 00f6c 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4879 : raw[k] + stbi__paeth(cur[k - output_bytes], ; 4880 : prior[k], ; 4881 : prior[k - output_bytes])); ; 4882 : } 00f6f e9 3a ff ff ff jmp $LN59@stbi__crea $LN60@stbi__crea: 00f74 e9 b4 fe ff ff jmp $LN56@stbi__crea $LN57@stbi__crea: ; 4883 : break; 00f79 e9 0d 02 00 00 jmp $LN30@stbi__crea $LN133@stbi__crea: ; 4884 : STBI__CASE(STBI__F_avg_first) 00f7e 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 00f84 ff c8 dec eax 00f86 89 45 44 mov DWORD PTR i$[rbp], eax 00f89 eb 6b jmp SHORT $LN64@stbi__crea $LN62@stbi__crea: 00f8b 8b 45 44 mov eax, DWORD PTR i$[rbp] 00f8e ff c8 dec eax 00f90 89 45 44 mov DWORD PTR i$[rbp], eax 00f93 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00f9a 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00fa1 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 00fa5 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 00fac 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 00fb3 48 03 c8 add rcx, rax 00fb6 48 8b c1 mov rax, rcx 00fb9 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax 00fc0 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00fc7 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 00fce 48 03 c8 add rcx, rax 00fd1 48 8b c1 mov rax, rcx 00fd4 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax 00fdb 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 00fe2 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 00fe9 48 03 c8 add rcx, rax 00fec 48 8b c1 mov rax, rcx 00fef 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax $LN64@stbi__crea: 00ff6 83 7d 44 01 cmp DWORD PTR i$[rbp], 1 00ffa 72 79 jb SHORT $LN63@stbi__crea 00ffc c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 01006 eb 0e jmp SHORT $LN67@stbi__crea $LN65@stbi__crea: 01008 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 0100e ff c0 inc eax 01010 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN67@stbi__crea: 01016 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 0101c 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 01022 7d 4c jge SHORT $LN66@stbi__crea ; 4885 : { ; 4886 : cur[k] = STBI__BYTECAST(raw[k] + 01024 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 0102b 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 01032 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 01036 8b 8d 24 01 00 00 mov ecx, DWORD PTR output_bytes$[rbp] 0103c 8b 95 e4 00 00 00 mov edx, DWORD PTR k$[rbp] 01042 2b d1 sub edx, ecx 01044 8b ca mov ecx, edx 01046 48 63 c9 movsxd rcx, ecx 01049 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 01050 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 01054 d1 f9 sar ecx, 1 01056 03 c1 add eax, ecx 01058 25 ff 00 00 00 and eax, 255 ; 000000ffH 0105d 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 01064 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 0106b 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4887 : (cur[k - output_bytes] >> 1)); ; 4888 : } 0106e eb 98 jmp SHORT $LN65@stbi__crea $LN66@stbi__crea: 01070 e9 16 ff ff ff jmp $LN62@stbi__crea $LN63@stbi__crea: ; 4889 : break; 01075 e9 11 01 00 00 jmp $LN30@stbi__crea $LN134@stbi__crea: ; 4890 : STBI__CASE(STBI__F_paeth_first) 0107a 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 01080 ff c8 dec eax 01082 89 45 44 mov DWORD PTR i$[rbp], eax 01085 eb 6b jmp SHORT $LN70@stbi__crea $LN68@stbi__crea: 01087 8b 45 44 mov eax, DWORD PTR i$[rbp] 0108a ff c8 dec eax 0108c 89 45 44 mov DWORD PTR i$[rbp], eax 0108f 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 01096 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 0109d c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 010a1 48 63 85 44 01 00 00 movsxd rax, DWORD PTR filter_bytes$[rbp] 010a8 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 010af 48 03 c8 add rcx, rax 010b2 48 8b c1 mov rax, rcx 010b5 48 89 85 68 04 00 00 mov QWORD PTR raw$[rbp], rax 010bc 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 010c3 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 010ca 48 03 c8 add rcx, rax 010cd 48 8b c1 mov rax, rcx 010d0 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax 010d7 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 010de 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR prior$2[rbp] 010e5 48 03 c8 add rcx, rax 010e8 48 8b c1 mov rax, rcx 010eb 48 89 85 a8 01 00 00 mov QWORD PTR prior$2[rbp], rax $LN70@stbi__crea: 010f2 83 7d 44 01 cmp DWORD PTR i$[rbp], 1 010f6 0f 82 8f 00 00 00 jb $LN69@stbi__crea 010fc c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 01106 eb 0e jmp SHORT $LN73@stbi__crea $LN71@stbi__crea: 01108 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 0110e ff c0 inc eax 01110 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax $LN73@stbi__crea: 01116 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 0111c 39 85 e4 00 00 00 cmp DWORD PTR k$[rbp], eax 01122 7d 62 jge SHORT $LN72@stbi__crea ; 4891 : { ; 4892 : cur[k] = STBI__BYTECAST( 01124 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR k$[rbp] 0112b 48 8b 8d 68 04 00 00 mov rcx, QWORD PTR raw$[rbp] 01132 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 01136 89 85 34 04 00 00 mov DWORD PTR tv618[rbp], eax 0113c 8b 8d 24 01 00 00 mov ecx, DWORD PTR output_bytes$[rbp] 01142 8b 95 e4 00 00 00 mov edx, DWORD PTR k$[rbp] 01148 2b d1 sub edx, ecx 0114a 8b ca mov ecx, edx 0114c 48 63 c9 movsxd rcx, ecx 0114f 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 01156 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0115a 45 33 c0 xor r8d, r8d 0115d 33 d2 xor edx, edx 0115f e8 00 00 00 00 call stbi__paeth 01164 8b 8d 34 04 00 00 mov ecx, DWORD PTR tv618[rbp] 0116a 03 c8 add ecx, eax 0116c 8b c1 mov eax, ecx 0116e 25 ff 00 00 00 and eax, 255 ; 000000ffH 01173 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR k$[rbp] 0117a 48 8b 95 88 01 00 00 mov rdx, QWORD PTR cur$1[rbp] 01181 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4893 : raw[k] + stbi__paeth(cur[k - output_bytes], 0, 0)); ; 4894 : } 01184 eb 82 jmp SHORT $LN71@stbi__crea $LN72@stbi__crea: 01186 e9 fc fe ff ff jmp $LN68@stbi__crea $LN69@stbi__crea: $LN30@stbi__crea: ; 4895 : break; ; 4896 : } ; 4897 : #undef STBI__CASE ; 4898 : ; 4899 : // the loop above sets the high byte of the pixels' alpha, but for ; 4900 : // 16 bit png files we also need the low byte set. we'll do that here. ; 4901 : if (depth == 16) { 0118b 83 bd 90 04 00 00 10 cmp DWORD PTR depth$[rbp], 16 01192 75 6c jne SHORT $LN135@stbi__crea ; 4902 : cur = a->out + 01194 8b 85 84 00 00 00 mov eax, DWORD PTR stride$[rbp] 0119a 0f af 45 64 imul eax, DWORD PTR j$[rbp] 0119e 8b c0 mov eax, eax 011a0 48 8b 8d 60 04 00 00 mov rcx, QWORD PTR a$[rbp] 011a7 48 03 41 18 add rax, QWORD PTR [rcx+24] 011ab 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax ; 4903 : stride * j; // start at the beginning of the row again ; 4904 : for (i = 0; i < x; ++i, cur += output_bytes) { 011b2 c7 45 44 00 00 00 00 mov DWORD PTR i$[rbp], 0 011b9 eb 23 jmp SHORT $LN76@stbi__crea $LN74@stbi__crea: 011bb 8b 45 44 mov eax, DWORD PTR i$[rbp] 011be ff c0 inc eax 011c0 89 45 44 mov DWORD PTR i$[rbp], eax 011c3 48 63 85 24 01 00 00 movsxd rax, DWORD PTR output_bytes$[rbp] 011ca 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 011d1 48 03 c8 add rcx, rax 011d4 48 8b c1 mov rax, rcx 011d7 48 89 85 88 01 00 00 mov QWORD PTR cur$1[rbp], rax $LN76@stbi__crea: 011de 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 011e4 39 45 44 cmp DWORD PTR i$[rbp], eax 011e7 73 17 jae SHORT $LN75@stbi__crea ; 4905 : cur[filter_bytes + 1] = 255; 011e9 8b 85 44 01 00 00 mov eax, DWORD PTR filter_bytes$[rbp] 011ef ff c0 inc eax 011f1 48 98 cdqe 011f3 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR cur$1[rbp] 011fa c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 4906 : } 011fe eb bb jmp SHORT $LN74@stbi__crea $LN75@stbi__crea: $LN135@stbi__crea: $LN119@stbi__crea: ; 4907 : } ; 4908 : } ; 4909 : } 01200 e9 c1 ef ff ff jmp $LN2@stbi__crea $LN3@stbi__crea: ; 4910 : ; 4911 : // we make a separate pass to expand bits to pixels; for performance, ; 4912 : // this could run two scanlines behind the above code, so it won't ; 4913 : // intefere with filtering but will still be in the cache. ; 4914 : if (depth < 8) { 01205 83 bd 90 04 00 00 08 cmp DWORD PTR depth$[rbp], 8 0120c 0f 8d c0 08 00 00 jge $LN136@stbi__crea ; 4915 : for (j = 0; j < y; ++j) { 01212 c7 45 64 00 00 00 00 mov DWORD PTR j$[rbp], 0 01219 eb 08 jmp SHORT $LN79@stbi__crea $LN77@stbi__crea: 0121b 8b 45 64 mov eax, DWORD PTR j$[rbp] 0121e ff c0 inc eax 01220 89 45 64 mov DWORD PTR j$[rbp], eax $LN79@stbi__crea: 01223 8b 85 88 04 00 00 mov eax, DWORD PTR y$[rbp] 01229 39 45 64 cmp DWORD PTR j$[rbp], eax 0122c 0f 83 9b 08 00 00 jae $LN78@stbi__crea ; 4916 : stbi_uc *cur = a->out + stride * j; 01232 8b 85 84 00 00 00 mov eax, DWORD PTR stride$[rbp] 01238 0f af 45 64 imul eax, DWORD PTR j$[rbp] 0123c 8b c0 mov eax, eax 0123e 48 8b 8d 60 04 00 00 mov rcx, QWORD PTR a$[rbp] 01245 48 03 41 18 add rax, QWORD PTR [rcx+24] 01249 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4917 : stbi_uc *in = a->out + stride * j + x * out_n - img_width_bytes; 01250 8b 85 84 00 00 00 mov eax, DWORD PTR stride$[rbp] 01256 0f af 45 64 imul eax, DWORD PTR j$[rbp] 0125a 8b c0 mov eax, eax 0125c 48 8b 8d 60 04 00 00 mov rcx, QWORD PTR a$[rbp] 01263 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] 01267 48 03 c8 add rcx, rax 0126a 48 8b c1 mov rax, rcx 0126d 8b 8d 80 04 00 00 mov ecx, DWORD PTR x$[rbp] 01273 0f af 8d 78 04 00 00 imul ecx, DWORD PTR out_n$[rbp] 0127a 8b c9 mov ecx, ecx 0127c 48 03 c1 add rax, rcx 0127f 8b 8d c4 00 00 00 mov ecx, DWORD PTR img_width_bytes$[rbp] 01285 48 2b c1 sub rax, rcx 01288 48 89 85 28 02 00 00 mov QWORD PTR in$6[rbp], rax ; 4918 : // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit ; 4919 : // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop ; 4920 : stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 0128f 83 bd 98 04 00 00 00 cmp DWORD PTR color$[rbp], 0 01296 75 1a jne SHORT $LN163@stbi__crea 01298 48 63 85 90 04 00 00 movsxd rax, DWORD PTR depth$[rbp] 0129f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__depth_scale_table 012a6 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 012aa 89 85 34 04 00 00 mov DWORD PTR tv666[rbp], eax 012b0 eb 0a jmp SHORT $LN164@stbi__crea $LN163@stbi__crea: 012b2 c7 85 34 04 00 00 01 00 00 00 mov DWORD PTR tv666[rbp], 1 $LN164@stbi__crea: 012bc 0f b6 85 34 04 00 00 movzx eax, BYTE PTR tv666[rbp] 012c3 88 85 44 02 00 00 mov BYTE PTR scale$7[rbp], al ; 4921 : 1; // scale grayscale values to 0..255 range ; 4922 : ; 4923 : // note that the final byte might overshoot and write more data than desired. ; 4924 : // we can allocate enough data that this never writes out of memory, but it ; 4925 : // could also overwrite the next scanline. can it overwrite non-empty data ; 4926 : // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel. ; 4927 : // so we need to explicitly clamp the final ones ; 4928 : ; 4929 : if (depth == 4) { 012c9 83 bd 90 04 00 00 04 cmp DWORD PTR depth$[rbp], 4 012d0 0f 85 e4 00 00 00 jne $LN138@stbi__crea ; 4930 : for (k = x * img_n; k >= 2; k -= 2, ++in) { 012d6 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 012dc 0f af 85 04 01 00 00 imul eax, DWORD PTR img_n$[rbp] 012e3 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax 012e9 eb 20 jmp SHORT $LN82@stbi__crea $LN80@stbi__crea: 012eb 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 012f1 83 e8 02 sub eax, 2 012f4 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax 012fa 48 8b 85 28 02 00 00 mov rax, QWORD PTR in$6[rbp] 01301 48 ff c0 inc rax 01304 48 89 85 28 02 00 00 mov QWORD PTR in$6[rbp], rax $LN82@stbi__crea: 0130b 83 bd e4 00 00 00 02 cmp DWORD PTR k$[rbp], 2 01312 7c 67 jl SHORT $LN81@stbi__crea ; 4931 : *cur++ = scale * ((*in >> 4)); 01314 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0131b 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01322 0f b6 09 movzx ecx, BYTE PTR [rcx] 01325 c1 f9 04 sar ecx, 4 01328 0f af c1 imul eax, ecx 0132b 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01332 88 01 mov BYTE PTR [rcx], al 01334 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 0133b 48 ff c0 inc rax 0133e 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4932 : *cur++ = scale * ((*in) & 0x0f); 01345 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0134c 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01353 0f b6 09 movzx ecx, BYTE PTR [rcx] 01356 83 e1 0f and ecx, 15 01359 0f af c1 imul eax, ecx 0135c 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01363 88 01 mov BYTE PTR [rcx], al 01365 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 0136c 48 ff c0 inc rax 0136f 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4933 : } 01376 e9 70 ff ff ff jmp $LN80@stbi__crea $LN81@stbi__crea: ; 4934 : if (k > 0) 0137b 83 bd e4 00 00 00 00 cmp DWORD PTR k$[rbp], 0 01382 7e 31 jle SHORT $LN140@stbi__crea ; 4935 : *cur++ = scale * ((*in >> 4)); 01384 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0138b 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01392 0f b6 09 movzx ecx, BYTE PTR [rcx] 01395 c1 f9 04 sar ecx, 4 01398 0f af c1 imul eax, ecx 0139b 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 013a2 88 01 mov BYTE PTR [rcx], al 013a4 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 013ab 48 ff c0 inc rax 013ae 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN140@stbi__crea: ; 4936 : } else if (depth == 2) { 013b5 e9 6b 05 00 00 jmp $LN139@stbi__crea $LN138@stbi__crea: 013ba 83 bd 90 04 00 00 02 cmp DWORD PTR depth$[rbp], 2 013c1 0f 85 ca 01 00 00 jne $LN141@stbi__crea ; 4937 : for (k = x * img_n; k >= 4; k -= 4, ++in) { 013c7 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 013cd 0f af 85 04 01 00 00 imul eax, DWORD PTR img_n$[rbp] 013d4 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax 013da eb 20 jmp SHORT $LN85@stbi__crea $LN83@stbi__crea: 013dc 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 013e2 83 e8 04 sub eax, 4 013e5 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax 013eb 48 8b 85 28 02 00 00 mov rax, QWORD PTR in$6[rbp] 013f2 48 ff c0 inc rax 013f5 48 89 85 28 02 00 00 mov QWORD PTR in$6[rbp], rax $LN85@stbi__crea: 013fc 83 bd e4 00 00 00 04 cmp DWORD PTR k$[rbp], 4 01403 0f 8c cf 00 00 00 jl $LN84@stbi__crea ; 4938 : *cur++ = scale * ((*in >> 6)); 01409 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 01410 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01417 0f b6 09 movzx ecx, BYTE PTR [rcx] 0141a c1 f9 06 sar ecx, 6 0141d 0f af c1 imul eax, ecx 01420 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01427 88 01 mov BYTE PTR [rcx], al 01429 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01430 48 ff c0 inc rax 01433 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4939 : *cur++ = scale * ((*in >> 4) & 0x03); 0143a 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 01441 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01448 0f b6 09 movzx ecx, BYTE PTR [rcx] 0144b c1 f9 04 sar ecx, 4 0144e 83 e1 03 and ecx, 3 01451 0f af c1 imul eax, ecx 01454 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 0145b 88 01 mov BYTE PTR [rcx], al 0145d 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01464 48 ff c0 inc rax 01467 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4940 : *cur++ = scale * ((*in >> 2) & 0x03); 0146e 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 01475 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 0147c 0f b6 09 movzx ecx, BYTE PTR [rcx] 0147f c1 f9 02 sar ecx, 2 01482 83 e1 03 and ecx, 3 01485 0f af c1 imul eax, ecx 01488 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 0148f 88 01 mov BYTE PTR [rcx], al 01491 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01498 48 ff c0 inc rax 0149b 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4941 : *cur++ = scale * ((*in) & 0x03); 014a2 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 014a9 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 014b0 0f b6 09 movzx ecx, BYTE PTR [rcx] 014b3 83 e1 03 and ecx, 3 014b6 0f af c1 imul eax, ecx 014b9 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 014c0 88 01 mov BYTE PTR [rcx], al 014c2 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 014c9 48 ff c0 inc rax 014cc 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4942 : } 014d3 e9 04 ff ff ff jmp $LN83@stbi__crea $LN84@stbi__crea: ; 4943 : if (k > 0) 014d8 83 bd e4 00 00 00 00 cmp DWORD PTR k$[rbp], 0 014df 7e 31 jle SHORT $LN143@stbi__crea ; 4944 : *cur++ = scale * ((*in >> 6)); 014e1 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 014e8 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 014ef 0f b6 09 movzx ecx, BYTE PTR [rcx] 014f2 c1 f9 06 sar ecx, 6 014f5 0f af c1 imul eax, ecx 014f8 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 014ff 88 01 mov BYTE PTR [rcx], al 01501 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01508 48 ff c0 inc rax 0150b 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN143@stbi__crea: ; 4945 : if (k > 1) 01512 83 bd e4 00 00 00 01 cmp DWORD PTR k$[rbp], 1 01519 7e 34 jle SHORT $LN144@stbi__crea ; 4946 : *cur++ = scale * ((*in >> 4) & 0x03); 0151b 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 01522 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01529 0f b6 09 movzx ecx, BYTE PTR [rcx] 0152c c1 f9 04 sar ecx, 4 0152f 83 e1 03 and ecx, 3 01532 0f af c1 imul eax, ecx 01535 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 0153c 88 01 mov BYTE PTR [rcx], al 0153e 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01545 48 ff c0 inc rax 01548 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN144@stbi__crea: ; 4947 : if (k > 2) 0154f 83 bd e4 00 00 00 02 cmp DWORD PTR k$[rbp], 2 01556 7e 34 jle SHORT $LN145@stbi__crea ; 4948 : *cur++ = scale * ((*in >> 2) & 0x03); 01558 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0155f 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01566 0f b6 09 movzx ecx, BYTE PTR [rcx] 01569 c1 f9 02 sar ecx, 2 0156c 83 e1 03 and ecx, 3 0156f 0f af c1 imul eax, ecx 01572 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01579 88 01 mov BYTE PTR [rcx], al 0157b 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01582 48 ff c0 inc rax 01585 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN145@stbi__crea: ; 4949 : } else if (depth == 1) { 0158c e9 94 03 00 00 jmp $LN142@stbi__crea $LN141@stbi__crea: 01591 83 bd 90 04 00 00 01 cmp DWORD PTR depth$[rbp], 1 01598 0f 85 87 03 00 00 jne $LN146@stbi__crea ; 4950 : for (k = x * img_n; k >= 8; k -= 8, ++in) { 0159e 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 015a4 0f af 85 04 01 00 00 imul eax, DWORD PTR img_n$[rbp] 015ab 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax 015b1 eb 20 jmp SHORT $LN88@stbi__crea $LN86@stbi__crea: 015b3 8b 85 e4 00 00 00 mov eax, DWORD PTR k$[rbp] 015b9 83 e8 08 sub eax, 8 015bc 89 85 e4 00 00 00 mov DWORD PTR k$[rbp], eax 015c2 48 8b 85 28 02 00 00 mov rax, QWORD PTR in$6[rbp] 015c9 48 ff c0 inc rax 015cc 48 89 85 28 02 00 00 mov QWORD PTR in$6[rbp], rax $LN88@stbi__crea: 015d3 83 bd e4 00 00 00 08 cmp DWORD PTR k$[rbp], 8 015da 0f 8c 9e 01 00 00 jl $LN87@stbi__crea ; 4951 : *cur++ = scale * ((*in >> 7)); 015e0 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 015e7 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 015ee 0f b6 09 movzx ecx, BYTE PTR [rcx] 015f1 c1 f9 07 sar ecx, 7 015f4 0f af c1 imul eax, ecx 015f7 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 015fe 88 01 mov BYTE PTR [rcx], al 01600 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01607 48 ff c0 inc rax 0160a 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4952 : *cur++ = scale * ((*in >> 6) & 0x01); 01611 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 01618 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 0161f 0f b6 09 movzx ecx, BYTE PTR [rcx] 01622 c1 f9 06 sar ecx, 6 01625 83 e1 01 and ecx, 1 01628 0f af c1 imul eax, ecx 0162b 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01632 88 01 mov BYTE PTR [rcx], al 01634 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 0163b 48 ff c0 inc rax 0163e 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4953 : *cur++ = scale * ((*in >> 5) & 0x01); 01645 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0164c 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01653 0f b6 09 movzx ecx, BYTE PTR [rcx] 01656 c1 f9 05 sar ecx, 5 01659 83 e1 01 and ecx, 1 0165c 0f af c1 imul eax, ecx 0165f 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01666 88 01 mov BYTE PTR [rcx], al 01668 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 0166f 48 ff c0 inc rax 01672 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4954 : *cur++ = scale * ((*in >> 4) & 0x01); 01679 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 01680 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01687 0f b6 09 movzx ecx, BYTE PTR [rcx] 0168a c1 f9 04 sar ecx, 4 0168d 83 e1 01 and ecx, 1 01690 0f af c1 imul eax, ecx 01693 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 0169a 88 01 mov BYTE PTR [rcx], al 0169c 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 016a3 48 ff c0 inc rax 016a6 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4955 : *cur++ = scale * ((*in >> 3) & 0x01); 016ad 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 016b4 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 016bb 0f b6 09 movzx ecx, BYTE PTR [rcx] 016be c1 f9 03 sar ecx, 3 016c1 83 e1 01 and ecx, 1 016c4 0f af c1 imul eax, ecx 016c7 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 016ce 88 01 mov BYTE PTR [rcx], al 016d0 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 016d7 48 ff c0 inc rax 016da 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4956 : *cur++ = scale * ((*in >> 2) & 0x01); 016e1 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 016e8 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 016ef 0f b6 09 movzx ecx, BYTE PTR [rcx] 016f2 c1 f9 02 sar ecx, 2 016f5 83 e1 01 and ecx, 1 016f8 0f af c1 imul eax, ecx 016fb 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01702 88 01 mov BYTE PTR [rcx], al 01704 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 0170b 48 ff c0 inc rax 0170e 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4957 : *cur++ = scale * ((*in >> 1) & 0x01); 01715 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0171c 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01723 0f b6 09 movzx ecx, BYTE PTR [rcx] 01726 d1 f9 sar ecx, 1 01728 83 e1 01 and ecx, 1 0172b 0f af c1 imul eax, ecx 0172e 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01735 88 01 mov BYTE PTR [rcx], al 01737 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 0173e 48 ff c0 inc rax 01741 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4958 : *cur++ = scale * ((*in) & 0x01); 01748 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0174f 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01756 0f b6 09 movzx ecx, BYTE PTR [rcx] 01759 83 e1 01 and ecx, 1 0175c 0f af c1 imul eax, ecx 0175f 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01766 88 01 mov BYTE PTR [rcx], al 01768 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 0176f 48 ff c0 inc rax 01772 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4959 : } 01779 e9 35 fe ff ff jmp $LN86@stbi__crea $LN87@stbi__crea: ; 4960 : if (k > 0) 0177e 83 bd e4 00 00 00 00 cmp DWORD PTR k$[rbp], 0 01785 7e 31 jle SHORT $LN147@stbi__crea ; 4961 : *cur++ = scale * ((*in >> 7)); 01787 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0178e 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01795 0f b6 09 movzx ecx, BYTE PTR [rcx] 01798 c1 f9 07 sar ecx, 7 0179b 0f af c1 imul eax, ecx 0179e 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 017a5 88 01 mov BYTE PTR [rcx], al 017a7 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 017ae 48 ff c0 inc rax 017b1 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN147@stbi__crea: ; 4962 : if (k > 1) 017b8 83 bd e4 00 00 00 01 cmp DWORD PTR k$[rbp], 1 017bf 7e 34 jle SHORT $LN148@stbi__crea ; 4963 : *cur++ = scale * ((*in >> 6) & 0x01); 017c1 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 017c8 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 017cf 0f b6 09 movzx ecx, BYTE PTR [rcx] 017d2 c1 f9 06 sar ecx, 6 017d5 83 e1 01 and ecx, 1 017d8 0f af c1 imul eax, ecx 017db 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 017e2 88 01 mov BYTE PTR [rcx], al 017e4 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 017eb 48 ff c0 inc rax 017ee 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN148@stbi__crea: ; 4964 : if (k > 2) 017f5 83 bd e4 00 00 00 02 cmp DWORD PTR k$[rbp], 2 017fc 7e 34 jle SHORT $LN149@stbi__crea ; 4965 : *cur++ = scale * ((*in >> 5) & 0x01); 017fe 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 01805 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 0180c 0f b6 09 movzx ecx, BYTE PTR [rcx] 0180f c1 f9 05 sar ecx, 5 01812 83 e1 01 and ecx, 1 01815 0f af c1 imul eax, ecx 01818 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 0181f 88 01 mov BYTE PTR [rcx], al 01821 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01828 48 ff c0 inc rax 0182b 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN149@stbi__crea: ; 4966 : if (k > 3) 01832 83 bd e4 00 00 00 03 cmp DWORD PTR k$[rbp], 3 01839 7e 34 jle SHORT $LN150@stbi__crea ; 4967 : *cur++ = scale * ((*in >> 4) & 0x01); 0183b 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 01842 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01849 0f b6 09 movzx ecx, BYTE PTR [rcx] 0184c c1 f9 04 sar ecx, 4 0184f 83 e1 01 and ecx, 1 01852 0f af c1 imul eax, ecx 01855 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 0185c 88 01 mov BYTE PTR [rcx], al 0185e 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 01865 48 ff c0 inc rax 01868 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN150@stbi__crea: ; 4968 : if (k > 4) 0186f 83 bd e4 00 00 00 04 cmp DWORD PTR k$[rbp], 4 01876 7e 34 jle SHORT $LN151@stbi__crea ; 4969 : *cur++ = scale * ((*in >> 3) & 0x01); 01878 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 0187f 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01886 0f b6 09 movzx ecx, BYTE PTR [rcx] 01889 c1 f9 03 sar ecx, 3 0188c 83 e1 01 and ecx, 1 0188f 0f af c1 imul eax, ecx 01892 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01899 88 01 mov BYTE PTR [rcx], al 0189b 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 018a2 48 ff c0 inc rax 018a5 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN151@stbi__crea: ; 4970 : if (k > 5) 018ac 83 bd e4 00 00 00 05 cmp DWORD PTR k$[rbp], 5 018b3 7e 34 jle SHORT $LN152@stbi__crea ; 4971 : *cur++ = scale * ((*in >> 2) & 0x01); 018b5 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 018bc 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 018c3 0f b6 09 movzx ecx, BYTE PTR [rcx] 018c6 c1 f9 02 sar ecx, 2 018c9 83 e1 01 and ecx, 1 018cc 0f af c1 imul eax, ecx 018cf 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 018d6 88 01 mov BYTE PTR [rcx], al 018d8 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 018df 48 ff c0 inc rax 018e2 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN152@stbi__crea: ; 4972 : if (k > 6) 018e9 83 bd e4 00 00 00 06 cmp DWORD PTR k$[rbp], 6 018f0 7e 33 jle SHORT $LN153@stbi__crea ; 4973 : *cur++ = scale * ((*in >> 1) & 0x01); 018f2 0f b6 85 44 02 00 00 movzx eax, BYTE PTR scale$7[rbp] 018f9 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR in$6[rbp] 01900 0f b6 09 movzx ecx, BYTE PTR [rcx] 01903 d1 f9 sar ecx, 1 01905 83 e1 01 and ecx, 1 01908 0f af c1 imul eax, ecx 0190b 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01912 88 01 mov BYTE PTR [rcx], al 01914 48 8b 85 08 02 00 00 mov rax, QWORD PTR cur$5[rbp] 0191b 48 ff c0 inc rax 0191e 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax $LN153@stbi__crea: $LN146@stbi__crea: $LN142@stbi__crea: $LN139@stbi__crea: ; 4974 : } ; 4975 : if (img_n != out_n) { 01925 8b 85 78 04 00 00 mov eax, DWORD PTR out_n$[rbp] 0192b 39 85 04 01 00 00 cmp DWORD PTR img_n$[rbp], eax 01931 0f 84 91 01 00 00 je $LN154@stbi__crea ; 4976 : int q; ; 4977 : // insert alpha = 255 ; 4978 : cur = a->out + stride * j; 01937 8b 85 84 00 00 00 mov eax, DWORD PTR stride$[rbp] 0193d 0f af 45 64 imul eax, DWORD PTR j$[rbp] 01941 8b c0 mov eax, eax 01943 48 8b 8d 60 04 00 00 mov rcx, QWORD PTR a$[rbp] 0194a 48 03 41 18 add rax, QWORD PTR [rcx+24] 0194e 48 89 85 08 02 00 00 mov QWORD PTR cur$5[rbp], rax ; 4979 : if (img_n == 1) { 01955 83 bd 04 01 00 00 01 cmp DWORD PTR img_n$[rbp], 1 0195c 75 6d jne SHORT $LN155@stbi__crea ; 4980 : for (q = x - 1; q >= 0; --q) { 0195e 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 01964 ff c8 dec eax 01966 89 85 64 02 00 00 mov DWORD PTR q$8[rbp], eax 0196c eb 0e jmp SHORT $LN91@stbi__crea $LN89@stbi__crea: 0196e 8b 85 64 02 00 00 mov eax, DWORD PTR q$8[rbp] 01974 ff c8 dec eax 01976 89 85 64 02 00 00 mov DWORD PTR q$8[rbp], eax $LN91@stbi__crea: 0197c 83 bd 64 02 00 00 00 cmp DWORD PTR q$8[rbp], 0 01983 7c 41 jl SHORT $LN90@stbi__crea ; 4981 : cur[q * 2 + 1] = 255; 01985 8b 85 64 02 00 00 mov eax, DWORD PTR q$8[rbp] 0198b 8d 44 00 01 lea eax, DWORD PTR [rax+rax+1] 0198f 48 98 cdqe 01991 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01998 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 4982 : cur[q * 2 + 0] = cur[q]; 0199c 48 63 85 64 02 00 00 movsxd rax, DWORD PTR q$8[rbp] 019a3 8b 8d 64 02 00 00 mov ecx, DWORD PTR q$8[rbp] 019a9 03 c9 add ecx, ecx 019ab 48 63 c9 movsxd rcx, ecx 019ae 48 8b 95 08 02 00 00 mov rdx, QWORD PTR cur$5[rbp] 019b5 4c 8b 85 08 02 00 00 mov r8, QWORD PTR cur$5[rbp] 019bc 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 019c1 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4983 : } 019c4 eb a8 jmp SHORT $LN89@stbi__crea $LN90@stbi__crea: ; 4984 : } else { 019c6 e9 fd 00 00 00 jmp $LN156@stbi__crea $LN155@stbi__crea: ; 4985 : STBI_ASSERT(img_n == 3); 019cb 83 bd 04 01 00 00 03 cmp DWORD PTR img_n$[rbp], 3 019d2 74 1c je SHORT $LN165@stbi__crea 019d4 41 b8 79 13 00 00 mov r8d, 4985 ; 00001379H 019da 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 019e1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ 019e8 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 019ee 33 c0 xor eax, eax $LN165@stbi__crea: ; 4986 : for (q = x - 1; q >= 0; --q) { 019f0 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 019f6 ff c8 dec eax 019f8 89 85 64 02 00 00 mov DWORD PTR q$8[rbp], eax 019fe eb 0e jmp SHORT $LN94@stbi__crea $LN92@stbi__crea: 01a00 8b 85 64 02 00 00 mov eax, DWORD PTR q$8[rbp] 01a06 ff c8 dec eax 01a08 89 85 64 02 00 00 mov DWORD PTR q$8[rbp], eax $LN94@stbi__crea: 01a0e 83 bd 64 02 00 00 00 cmp DWORD PTR q$8[rbp], 0 01a15 0f 8c ad 00 00 00 jl $LN93@stbi__crea ; 4987 : cur[q * 4 + 3] = 255; 01a1b 8b 85 64 02 00 00 mov eax, DWORD PTR q$8[rbp] 01a21 8d 04 85 03 00 00 00 lea eax, DWORD PTR [rax*4+3] 01a28 48 98 cdqe 01a2a 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR cur$5[rbp] 01a31 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 4988 : cur[q * 4 + 2] = cur[q * 3 + 2]; 01a35 6b 85 64 02 00 00 03 imul eax, DWORD PTR q$8[rbp], 3 01a3c 83 c0 02 add eax, 2 01a3f 48 98 cdqe 01a41 8b 8d 64 02 00 00 mov ecx, DWORD PTR q$8[rbp] 01a47 8d 0c 8d 02 00 00 00 lea ecx, DWORD PTR [rcx*4+2] 01a4e 48 63 c9 movsxd rcx, ecx 01a51 48 8b 95 08 02 00 00 mov rdx, QWORD PTR cur$5[rbp] 01a58 4c 8b 85 08 02 00 00 mov r8, QWORD PTR cur$5[rbp] 01a5f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 01a64 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4989 : cur[q * 4 + 1] = cur[q * 3 + 1]; 01a67 6b 85 64 02 00 00 03 imul eax, DWORD PTR q$8[rbp], 3 01a6e ff c0 inc eax 01a70 48 98 cdqe 01a72 8b 8d 64 02 00 00 mov ecx, DWORD PTR q$8[rbp] 01a78 8d 0c 8d 01 00 00 00 lea ecx, DWORD PTR [rcx*4+1] 01a7f 48 63 c9 movsxd rcx, ecx 01a82 48 8b 95 08 02 00 00 mov rdx, QWORD PTR cur$5[rbp] 01a89 4c 8b 85 08 02 00 00 mov r8, QWORD PTR cur$5[rbp] 01a90 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 01a95 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4990 : cur[q * 4 + 0] = cur[q * 3 + 0]; 01a98 6b 85 64 02 00 00 03 imul eax, DWORD PTR q$8[rbp], 3 01a9f 48 98 cdqe 01aa1 8b 8d 64 02 00 00 mov ecx, DWORD PTR q$8[rbp] 01aa7 c1 e1 02 shl ecx, 2 01aaa 48 63 c9 movsxd rcx, ecx 01aad 48 8b 95 08 02 00 00 mov rdx, QWORD PTR cur$5[rbp] 01ab4 4c 8b 85 08 02 00 00 mov r8, QWORD PTR cur$5[rbp] 01abb 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 01ac0 88 04 0a mov BYTE PTR [rdx+rcx], al ; 4991 : } 01ac3 e9 38 ff ff ff jmp $LN92@stbi__crea $LN93@stbi__crea: $LN156@stbi__crea: $LN154@stbi__crea: ; 4992 : } ; 4993 : } ; 4994 : } 01ac8 e9 4e f7 ff ff jmp $LN77@stbi__crea $LN78@stbi__crea: ; 4995 : } else if (depth == 16) { 01acd e9 b4 00 00 00 jmp $LN137@stbi__crea $LN136@stbi__crea: 01ad2 83 bd 90 04 00 00 10 cmp DWORD PTR depth$[rbp], 16 01ad9 0f 85 a7 00 00 00 jne $LN157@stbi__crea ; 4996 : // force the image data from big-endian to platform-native. ; 4997 : // this is done in a separate pass due to the decoding relying ; 4998 : // on the data being untouched, but could probably be done ; 4999 : // per-line during decode if care is taken. ; 5000 : stbi_uc *cur = a->out; 01adf 48 8b 85 60 04 00 00 mov rax, QWORD PTR a$[rbp] 01ae6 48 8b 40 18 mov rax, QWORD PTR [rax+24] 01aea 48 89 85 88 02 00 00 mov QWORD PTR cur$9[rbp], rax ; 5001 : stbi__uint16 *cur16 = (stbi__uint16 *)cur; 01af1 48 8b 85 88 02 00 00 mov rax, QWORD PTR cur$9[rbp] 01af8 48 89 85 a8 02 00 00 mov QWORD PTR cur16$10[rbp], rax ; 5002 : ; 5003 : for (i = 0; i < x * y * out_n; ++i, cur16++, cur += 2) { 01aff c7 45 44 00 00 00 00 mov DWORD PTR i$[rbp], 0 01b06 eb 2c jmp SHORT $LN97@stbi__crea $LN95@stbi__crea: 01b08 8b 45 44 mov eax, DWORD PTR i$[rbp] 01b0b ff c0 inc eax 01b0d 89 45 44 mov DWORD PTR i$[rbp], eax 01b10 48 8b 85 a8 02 00 00 mov rax, QWORD PTR cur16$10[rbp] 01b17 48 83 c0 02 add rax, 2 01b1b 48 89 85 a8 02 00 00 mov QWORD PTR cur16$10[rbp], rax 01b22 48 8b 85 88 02 00 00 mov rax, QWORD PTR cur$9[rbp] 01b29 48 83 c0 02 add rax, 2 01b2d 48 89 85 88 02 00 00 mov QWORD PTR cur$9[rbp], rax $LN97@stbi__crea: 01b34 8b 85 80 04 00 00 mov eax, DWORD PTR x$[rbp] 01b3a 0f af 85 88 04 00 00 imul eax, DWORD PTR y$[rbp] 01b41 0f af 85 78 04 00 00 imul eax, DWORD PTR out_n$[rbp] 01b48 39 45 44 cmp DWORD PTR i$[rbp], eax 01b4b 73 39 jae SHORT $LN96@stbi__crea ; 5004 : *cur16 = (cur[0] << 8) | cur[1]; 01b4d b8 01 00 00 00 mov eax, 1 01b52 48 6b c0 00 imul rax, rax, 0 01b56 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR cur$9[rbp] 01b5d 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 01b61 c1 e0 08 shl eax, 8 01b64 b9 01 00 00 00 mov ecx, 1 01b69 48 6b c9 01 imul rcx, rcx, 1 01b6d 48 8b 95 88 02 00 00 mov rdx, QWORD PTR cur$9[rbp] 01b74 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 01b78 0b c1 or eax, ecx 01b7a 48 8b 8d a8 02 00 00 mov rcx, QWORD PTR cur16$10[rbp] 01b81 66 89 01 mov WORD PTR [rcx], ax ; 5005 : } 01b84 eb 82 jmp SHORT $LN95@stbi__crea $LN96@stbi__crea: $LN157@stbi__crea: $LN137@stbi__crea: ; 5006 : } ; 5007 : ; 5008 : return 1; 01b86 b8 01 00 00 00 mov eax, 1 $LN1@stbi__crea: ; 5009 : } 01b8b 48 8d a5 48 04 00 00 lea rsp, QWORD PTR [rbp+1096] 01b92 5f pop rdi 01b93 5d pop rbp 01b94 c3 ret 0 01b95 0f 1f 00 npad 3 $LN168@stbi__crea: 01b98 00 00 00 00 DD $LN105@stbi__crea 01b9c 00 00 00 00 DD $LN106@stbi__crea 01ba0 00 00 00 00 DD $LN107@stbi__crea 01ba4 00 00 00 00 DD $LN108@stbi__crea 01ba8 00 00 00 00 DD $LN109@stbi__crea 01bac 00 00 00 00 DD $LN110@stbi__crea 01bb0 00 00 00 00 DD $LN111@stbi__crea $LN167@stbi__crea: 01bb4 00 00 00 00 DD $LN121@stbi__crea 01bb8 00 00 00 00 DD $LN122@stbi__crea 01bbc 00 00 00 00 DD $LN123@stbi__crea 01bc0 00 00 00 00 DD $LN124@stbi__crea 01bc4 00 00 00 00 DD $LN125@stbi__crea 01bc8 00 00 00 00 DD $LN126@stbi__crea 01bcc 00 00 00 00 DD $LN127@stbi__crea $LN166@stbi__crea: 01bd0 00 00 00 00 DD $LN128@stbi__crea 01bd4 00 00 00 00 DD $LN129@stbi__crea 01bd8 00 00 00 00 DD $LN130@stbi__crea 01bdc 00 00 00 00 DD $LN131@stbi__crea 01be0 00 00 00 00 DD $LN132@stbi__crea 01be4 00 00 00 00 DD $LN133@stbi__crea 01be8 00 00 00 00 DD $LN134@stbi__crea stbi__create_png_image_raw ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__paeth _TEXT SEGMENT p$ = 4 pa$ = 36 pb$ = 68 pc$ = 100 a$ = 352 b$ = 360 c$ = 368 stbi__paeth PROC ; COMDAT ; 4681 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 0000d 55 push rbp 0000e 57 push rdi 0000f 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00027 90 npad 1 ; 4682 : int p = a + b - c; 00028 8b 85 68 01 00 00 mov eax, DWORD PTR b$[rbp] 0002e 8b 8d 60 01 00 00 mov ecx, DWORD PTR a$[rbp] 00034 03 c8 add ecx, eax 00036 8b c1 mov eax, ecx 00038 2b 85 70 01 00 00 sub eax, DWORD PTR c$[rbp] 0003e 89 45 04 mov DWORD PTR p$[rbp], eax ; 4683 : int pa = abs(p - a); 00041 8b 85 60 01 00 00 mov eax, DWORD PTR a$[rbp] 00047 8b 4d 04 mov ecx, DWORD PTR p$[rbp] 0004a 2b c8 sub ecx, eax 0004c 8b c1 mov eax, ecx 0004e 8b c8 mov ecx, eax 00050 e8 00 00 00 00 call abs 00055 89 45 24 mov DWORD PTR pa$[rbp], eax ; 4684 : int pb = abs(p - b); 00058 8b 85 68 01 00 00 mov eax, DWORD PTR b$[rbp] 0005e 8b 4d 04 mov ecx, DWORD PTR p$[rbp] 00061 2b c8 sub ecx, eax 00063 8b c1 mov eax, ecx 00065 8b c8 mov ecx, eax 00067 e8 00 00 00 00 call abs 0006c 89 45 44 mov DWORD PTR pb$[rbp], eax ; 4685 : int pc = abs(p - c); 0006f 8b 85 70 01 00 00 mov eax, DWORD PTR c$[rbp] 00075 8b 4d 04 mov ecx, DWORD PTR p$[rbp] 00078 2b c8 sub ecx, eax 0007a 8b c1 mov eax, ecx 0007c 8b c8 mov ecx, eax 0007e e8 00 00 00 00 call abs 00083 89 45 64 mov DWORD PTR pc$[rbp], eax ; 4686 : if (pa <= pb && pa <= pc) 00086 8b 45 44 mov eax, DWORD PTR pb$[rbp] 00089 39 45 24 cmp DWORD PTR pa$[rbp], eax 0008c 7f 10 jg SHORT $LN2@stbi__paet 0008e 8b 45 64 mov eax, DWORD PTR pc$[rbp] 00091 39 45 24 cmp DWORD PTR pa$[rbp], eax 00094 7f 08 jg SHORT $LN2@stbi__paet ; 4687 : return a; 00096 8b 85 60 01 00 00 mov eax, DWORD PTR a$[rbp] 0009c eb 16 jmp SHORT $LN1@stbi__paet $LN2@stbi__paet: ; 4688 : if (pb <= pc) 0009e 8b 45 64 mov eax, DWORD PTR pc$[rbp] 000a1 39 45 44 cmp DWORD PTR pb$[rbp], eax 000a4 7f 08 jg SHORT $LN3@stbi__paet ; 4689 : return b; 000a6 8b 85 68 01 00 00 mov eax, DWORD PTR b$[rbp] 000ac eb 06 jmp SHORT $LN1@stbi__paet $LN3@stbi__paet: ; 4690 : return c; 000ae 8b 85 70 01 00 00 mov eax, DWORD PTR c$[rbp] $LN1@stbi__paet: ; 4691 : } 000b4 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 000bb 5f pop rdi 000bc 5d pop rbp 000bd c3 ret 0 stbi__paeth ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__check_png_header _TEXT SEGMENT i$ = 4 s$ = 256 stbi__check_png_header PROC ; COMDAT ; 4651 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 4652 : static const stbi_uc png_sig[8] = { 137, 80, 78, 71, 13, 10, 26, 10 }; ; 4653 : int i; ; 4654 : for (i = 0; i < 8; ++i) 00020 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00027 eb 08 jmp SHORT $LN4@stbi__chec $LN2@stbi__chec: 00029 8b 45 04 mov eax, DWORD PTR i$[rbp] 0002c ff c0 inc eax 0002e 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__chec: 00031 83 7d 04 08 cmp DWORD PTR i$[rbp], 8 00035 7d 32 jge SHORT $LN3@stbi__chec ; 4655 : if (stbi__get8(s) != png_sig[i]) 00037 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0003e e8 00 00 00 00 call stbi__get8 00043 0f b6 c0 movzx eax, al 00046 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 0004a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?png_sig@?1??stbi__check_png_header@@9@9 00051 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00055 3b c1 cmp eax, ecx 00057 74 0e je SHORT $LN5@stbi__chec ; 4656 : return stbi__err("bad png sig", "Not a PNG"); 00059 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@DMDNBACF@bad?5png?5sig@ 00060 e8 00 00 00 00 call stbi__err 00065 eb 07 jmp SHORT $LN1@stbi__chec $LN5@stbi__chec: 00067 eb c0 jmp SHORT $LN2@stbi__chec $LN3@stbi__chec: ; 4657 : return 1; 00069 b8 01 00 00 00 mov eax, 1 $LN1@stbi__chec: ; 4658 : } 0006e 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00075 5f pop rdi 00076 5d pop rbp 00077 c3 ret 0 stbi__check_png_header ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__get_chunk_header _TEXT SEGMENT c$ = 8 s$ = 256 stbi__get_chunk_header PROC ; COMDAT ; 4643 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00018 b9 0a 00 00 00 mov ecx, 10 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00022 f3 ab rep stosd 00024 48 8b 8c 24 28 01 00 00 mov rcx, QWORD PTR [rsp+296] 0002c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00038 90 npad 1 ; 4644 : stbi__pngchunk c; ; 4645 : c.length = stbi__get32be(s); 00039 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00040 e8 00 00 00 00 call stbi__get32be 00045 89 45 08 mov DWORD PTR c$[rbp], eax ; 4646 : c.type = stbi__get32be(s); 00048 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0004f e8 00 00 00 00 call stbi__get32be 00054 89 45 0c mov DWORD PTR c$[rbp+4], eax ; 4647 : return c; 00057 48 8b 45 08 mov rax, QWORD PTR c$[rbp] ; 4648 : } 0005b 48 8b f8 mov rdi, rax 0005e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00062 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__get_chunk_header$rtcFrameData 00069 e8 00 00 00 00 call _RTC_CheckStackVars 0006e 48 8b c7 mov rax, rdi 00071 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00078 5f pop rdi 00079 5d pop rbp 0007a c3 ret 0 stbi__get_chunk_header ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__do_zlib _TEXT SEGMENT a$ = 224 obuf$ = 232 olen$ = 240 exp$ = 248 parse_header$ = 256 stbi__do_zlib PROC ; COMDAT ; 4532 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 4533 : a->zout_start = obuf; 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR a$[rbp] 00036 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR obuf$[rbp] 0003d 48 89 48 20 mov QWORD PTR [rax+32], rcx ; 4534 : a->zout = obuf; 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR a$[rbp] 00048 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR obuf$[rbp] 0004f 48 89 48 18 mov QWORD PTR [rax+24], rcx ; 4535 : a->zout_end = obuf + olen; 00053 48 63 85 f0 00 00 00 movsxd rax, DWORD PTR olen$[rbp] 0005a 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR obuf$[rbp] 00061 48 03 c8 add rcx, rax 00064 48 8b c1 mov rax, rcx 00067 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR a$[rbp] 0006e 48 89 41 28 mov QWORD PTR [rcx+40], rax ; 4536 : a->z_expandable = exp; 00072 48 8b 85 e0 00 00 00 mov rax, QWORD PTR a$[rbp] 00079 8b 8d f8 00 00 00 mov ecx, DWORD PTR exp$[rbp] 0007f 89 48 30 mov DWORD PTR [rax+48], ecx ; 4537 : ; 4538 : return stbi__parse_zlib(a, parse_header); 00082 8b 95 00 01 00 00 mov edx, DWORD PTR parse_header$[rbp] 00088 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR a$[rbp] 0008f e8 00 00 00 00 call stbi__parse_zlib ; 4539 : } 00094 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0009b 5f pop rdi 0009c 5d pop rbp 0009d c3 ret 0 stbi__do_zlib ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__parse_zlib _TEXT SEGMENT final$ = 4 type$ = 36 a$ = 288 parse_header$ = 296 stbi__parse_zlib PROC ; COMDAT ; 4496 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 4497 : int final, type; ; 4498 : if (parse_header) 00024 83 bd 28 01 00 00 00 cmp DWORD PTR parse_header$[rbp], 0 0002b 74 17 je SHORT $LN5@stbi__pars ; 4499 : if (!stbi__parse_zlib_header(a)) 0002d 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 00034 e8 00 00 00 00 call stbi__parse_zlib_header 00039 85 c0 test eax, eax 0003b 75 07 jne SHORT $LN6@stbi__pars ; 4500 : return 0; 0003d 33 c0 xor eax, eax 0003f e9 09 01 00 00 jmp $LN1@stbi__pars $LN6@stbi__pars: $LN5@stbi__pars: ; 4501 : a->num_bits = 0; 00044 48 8b 85 20 01 00 00 mov rax, QWORD PTR a$[rbp] 0004b c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 4502 : a->code_buffer = 0; 00052 48 8b 85 20 01 00 00 mov rax, QWORD PTR a$[rbp] 00059 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 $LN4@stbi__pars: ; 4503 : do { ; 4504 : final = stbi__zreceive(a, 1); 00060 ba 01 00 00 00 mov edx, 1 00065 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 0006c e8 00 00 00 00 call stbi__zreceive 00071 89 45 04 mov DWORD PTR final$[rbp], eax ; 4505 : type = stbi__zreceive(a, 2); 00074 ba 02 00 00 00 mov edx, 2 00079 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 00080 e8 00 00 00 00 call stbi__zreceive 00085 89 45 24 mov DWORD PTR type$[rbp], eax ; 4506 : if (type == 0) { 00088 83 7d 24 00 cmp DWORD PTR type$[rbp], 0 0008c 75 1c jne SHORT $LN7@stbi__pars ; 4507 : if (!stbi__parse_uncompressed_block(a)) 0008e 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 00095 e8 00 00 00 00 call stbi__parse_uncompressed_block 0009a 85 c0 test eax, eax 0009c 75 07 jne SHORT $LN9@stbi__pars ; 4508 : return 0; 0009e 33 c0 xor eax, eax 000a0 e9 a8 00 00 00 jmp $LN1@stbi__pars $LN9@stbi__pars: ; 4509 : } else if (type == 3) { 000a5 e9 94 00 00 00 jmp $LN8@stbi__pars $LN7@stbi__pars: 000aa 83 7d 24 03 cmp DWORD PTR type$[rbp], 3 000ae 75 0c jne SHORT $LN10@stbi__pars ; 4510 : return 0; 000b0 33 c0 xor eax, eax 000b2 e9 96 00 00 00 jmp $LN1@stbi__pars ; 4511 : } else { 000b7 e9 82 00 00 00 jmp $LN11@stbi__pars $LN10@stbi__pars: ; 4512 : if (type == 1) { 000bc 83 7d 24 01 cmp DWORD PTR type$[rbp], 1 000c0 75 54 jne SHORT $LN12@stbi__pars ; 4513 : // use fixed code lengths ; 4514 : if (!stbi__zbuild_huffman(&a->z_length, stbi__zdefault_length, 000c2 48 8b 85 20 01 00 00 mov rax, QWORD PTR a$[rbp] 000c9 48 83 c0 34 add rax, 52 ; 00000034H 000cd 41 b8 20 01 00 00 mov r8d, 288 ; 00000120H 000d3 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__zdefault_length 000da 48 8b c8 mov rcx, rax 000dd e8 00 00 00 00 call stbi__zbuild_huffman 000e2 85 c0 test eax, eax 000e4 75 04 jne SHORT $LN14@stbi__pars ; 4515 : STBI__ZNSYMS)) ; 4516 : return 0; 000e6 33 c0 xor eax, eax 000e8 eb 63 jmp SHORT $LN1@stbi__pars $LN14@stbi__pars: ; 4517 : if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 000ea 48 8b 85 20 01 00 00 mov rax, QWORD PTR a$[rbp] 000f1 48 05 18 08 00 00 add rax, 2072 ; 00000818H 000f7 41 b8 20 00 00 00 mov r8d, 32 ; 00000020H 000fd 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__zdefault_distance 00104 48 8b c8 mov rcx, rax 00107 e8 00 00 00 00 call stbi__zbuild_huffman 0010c 85 c0 test eax, eax 0010e 75 04 jne SHORT $LN15@stbi__pars ; 4518 : 32)) ; 4519 : return 0; 00110 33 c0 xor eax, eax 00112 eb 39 jmp SHORT $LN1@stbi__pars $LN15@stbi__pars: ; 4520 : } else { 00114 eb 14 jmp SHORT $LN13@stbi__pars $LN12@stbi__pars: ; 4521 : if (!stbi__compute_huffman_codes(a)) 00116 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 0011d e8 00 00 00 00 call stbi__compute_huffman_codes 00122 85 c0 test eax, eax 00124 75 04 jne SHORT $LN16@stbi__pars ; 4522 : return 0; 00126 33 c0 xor eax, eax 00128 eb 23 jmp SHORT $LN1@stbi__pars $LN16@stbi__pars: $LN13@stbi__pars: ; 4523 : } ; 4524 : if (!stbi__parse_huffman_block(a)) 0012a 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 00131 e8 00 00 00 00 call stbi__parse_huffman_block 00136 85 c0 test eax, eax 00138 75 04 jne SHORT $LN17@stbi__pars ; 4525 : return 0; 0013a 33 c0 xor eax, eax 0013c eb 0f jmp SHORT $LN1@stbi__pars $LN17@stbi__pars: $LN11@stbi__pars: $LN8@stbi__pars: ; 4526 : } ; 4527 : } while (!final); 0013e 83 7d 04 00 cmp DWORD PTR final$[rbp], 0 00142 0f 84 18 ff ff ff je $LN4@stbi__pars ; 4528 : return 1; 00148 b8 01 00 00 00 mov eax, 1 $LN1@stbi__pars: ; 4529 : } 0014d 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 00154 5f pop rdi 00155 5d pop rbp 00156 c3 ret 0 stbi__parse_zlib ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__parse_zlib_header _TEXT SEGMENT cmf$ = 4 cm$ = 36 flg$ = 68 a$ = 320 stbi__parse_zlib_header PROC ; COMDAT ; 4447 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 4448 : int cmf = stbi__zget8(a); 00020 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR a$[rbp] 00027 e8 00 00 00 00 call stbi__zget8 0002c 0f b6 c0 movzx eax, al 0002f 89 45 04 mov DWORD PTR cmf$[rbp], eax ; 4449 : int cm = cmf & 15; 00032 8b 45 04 mov eax, DWORD PTR cmf$[rbp] 00035 83 e0 0f and eax, 15 00038 89 45 24 mov DWORD PTR cm$[rbp], eax ; 4450 : /* int cinfo = cmf >> 4; */ ; 4451 : int flg = stbi__zget8(a); 0003b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR a$[rbp] 00042 e8 00 00 00 00 call stbi__zget8 00047 0f b6 c0 movzx eax, al 0004a 89 45 44 mov DWORD PTR flg$[rbp], eax ; 4452 : if (stbi__zeof(a)) 0004d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR a$[rbp] 00054 e8 00 00 00 00 call stbi__zeof 00059 85 c0 test eax, eax 0005b 74 0e je SHORT $LN2@stbi__pars ; 4453 : return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec 0005d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ 00064 e8 00 00 00 00 call stbi__err 00069 eb 57 jmp SHORT $LN1@stbi__pars $LN2@stbi__pars: ; 4454 : if ((cmf * 256 + flg) % 31 != 0) 0006b 69 45 04 00 01 00 00 imul eax, DWORD PTR cmf$[rbp], 256 ; 00000100H 00072 03 45 44 add eax, DWORD PTR flg$[rbp] 00075 99 cdq 00076 b9 1f 00 00 00 mov ecx, 31 0007b f7 f9 idiv ecx 0007d 8b c2 mov eax, edx 0007f 85 c0 test eax, eax 00081 74 0e je SHORT $LN3@stbi__pars ; 4455 : return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec 00083 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@OBKOPAFL@bad?5zlib?5header@ 0008a e8 00 00 00 00 call stbi__err 0008f eb 31 jmp SHORT $LN1@stbi__pars $LN3@stbi__pars: ; 4456 : if (flg & 32) 00091 8b 45 44 mov eax, DWORD PTR flg$[rbp] 00094 83 e0 20 and eax, 32 ; 00000020H 00097 85 c0 test eax, eax 00099 74 0e je SHORT $LN4@stbi__pars ; 4457 : return stbi__err("no preset dict", 0009b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@DOGMHEBI@no?5preset?5dict@ 000a2 e8 00 00 00 00 call stbi__err 000a7 eb 19 jmp SHORT $LN1@stbi__pars $LN4@stbi__pars: ; 4458 : "Corrupt PNG"); // preset dictionary not allowed in png ; 4459 : if (cm != 8) 000a9 83 7d 24 08 cmp DWORD PTR cm$[rbp], 8 000ad 74 0e je SHORT $LN5@stbi__pars ; 4460 : return stbi__err("bad compression", 000af 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MCNBDLPD@bad?5compression@ 000b6 e8 00 00 00 00 call stbi__err 000bb eb 05 jmp SHORT $LN1@stbi__pars $LN5@stbi__pars: ; 4461 : "Corrupt PNG"); // DEFLATE required for png ; 4462 : // window = 1 << (8 + cinfo)... but who cares, we fully buffer output ; 4463 : return 1; 000bd b8 01 00 00 00 mov eax, 1 $LN1@stbi__pars: ; 4464 : } 000c2 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 000c9 5f pop rdi 000ca 5d pop rbp 000cb c3 ret 0 stbi__parse_zlib_header ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__parse_uncompressed_block _TEXT SEGMENT header$ = 4 len$ = 36 nlen$ = 68 k$ = 100 a$ = 352 stbi__parse_uncompressed_block PROC ; COMDAT ; 4414 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00018 b9 22 00 00 00 mov ecx, 34 ; 00000022H 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00022 f3 ab rep stosd 00024 48 8b 8c 24 88 01 00 00 mov rcx, QWORD PTR [rsp+392] 0002c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00038 90 npad 1 ; 4415 : stbi_uc header[4]; ; 4416 : int len, nlen, k; ; 4417 : if (a->num_bits & 7) 00039 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 00040 8b 40 10 mov eax, DWORD PTR [rax+16] 00043 83 e0 07 and eax, 7 00046 85 c0 test eax, eax 00048 74 1c je SHORT $LN6@stbi__pars ; 4418 : stbi__zreceive(a, a->num_bits & 7); // discard 0004a 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 00051 8b 40 10 mov eax, DWORD PTR [rax+16] 00054 83 e0 07 and eax, 7 00057 8b d0 mov edx, eax 00059 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 00060 e8 00 00 00 00 call stbi__zreceive 00065 90 npad 1 $LN6@stbi__pars: ; 4419 : // drain the bit-packed data into header ; 4420 : k = 0; 00066 c7 45 64 00 00 00 00 mov DWORD PTR k$[rbp], 0 $LN2@stbi__pars: ; 4421 : while (a->num_bits > 0) { 0006d 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 00074 83 78 10 00 cmp DWORD PTR [rax+16], 0 00078 7e 4f jle SHORT $LN3@stbi__pars ; 4422 : header[k++] = (stbi_uc)(a->code_buffer & 255); // suppress MSVC run-time check 0007a 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 00081 8b 40 14 mov eax, DWORD PTR [rax+20] 00084 25 ff 00 00 00 and eax, 255 ; 000000ffH 00089 48 63 4d 64 movsxd rcx, DWORD PTR k$[rbp] 0008d 88 44 0d 04 mov BYTE PTR header$[rbp+rcx], al 00091 8b 45 64 mov eax, DWORD PTR k$[rbp] 00094 ff c0 inc eax 00096 89 45 64 mov DWORD PTR k$[rbp], eax ; 4423 : a->code_buffer >>= 8; 00099 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 000a0 8b 40 14 mov eax, DWORD PTR [rax+20] 000a3 c1 e8 08 shr eax, 8 000a6 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 000ad 89 41 14 mov DWORD PTR [rcx+20], eax ; 4424 : a->num_bits -= 8; 000b0 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 000b7 8b 40 10 mov eax, DWORD PTR [rax+16] 000ba 83 e8 08 sub eax, 8 000bd 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 000c4 89 41 10 mov DWORD PTR [rcx+16], eax ; 4425 : } 000c7 eb a4 jmp SHORT $LN2@stbi__pars $LN3@stbi__pars: ; 4426 : if (a->num_bits < 0) 000c9 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 000d0 83 78 10 00 cmp DWORD PTR [rax+16], 0 000d4 7d 11 jge SHORT $LN7@stbi__pars ; 4427 : return stbi__err("zlib corrupt", "Corrupt PNG"); 000d6 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@IECDHMDI@zlib?5corrupt@ 000dd e8 00 00 00 00 call stbi__err 000e2 e9 54 01 00 00 jmp $LN1@stbi__pars $LN7@stbi__pars: $LN4@stbi__pars: ; 4428 : // now fill header the normal way ; 4429 : while (k < 4) 000e7 83 7d 64 04 cmp DWORD PTR k$[rbp], 4 000eb 7d 1e jge SHORT $LN5@stbi__pars ; 4430 : header[k++] = stbi__zget8(a); 000ed 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 000f4 e8 00 00 00 00 call stbi__zget8 000f9 48 63 4d 64 movsxd rcx, DWORD PTR k$[rbp] 000fd 88 44 0d 04 mov BYTE PTR header$[rbp+rcx], al 00101 8b 45 64 mov eax, DWORD PTR k$[rbp] 00104 ff c0 inc eax 00106 89 45 64 mov DWORD PTR k$[rbp], eax 00109 eb dc jmp SHORT $LN4@stbi__pars $LN5@stbi__pars: ; 4431 : len = header[1] * 256 + header[0]; 0010b b8 01 00 00 00 mov eax, 1 00110 48 6b c0 01 imul rax, rax, 1 00114 0f b6 44 05 04 movzx eax, BYTE PTR header$[rbp+rax] 00119 69 c0 00 01 00 00 imul eax, eax, 256 ; 00000100H 0011f b9 01 00 00 00 mov ecx, 1 00124 48 6b c9 00 imul rcx, rcx, 0 00128 0f b6 4c 0d 04 movzx ecx, BYTE PTR header$[rbp+rcx] 0012d 03 c1 add eax, ecx 0012f 89 45 24 mov DWORD PTR len$[rbp], eax ; 4432 : nlen = header[3] * 256 + header[2]; 00132 b8 01 00 00 00 mov eax, 1 00137 48 6b c0 03 imul rax, rax, 3 0013b 0f b6 44 05 04 movzx eax, BYTE PTR header$[rbp+rax] 00140 69 c0 00 01 00 00 imul eax, eax, 256 ; 00000100H 00146 b9 01 00 00 00 mov ecx, 1 0014b 48 6b c9 02 imul rcx, rcx, 2 0014f 0f b6 4c 0d 04 movzx ecx, BYTE PTR header$[rbp+rcx] 00154 03 c1 add eax, ecx 00156 89 45 44 mov DWORD PTR nlen$[rbp], eax ; 4433 : if (nlen != (len ^ 0xffff)) 00159 8b 45 24 mov eax, DWORD PTR len$[rbp] 0015c 35 ff ff 00 00 xor eax, 65535 ; 0000ffffH 00161 39 45 44 cmp DWORD PTR nlen$[rbp], eax 00164 74 11 je SHORT $LN8@stbi__pars ; 4434 : return stbi__err("zlib corrupt", "Corrupt PNG"); 00166 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@IECDHMDI@zlib?5corrupt@ 0016d e8 00 00 00 00 call stbi__err 00172 e9 c4 00 00 00 jmp $LN1@stbi__pars $LN8@stbi__pars: ; 4435 : if (a->zbuffer + len > a->zbuffer_end) 00177 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] 0017b 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 00182 48 03 01 add rax, QWORD PTR [rcx] 00185 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 0018c 48 3b 41 08 cmp rax, QWORD PTR [rcx+8] 00190 76 11 jbe SHORT $LN9@stbi__pars ; 4436 : return stbi__err("read past buffer", "Corrupt PNG"); 00192 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@PIPBCKIA@read?5past?5buffer@ 00199 e8 00 00 00 00 call stbi__err 0019e e9 98 00 00 00 jmp $LN1@stbi__pars $LN9@stbi__pars: ; 4437 : if (a->zout + len > a->zout_end) 001a3 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] 001a7 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 001ae 48 03 41 18 add rax, QWORD PTR [rcx+24] 001b2 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 001b9 48 3b 41 28 cmp rax, QWORD PTR [rcx+40] 001bd 76 23 jbe SHORT $LN10@stbi__pars ; 4438 : if (!stbi__zexpand(a, a->zout, len)) 001bf 44 8b 45 24 mov r8d, DWORD PTR len$[rbp] 001c3 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 001ca 48 8b 50 18 mov rdx, QWORD PTR [rax+24] 001ce 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 001d5 e8 00 00 00 00 call stbi__zexpand 001da 85 c0 test eax, eax 001dc 75 04 jne SHORT $LN11@stbi__pars ; 4439 : return 0; 001de 33 c0 xor eax, eax 001e0 eb 59 jmp SHORT $LN1@stbi__pars $LN11@stbi__pars: $LN10@stbi__pars: ; 4440 : memcpy(a->zout, a->zbuffer, len); 001e2 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] 001e6 4c 8b c0 mov r8, rax 001e9 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 001f0 48 8b 10 mov rdx, QWORD PTR [rax] 001f3 48 8b 85 60 01 00 00 mov rax, QWORD PTR a$[rbp] 001fa 48 8b 48 18 mov rcx, QWORD PTR [rax+24] 001fe e8 00 00 00 00 call memcpy 00203 90 npad 1 ; 4441 : a->zbuffer += len; 00204 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] 00208 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 0020f 48 03 01 add rax, QWORD PTR [rcx] 00212 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 00219 48 89 01 mov QWORD PTR [rcx], rax ; 4442 : a->zout += len; 0021c 48 63 45 24 movsxd rax, DWORD PTR len$[rbp] 00220 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 00227 48 03 41 18 add rax, QWORD PTR [rcx+24] 0022b 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR a$[rbp] 00232 48 89 41 18 mov QWORD PTR [rcx+24], rax ; 4443 : return 1; 00236 b8 01 00 00 00 mov eax, 1 $LN1@stbi__pars: ; 4444 : } 0023b 48 8b f8 mov rdi, rax 0023e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00242 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__parse_uncompressed_block$rtcFrameData 00249 e8 00 00 00 00 call _RTC_CheckStackVars 0024e 48 8b c7 mov rax, rdi 00251 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 00258 5f pop rdi 00259 5d pop rbp 0025a c3 ret 0 stbi__parse_uncompressed_block ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__compute_huffman_codes _TEXT SEGMENT z_codelength$ = 16 lencodes$ = 2080 codelength_sizes$ = 2568 i$ = 2612 n$ = 2644 hlit$ = 2676 hdist$ = 2708 hclen$ = 2740 ntot$ = 2772 s$6 = 2804 c$7 = 2836 fill$8 = 2868 tv175 = 4040 __$ArrayPad$ = 4048 a$ = 4096 stbi__compute_huffman_codes PROC ; COMDAT ; 4356 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 b8 08 10 00 00 mov eax, 4104 ; 00001008H 0000c e8 00 00 00 00 call __chkstk 00011 48 2b e0 sub rsp, rax 00014 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00019 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001e b9 da 02 00 00 mov ecx, 730 ; 000002daH 00023 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00028 f3 ab rep stosd 0002a 48 8b 8c 24 28 10 00 00 mov rcx, QWORD PTR [rsp+4136] 00032 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00039 48 33 c5 xor rax, rbp 0003c 48 89 85 d0 0f 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00043 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0004f 90 npad 1 ; 4357 : static const stbi_uc length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, ; 4358 : 11, 4, 12, 3, 13, 2, 14, 1, 15 }; ; 4359 : stbi__zhuffman z_codelength; ; 4360 : stbi_uc lencodes[286 + 32 + 137]; //padding for maximum single op ; 4361 : stbi_uc codelength_sizes[19]; ; 4362 : int i, n; ; 4363 : ; 4364 : int hlit = stbi__zreceive(a, 5) + 257; 00050 ba 05 00 00 00 mov edx, 5 00055 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 0005c e8 00 00 00 00 call stbi__zreceive 00061 05 01 01 00 00 add eax, 257 ; 00000101H 00066 89 85 74 0a 00 00 mov DWORD PTR hlit$[rbp], eax ; 4365 : int hdist = stbi__zreceive(a, 5) + 1; 0006c ba 05 00 00 00 mov edx, 5 00071 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 00078 e8 00 00 00 00 call stbi__zreceive 0007d ff c0 inc eax 0007f 89 85 94 0a 00 00 mov DWORD PTR hdist$[rbp], eax ; 4366 : int hclen = stbi__zreceive(a, 4) + 4; 00085 ba 04 00 00 00 mov edx, 4 0008a 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 00091 e8 00 00 00 00 call stbi__zreceive 00096 83 c0 04 add eax, 4 00099 89 85 b4 0a 00 00 mov DWORD PTR hclen$[rbp], eax ; 4367 : int ntot = hlit + hdist; 0009f 8b 85 94 0a 00 00 mov eax, DWORD PTR hdist$[rbp] 000a5 8b 8d 74 0a 00 00 mov ecx, DWORD PTR hlit$[rbp] 000ab 03 c8 add ecx, eax 000ad 8b c1 mov eax, ecx 000af 89 85 d4 0a 00 00 mov DWORD PTR ntot$[rbp], eax ; 4368 : ; 4369 : memset(codelength_sizes, 0, sizeof(codelength_sizes)); 000b5 41 b8 13 00 00 00 mov r8d, 19 000bb 33 d2 xor edx, edx 000bd 48 8d 8d 08 0a 00 00 lea rcx, QWORD PTR codelength_sizes$[rbp] 000c4 e8 00 00 00 00 call memset 000c9 90 npad 1 ; 4370 : for (i = 0; i < hclen; ++i) { 000ca c7 85 34 0a 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 000d4 eb 0e jmp SHORT $LN4@stbi__comp $LN2@stbi__comp: 000d6 8b 85 34 0a 00 00 mov eax, DWORD PTR i$[rbp] 000dc ff c0 inc eax 000de 89 85 34 0a 00 00 mov DWORD PTR i$[rbp], eax $LN4@stbi__comp: 000e4 8b 85 b4 0a 00 00 mov eax, DWORD PTR hclen$[rbp] 000ea 39 85 34 0a 00 00 cmp DWORD PTR i$[rbp], eax 000f0 7d 39 jge SHORT $LN3@stbi__comp ; 4371 : int s = stbi__zreceive(a, 3); 000f2 ba 03 00 00 00 mov edx, 3 000f7 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 000fe e8 00 00 00 00 call stbi__zreceive 00103 89 85 f4 0a 00 00 mov DWORD PTR s$6[rbp], eax ; 4372 : codelength_sizes[length_dezigzag[i]] = (stbi_uc)s; 00109 48 63 85 34 0a 00 00 movsxd rax, DWORD PTR i$[rbp] 00110 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:?length_dezigzag@?1??stbi__compute_huffman_codes@@9@9 00117 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0011b 0f b6 8d f4 0a 00 00 movzx ecx, BYTE PTR s$6[rbp] 00122 88 8c 05 08 0a 00 00 mov BYTE PTR codelength_sizes$[rbp+rax], cl ; 4373 : } 00129 eb ab jmp SHORT $LN2@stbi__comp $LN3@stbi__comp: ; 4374 : if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) 0012b 41 b8 13 00 00 00 mov r8d, 19 00131 48 8d 95 08 0a 00 00 lea rdx, QWORD PTR codelength_sizes$[rbp] 00138 48 8d 4d 10 lea rcx, QWORD PTR z_codelength$[rbp] 0013c e8 00 00 00 00 call stbi__zbuild_huffman 00141 85 c0 test eax, eax 00143 75 07 jne SHORT $LN7@stbi__comp ; 4375 : return 0; 00145 33 c0 xor eax, eax 00147 e9 3a 02 00 00 jmp $LN1@stbi__comp $LN7@stbi__comp: ; 4376 : ; 4377 : n = 0; 0014c c7 85 54 0a 00 00 00 00 00 00 mov DWORD PTR n$[rbp], 0 $LN5@stbi__comp: ; 4378 : while (n < ntot) { 00156 8b 85 d4 0a 00 00 mov eax, DWORD PTR ntot$[rbp] 0015c 39 85 54 0a 00 00 cmp DWORD PTR n$[rbp], eax 00162 0f 8d a0 01 00 00 jge $LN6@stbi__comp ; 4379 : int c = stbi__zhuffman_decode(a, &z_codelength); 00168 48 8d 55 10 lea rdx, QWORD PTR z_codelength$[rbp] 0016c 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 00173 e8 00 00 00 00 call stbi__zhuffman_decode 00178 89 85 14 0b 00 00 mov DWORD PTR c$7[rbp], eax ; 4380 : if (c < 0 || c >= 19) 0017e 83 bd 14 0b 00 00 00 cmp DWORD PTR c$7[rbp], 0 00185 7c 09 jl SHORT $LN9@stbi__comp 00187 83 bd 14 0b 00 00 13 cmp DWORD PTR c$7[rbp], 19 0018e 7c 11 jl SHORT $LN8@stbi__comp $LN9@stbi__comp: ; 4381 : return stbi__err("bad codelengths", "Corrupt PNG"); 00190 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ 00197 e8 00 00 00 00 call stbi__err 0019c e9 e5 01 00 00 jmp $LN1@stbi__comp $LN8@stbi__comp: ; 4382 : if (c < 16) 001a1 83 bd 14 0b 00 00 10 cmp DWORD PTR c$7[rbp], 16 001a8 7d 28 jge SHORT $LN10@stbi__comp ; 4383 : lencodes[n++] = (stbi_uc)c; 001aa 48 63 85 54 0a 00 00 movsxd rax, DWORD PTR n$[rbp] 001b1 0f b6 8d 14 0b 00 00 movzx ecx, BYTE PTR c$7[rbp] 001b8 88 8c 05 20 08 00 00 mov BYTE PTR lencodes$[rbp+rax], cl 001bf 8b 85 54 0a 00 00 mov eax, DWORD PTR n$[rbp] 001c5 ff c0 inc eax 001c7 89 85 54 0a 00 00 mov DWORD PTR n$[rbp], eax 001cd e9 31 01 00 00 jmp $LN11@stbi__comp $LN10@stbi__comp: ; 4384 : else { ; 4385 : stbi_uc fill = 0; 001d2 c6 85 34 0b 00 00 00 mov BYTE PTR fill$8[rbp], 0 ; 4386 : if (c == 16) { 001d9 83 bd 14 0b 00 00 10 cmp DWORD PTR c$7[rbp], 16 001e0 75 4e jne SHORT $LN12@stbi__comp ; 4387 : c = stbi__zreceive(a, 2) + 3; 001e2 ba 02 00 00 00 mov edx, 2 001e7 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 001ee e8 00 00 00 00 call stbi__zreceive 001f3 83 c0 03 add eax, 3 001f6 89 85 14 0b 00 00 mov DWORD PTR c$7[rbp], eax ; 4388 : if (n == 0) 001fc 83 bd 54 0a 00 00 00 cmp DWORD PTR n$[rbp], 0 00203 75 11 jne SHORT $LN14@stbi__comp ; 4389 : return stbi__err("bad codelengths", "Corrupt PNG"); 00205 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ 0020c e8 00 00 00 00 call stbi__err 00211 e9 70 01 00 00 jmp $LN1@stbi__comp $LN14@stbi__comp: ; 4390 : fill = lencodes[n - 1]; 00216 8b 85 54 0a 00 00 mov eax, DWORD PTR n$[rbp] 0021c ff c8 dec eax 0021e 48 98 cdqe 00220 0f b6 84 05 20 08 00 00 movzx eax, BYTE PTR lencodes$[rbp+rax] 00228 88 85 34 0b 00 00 mov BYTE PTR fill$8[rbp], al 0022e eb 5b jmp SHORT $LN13@stbi__comp $LN12@stbi__comp: ; 4391 : } else if (c == 17) { 00230 83 bd 14 0b 00 00 11 cmp DWORD PTR c$7[rbp], 17 00237 75 1c jne SHORT $LN15@stbi__comp ; 4392 : c = stbi__zreceive(a, 3) + 3; 00239 ba 03 00 00 00 mov edx, 3 0023e 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 00245 e8 00 00 00 00 call stbi__zreceive 0024a 83 c0 03 add eax, 3 0024d 89 85 14 0b 00 00 mov DWORD PTR c$7[rbp], eax 00253 eb 36 jmp SHORT $LN16@stbi__comp $LN15@stbi__comp: ; 4393 : } else if (c == 18) { 00255 83 bd 14 0b 00 00 12 cmp DWORD PTR c$7[rbp], 18 0025c 75 1c jne SHORT $LN17@stbi__comp ; 4394 : c = stbi__zreceive(a, 7) + 11; 0025e ba 07 00 00 00 mov edx, 7 00263 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 0026a e8 00 00 00 00 call stbi__zreceive 0026f 83 c0 0b add eax, 11 00272 89 85 14 0b 00 00 mov DWORD PTR c$7[rbp], eax ; 4395 : } else { 00278 eb 11 jmp SHORT $LN18@stbi__comp $LN17@stbi__comp: ; 4396 : return stbi__err("bad codelengths", "Corrupt PNG"); 0027a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ 00281 e8 00 00 00 00 call stbi__err 00286 e9 fb 00 00 00 jmp $LN1@stbi__comp $LN18@stbi__comp: $LN16@stbi__comp: $LN13@stbi__comp: ; 4397 : } ; 4398 : if (ntot - n < c) 0028b 8b 85 54 0a 00 00 mov eax, DWORD PTR n$[rbp] 00291 8b 8d d4 0a 00 00 mov ecx, DWORD PTR ntot$[rbp] 00297 2b c8 sub ecx, eax 00299 8b c1 mov eax, ecx 0029b 3b 85 14 0b 00 00 cmp eax, DWORD PTR c$7[rbp] 002a1 7d 11 jge SHORT $LN19@stbi__comp ; 4399 : return stbi__err("bad codelengths", "Corrupt PNG"); 002a3 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ 002aa e8 00 00 00 00 call stbi__err 002af e9 d2 00 00 00 jmp $LN1@stbi__comp $LN19@stbi__comp: ; 4400 : memset(lencodes + n, fill, c); 002b4 48 63 85 14 0b 00 00 movsxd rax, DWORD PTR c$7[rbp] 002bb 0f b6 8d 34 0b 00 00 movzx ecx, BYTE PTR fill$8[rbp] 002c2 48 63 95 54 0a 00 00 movsxd rdx, DWORD PTR n$[rbp] 002c9 48 8d 94 15 20 08 00 00 lea rdx, QWORD PTR lencodes$[rbp+rdx] 002d1 48 89 95 c8 0f 00 00 mov QWORD PTR tv175[rbp], rdx 002d8 4c 8b c0 mov r8, rax 002db 8b d1 mov edx, ecx 002dd 48 8b 85 c8 0f 00 00 mov rax, QWORD PTR tv175[rbp] 002e4 48 8b c8 mov rcx, rax 002e7 e8 00 00 00 00 call memset 002ec 90 npad 1 ; 4401 : n += c; 002ed 8b 85 14 0b 00 00 mov eax, DWORD PTR c$7[rbp] 002f3 8b 8d 54 0a 00 00 mov ecx, DWORD PTR n$[rbp] 002f9 03 c8 add ecx, eax 002fb 8b c1 mov eax, ecx 002fd 89 85 54 0a 00 00 mov DWORD PTR n$[rbp], eax $LN11@stbi__comp: ; 4402 : } ; 4403 : } 00303 e9 4e fe ff ff jmp $LN5@stbi__comp $LN6@stbi__comp: ; 4404 : if (n != ntot) 00308 8b 85 d4 0a 00 00 mov eax, DWORD PTR ntot$[rbp] 0030e 39 85 54 0a 00 00 cmp DWORD PTR n$[rbp], eax 00314 74 0e je SHORT $LN20@stbi__comp ; 4405 : return stbi__err("bad codelengths", "Corrupt PNG"); 00316 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ 0031d e8 00 00 00 00 call stbi__err 00322 eb 62 jmp SHORT $LN1@stbi__comp $LN20@stbi__comp: ; 4406 : if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) 00324 48 8b 85 00 10 00 00 mov rax, QWORD PTR a$[rbp] 0032b 48 83 c0 34 add rax, 52 ; 00000034H 0032f 44 8b 85 74 0a 00 00 mov r8d, DWORD PTR hlit$[rbp] 00336 48 8d 95 20 08 00 00 lea rdx, QWORD PTR lencodes$[rbp] 0033d 48 8b c8 mov rcx, rax 00340 e8 00 00 00 00 call stbi__zbuild_huffman 00345 85 c0 test eax, eax 00347 75 04 jne SHORT $LN21@stbi__comp ; 4407 : return 0; 00349 33 c0 xor eax, eax 0034b eb 39 jmp SHORT $LN1@stbi__comp $LN21@stbi__comp: ; 4408 : if (!stbi__zbuild_huffman(&a->z_distance, lencodes + hlit, hdist)) 0034d 48 63 85 74 0a 00 00 movsxd rax, DWORD PTR hlit$[rbp] 00354 48 8d 84 05 20 08 00 00 lea rax, QWORD PTR lencodes$[rbp+rax] 0035c 48 8b 8d 00 10 00 00 mov rcx, QWORD PTR a$[rbp] 00363 48 81 c1 18 08 00 00 add rcx, 2072 ; 00000818H 0036a 44 8b 85 94 0a 00 00 mov r8d, DWORD PTR hdist$[rbp] 00371 48 8b d0 mov rdx, rax 00374 e8 00 00 00 00 call stbi__zbuild_huffman 00379 85 c0 test eax, eax 0037b 75 04 jne SHORT $LN22@stbi__comp ; 4409 : return 0; 0037d 33 c0 xor eax, eax 0037f eb 05 jmp SHORT $LN1@stbi__comp $LN22@stbi__comp: ; 4410 : return 1; 00381 b8 01 00 00 00 mov eax, 1 $LN1@stbi__comp: ; 4411 : } 00386 48 8b f8 mov rdi, rax 00389 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0038d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__compute_huffman_codes$rtcFrameData 00394 e8 00 00 00 00 call _RTC_CheckStackVars 00399 48 8b c7 mov rax, rdi 0039c 48 8b 8d d0 0f 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 003a3 48 33 cd xor rcx, rbp 003a6 e8 00 00 00 00 call __security_check_cookie 003ab 48 8d a5 e8 0f 00 00 lea rsp, QWORD PTR [rbp+4072] 003b2 5f pop rdi 003b3 5d pop rbp 003b4 c3 ret 0 stbi__compute_huffman_codes ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__parse_huffman_block _TEXT SEGMENT zout$ = 8 z$1 = 36 p$2 = 72 len$3 = 100 dist$4 = 132 v$5 = 164 a$ = 416 stbi__parse_huffman_block PROC ; COMDAT ; 4292 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 4293 : char *zout = a->zout; 00020 48 8b 85 a0 01 00 00 mov rax, QWORD PTR a$[rbp] 00027 48 8b 40 18 mov rax, QWORD PTR [rax+24] 0002b 48 89 45 08 mov QWORD PTR zout$[rbp], rax $LN2@stbi__pars: ; 4294 : for (;;) { ; 4295 : int z = stbi__zhuffman_decode(a, &a->z_length); 0002f 48 8b 85 a0 01 00 00 mov rax, QWORD PTR a$[rbp] 00036 48 83 c0 34 add rax, 52 ; 00000034H 0003a 48 8b d0 mov rdx, rax 0003d 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR a$[rbp] 00044 e8 00 00 00 00 call stbi__zhuffman_decode 00049 89 45 24 mov DWORD PTR z$1[rbp], eax ; 4296 : if (z < 256) { 0004c 81 7d 24 00 01 00 00 cmp DWORD PTR z$1[rbp], 256 ; 00000100H 00053 7d 72 jge SHORT $LN11@stbi__pars ; 4297 : if (z < 0) 00055 83 7d 24 00 cmp DWORD PTR z$1[rbp], 0 00059 7d 11 jge SHORT $LN13@stbi__pars ; 4298 : return stbi__err("bad huffman code", 0005b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 00062 e8 00 00 00 00 call stbi__err 00067 e9 83 02 00 00 jmp $LN1@stbi__pars $LN13@stbi__pars: ; 4299 : "Corrupt PNG"); // error in huffman codes ; 4300 : if (zout >= a->zout_end) { 0006c 48 8b 85 a0 01 00 00 mov rax, QWORD PTR a$[rbp] 00073 48 8b 40 28 mov rax, QWORD PTR [rax+40] 00077 48 39 45 08 cmp QWORD PTR zout$[rbp], rax 0007b 72 30 jb SHORT $LN14@stbi__pars ; 4301 : if (!stbi__zexpand(a, zout, 1)) 0007d 41 b8 01 00 00 00 mov r8d, 1 00083 48 8b 55 08 mov rdx, QWORD PTR zout$[rbp] 00087 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR a$[rbp] 0008e e8 00 00 00 00 call stbi__zexpand 00093 85 c0 test eax, eax 00095 75 07 jne SHORT $LN15@stbi__pars ; 4302 : return 0; 00097 33 c0 xor eax, eax 00099 e9 51 02 00 00 jmp $LN1@stbi__pars $LN15@stbi__pars: ; 4303 : zout = a->zout; 0009e 48 8b 85 a0 01 00 00 mov rax, QWORD PTR a$[rbp] 000a5 48 8b 40 18 mov rax, QWORD PTR [rax+24] 000a9 48 89 45 08 mov QWORD PTR zout$[rbp], rax $LN14@stbi__pars: ; 4304 : } ; 4305 : *zout++ = (char)z; 000ad 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] 000b1 0f b6 4d 24 movzx ecx, BYTE PTR z$1[rbp] 000b5 88 08 mov BYTE PTR [rax], cl 000b7 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] 000bb 48 ff c0 inc rax 000be 48 89 45 08 mov QWORD PTR zout$[rbp], rax ; 4306 : } else { 000c2 e9 23 02 00 00 jmp $LN12@stbi__pars $LN11@stbi__pars: ; 4307 : stbi_uc *p; ; 4308 : int len, dist; ; 4309 : if (z == 256) { 000c7 81 7d 24 00 01 00 00 cmp DWORD PTR z$1[rbp], 256 ; 00000100H 000ce 75 19 jne SHORT $LN16@stbi__pars ; 4310 : a->zout = zout; 000d0 48 8b 85 a0 01 00 00 mov rax, QWORD PTR a$[rbp] 000d7 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp] 000db 48 89 48 18 mov QWORD PTR [rax+24], rcx ; 4311 : return 1; 000df b8 01 00 00 00 mov eax, 1 000e4 e9 06 02 00 00 jmp $LN1@stbi__pars $LN16@stbi__pars: ; 4312 : } ; 4313 : if (z >= 286) 000e9 81 7d 24 1e 01 00 00 cmp DWORD PTR z$1[rbp], 286 ; 0000011eH 000f0 7c 11 jl SHORT $LN17@stbi__pars ; 4314 : return stbi__err( 000f2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 000f9 e8 00 00 00 00 call stbi__err 000fe e9 ec 01 00 00 jmp $LN1@stbi__pars $LN17@stbi__pars: ; 4315 : "bad huffman code", ; 4316 : "Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data ; 4317 : z -= 257; 00103 8b 45 24 mov eax, DWORD PTR z$1[rbp] 00106 2d 01 01 00 00 sub eax, 257 ; 00000101H 0010b 89 45 24 mov DWORD PTR z$1[rbp], eax ; 4318 : len = stbi__zlength_base[z]; 0010e 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] 00112 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__zlength_base 00119 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] 0011c 89 45 64 mov DWORD PTR len$3[rbp], eax ; 4319 : if (stbi__zlength_extra[z]) 0011f 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] 00123 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__zlength_extra 0012a 83 3c 81 00 cmp DWORD PTR [rcx+rax*4], 0 0012e 74 24 je SHORT $LN18@stbi__pars ; 4320 : len += stbi__zreceive(a, stbi__zlength_extra[z]); 00130 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] 00134 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__zlength_extra 0013b 8b 14 81 mov edx, DWORD PTR [rcx+rax*4] 0013e 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR a$[rbp] 00145 e8 00 00 00 00 call stbi__zreceive 0014a 8b 4d 64 mov ecx, DWORD PTR len$3[rbp] 0014d 03 c8 add ecx, eax 0014f 8b c1 mov eax, ecx 00151 89 45 64 mov DWORD PTR len$3[rbp], eax $LN18@stbi__pars: ; 4321 : z = stbi__zhuffman_decode(a, &a->z_distance); 00154 48 8b 85 a0 01 00 00 mov rax, QWORD PTR a$[rbp] 0015b 48 05 18 08 00 00 add rax, 2072 ; 00000818H 00161 48 8b d0 mov rdx, rax 00164 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR a$[rbp] 0016b e8 00 00 00 00 call stbi__zhuffman_decode 00170 89 45 24 mov DWORD PTR z$1[rbp], eax ; 4322 : if (z < 0 || z >= 30) 00173 83 7d 24 00 cmp DWORD PTR z$1[rbp], 0 00177 7c 06 jl SHORT $LN20@stbi__pars 00179 83 7d 24 1e cmp DWORD PTR z$1[rbp], 30 0017d 7c 11 jl SHORT $LN19@stbi__pars $LN20@stbi__pars: ; 4323 : return stbi__err( 0017f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 00186 e8 00 00 00 00 call stbi__err 0018b e9 5f 01 00 00 jmp $LN1@stbi__pars $LN19@stbi__pars: ; 4324 : "bad huffman code", ; 4325 : "Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data ; 4326 : dist = stbi__zdist_base[z]; 00190 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] 00194 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__zdist_base 0019b 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] 0019e 89 85 84 00 00 00 mov DWORD PTR dist$4[rbp], eax ; 4327 : if (stbi__zdist_extra[z]) 001a4 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] 001a8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__zdist_extra 001af 83 3c 81 00 cmp DWORD PTR [rcx+rax*4], 0 001b3 74 2a je SHORT $LN21@stbi__pars ; 4328 : dist += stbi__zreceive(a, stbi__zdist_extra[z]); 001b5 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp] 001b9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__zdist_extra 001c0 8b 14 81 mov edx, DWORD PTR [rcx+rax*4] 001c3 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR a$[rbp] 001ca e8 00 00 00 00 call stbi__zreceive 001cf 8b 8d 84 00 00 00 mov ecx, DWORD PTR dist$4[rbp] 001d5 03 c8 add ecx, eax 001d7 8b c1 mov eax, ecx 001d9 89 85 84 00 00 00 mov DWORD PTR dist$4[rbp], eax $LN21@stbi__pars: ; 4329 : if (zout - a->zout_start < dist) 001df 48 8b 85 a0 01 00 00 mov rax, QWORD PTR a$[rbp] 001e6 48 8b 40 20 mov rax, QWORD PTR [rax+32] 001ea 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp] 001ee 48 2b c8 sub rcx, rax 001f1 48 8b c1 mov rax, rcx 001f4 48 63 8d 84 00 00 00 movsxd rcx, DWORD PTR dist$4[rbp] 001fb 48 3b c1 cmp rax, rcx 001fe 7d 11 jge SHORT $LN22@stbi__pars ; 4330 : return stbi__err("bad dist", "Corrupt PNG"); 00200 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08DIAPIMGJ@bad?5dist@ 00207 e8 00 00 00 00 call stbi__err 0020c e9 de 00 00 00 jmp $LN1@stbi__pars $LN22@stbi__pars: ; 4331 : if (zout + len > a->zout_end) { 00211 48 63 45 64 movsxd rax, DWORD PTR len$3[rbp] 00215 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp] 00219 48 03 c8 add rcx, rax 0021c 48 8b c1 mov rax, rcx 0021f 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR a$[rbp] 00226 48 3b 41 28 cmp rax, QWORD PTR [rcx+40] 0022a 76 2e jbe SHORT $LN23@stbi__pars ; 4332 : if (!stbi__zexpand(a, zout, len)) 0022c 44 8b 45 64 mov r8d, DWORD PTR len$3[rbp] 00230 48 8b 55 08 mov rdx, QWORD PTR zout$[rbp] 00234 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR a$[rbp] 0023b e8 00 00 00 00 call stbi__zexpand 00240 85 c0 test eax, eax 00242 75 07 jne SHORT $LN24@stbi__pars ; 4333 : return 0; 00244 33 c0 xor eax, eax 00246 e9 a4 00 00 00 jmp $LN1@stbi__pars $LN24@stbi__pars: ; 4334 : zout = a->zout; 0024b 48 8b 85 a0 01 00 00 mov rax, QWORD PTR a$[rbp] 00252 48 8b 40 18 mov rax, QWORD PTR [rax+24] 00256 48 89 45 08 mov QWORD PTR zout$[rbp], rax $LN23@stbi__pars: ; 4335 : } ; 4336 : p = (stbi_uc *)(zout - dist); 0025a 48 63 85 84 00 00 00 movsxd rax, DWORD PTR dist$4[rbp] 00261 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp] 00265 48 2b c8 sub rcx, rax 00268 48 8b c1 mov rax, rcx 0026b 48 89 45 48 mov QWORD PTR p$2[rbp], rax ; 4337 : if (dist == 1) { // run of one byte; common in images. 0026f 83 bd 84 00 00 00 01 cmp DWORD PTR dist$4[rbp], 1 00276 75 3b jne SHORT $LN25@stbi__pars ; 4338 : stbi_uc v = *p; 00278 48 8b 45 48 mov rax, QWORD PTR p$2[rbp] 0027c 0f b6 00 movzx eax, BYTE PTR [rax] 0027f 88 85 a4 00 00 00 mov BYTE PTR v$5[rbp], al ; 4339 : if (len) { 00285 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0 00289 74 26 je SHORT $LN27@stbi__pars $LN7@stbi__pars: ; 4340 : do ; 4341 : *zout++ = v; 0028b 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] 0028f 0f b6 8d a4 00 00 00 movzx ecx, BYTE PTR v$5[rbp] 00296 88 08 mov BYTE PTR [rax], cl 00298 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] 0029c 48 ff c0 inc rax 0029f 48 89 45 08 mov QWORD PTR zout$[rbp], rax ; 4342 : while (--len); 002a3 8b 45 64 mov eax, DWORD PTR len$3[rbp] 002a6 ff c8 dec eax 002a8 89 45 64 mov DWORD PTR len$3[rbp], eax 002ab 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0 002af 75 da jne SHORT $LN7@stbi__pars $LN27@stbi__pars: ; 4343 : } ; 4344 : } else { 002b1 eb 37 jmp SHORT $LN26@stbi__pars $LN25@stbi__pars: ; 4345 : if (len) { 002b3 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0 002b7 74 31 je SHORT $LN28@stbi__pars $LN10@stbi__pars: ; 4346 : do ; 4347 : *zout++ = *p++; 002b9 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] 002bd 48 8b 4d 48 mov rcx, QWORD PTR p$2[rbp] 002c1 0f b6 09 movzx ecx, BYTE PTR [rcx] 002c4 88 08 mov BYTE PTR [rax], cl 002c6 48 8b 45 08 mov rax, QWORD PTR zout$[rbp] 002ca 48 ff c0 inc rax 002cd 48 89 45 08 mov QWORD PTR zout$[rbp], rax 002d1 48 8b 45 48 mov rax, QWORD PTR p$2[rbp] 002d5 48 ff c0 inc rax 002d8 48 89 45 48 mov QWORD PTR p$2[rbp], rax ; 4348 : while (--len); 002dc 8b 45 64 mov eax, DWORD PTR len$3[rbp] 002df ff c8 dec eax 002e1 89 45 64 mov DWORD PTR len$3[rbp], eax 002e4 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0 002e8 75 cf jne SHORT $LN10@stbi__pars $LN28@stbi__pars: $LN26@stbi__pars: $LN12@stbi__pars: ; 4349 : } ; 4350 : } ; 4351 : } ; 4352 : } 002ea e9 40 fd ff ff jmp $LN2@stbi__pars $LN1@stbi__pars: ; 4353 : } 002ef 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] 002f6 5f pop rdi 002f7 5d pop rbp 002f8 c3 ret 0 stbi__parse_huffman_block ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__zexpand _TEXT SEGMENT q$ = 8 cur$ = 36 limit$ = 68 old_limit$ = 100 z$ = 352 zout$ = 360 n$ = 368 stbi__zexpand PROC ; COMDAT ; 4251 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 4252 : char *q; ; 4253 : unsigned int cur, limit, old_limit; ; 4254 : z->zout = zout; 0002a 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 00031 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR zout$[rbp] 00038 48 89 48 18 mov QWORD PTR [rax+24], rcx ; 4255 : if (!z->z_expandable) 0003c 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 00043 83 78 30 00 cmp DWORD PTR [rax+48], 0 00047 75 11 jne SHORT $LN4@stbi__zexp ; 4256 : return stbi__err("output buffer limit", "Corrupt PNG"); 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@IBFIPFO@output?5buffer?5limit@ 00050 e8 00 00 00 00 call stbi__err 00055 e9 05 01 00 00 jmp $LN1@stbi__zexp $LN4@stbi__zexp: ; 4257 : cur = (unsigned int)(z->zout - z->zout_start); 0005a 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 00061 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR z$[rbp] 00068 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] 0006c 48 8b 40 18 mov rax, QWORD PTR [rax+24] 00070 48 2b c1 sub rax, rcx 00073 89 45 24 mov DWORD PTR cur$[rbp], eax ; 4258 : limit = old_limit = (unsigned)(z->zout_end - z->zout_start); 00076 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 0007d 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR z$[rbp] 00084 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] 00088 48 8b 40 28 mov rax, QWORD PTR [rax+40] 0008c 48 2b c1 sub rax, rcx 0008f 89 45 64 mov DWORD PTR old_limit$[rbp], eax 00092 8b 45 64 mov eax, DWORD PTR old_limit$[rbp] 00095 89 45 44 mov DWORD PTR limit$[rbp], eax ; 4259 : if (UINT_MAX - cur < (unsigned)n) 00098 b8 ff ff ff ff mov eax, -1 ; ffffffffH 0009d 2b 45 24 sub eax, DWORD PTR cur$[rbp] 000a0 3b 85 70 01 00 00 cmp eax, DWORD PTR n$[rbp] 000a6 73 11 jae SHORT $LN5@stbi__zexp ; 4260 : return stbi__err("outofmem", "Out of memory"); 000a8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 000af e8 00 00 00 00 call stbi__err 000b4 e9 a6 00 00 00 jmp $LN1@stbi__zexp $LN5@stbi__zexp: $LN2@stbi__zexp: ; 4261 : while (cur + n > limit) { 000b9 8b 85 70 01 00 00 mov eax, DWORD PTR n$[rbp] 000bf 8b 4d 24 mov ecx, DWORD PTR cur$[rbp] 000c2 03 c8 add ecx, eax 000c4 8b c1 mov eax, ecx 000c6 3b 45 44 cmp eax, DWORD PTR limit$[rbp] 000c9 76 21 jbe SHORT $LN3@stbi__zexp ; 4262 : if (limit > UINT_MAX / 2) 000cb 81 7d 44 ff ff ff 7f cmp DWORD PTR limit$[rbp], 2147483647 ; 7fffffffH 000d2 76 0e jbe SHORT $LN6@stbi__zexp ; 4263 : return stbi__err("outofmem", "Out of memory"); 000d4 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 000db e8 00 00 00 00 call stbi__err 000e0 eb 7d jmp SHORT $LN1@stbi__zexp $LN6@stbi__zexp: ; 4264 : limit *= 2; 000e2 8b 45 44 mov eax, DWORD PTR limit$[rbp] 000e5 d1 e0 shl eax, 1 000e7 89 45 44 mov DWORD PTR limit$[rbp], eax ; 4265 : } 000ea eb cd jmp SHORT $LN2@stbi__zexp $LN3@stbi__zexp: ; 4266 : q = (char *)STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); 000ec 8b 45 44 mov eax, DWORD PTR limit$[rbp] 000ef 8b d0 mov edx, eax 000f1 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 000f8 48 8b 48 20 mov rcx, QWORD PTR [rax+32] 000fc ff 15 00 00 00 00 call QWORD PTR __imp_realloc 00102 48 89 45 08 mov QWORD PTR q$[rbp], rax ; 4267 : STBI_NOTUSED(old_limit); ; 4268 : if (q == NULL) 00106 48 83 7d 08 00 cmp QWORD PTR q$[rbp], 0 0010b 75 0e jne SHORT $LN7@stbi__zexp ; 4269 : return stbi__err("outofmem", "Out of memory"); 0010d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00114 e8 00 00 00 00 call stbi__err 00119 eb 44 jmp SHORT $LN1@stbi__zexp $LN7@stbi__zexp: ; 4270 : z->zout_start = q; 0011b 48 8b 85 60 01 00 00 mov rax, QWORD PTR z$[rbp] 00122 48 8b 4d 08 mov rcx, QWORD PTR q$[rbp] 00126 48 89 48 20 mov QWORD PTR [rax+32], rcx ; 4271 : z->zout = q + cur; 0012a 8b 45 24 mov eax, DWORD PTR cur$[rbp] 0012d 48 8b 4d 08 mov rcx, QWORD PTR q$[rbp] 00131 48 03 c8 add rcx, rax 00134 48 8b c1 mov rax, rcx 00137 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR z$[rbp] 0013e 48 89 41 18 mov QWORD PTR [rcx+24], rax ; 4272 : z->zout_end = q + limit; 00142 8b 45 44 mov eax, DWORD PTR limit$[rbp] 00145 48 8b 4d 08 mov rcx, QWORD PTR q$[rbp] 00149 48 03 c8 add rcx, rax 0014c 48 8b c1 mov rax, rcx 0014f 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR z$[rbp] 00156 48 89 41 28 mov QWORD PTR [rcx+40], rax ; 4273 : return 1; 0015a b8 01 00 00 00 mov eax, 1 $LN1@stbi__zexp: ; 4274 : } 0015f 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 00166 5f pop rdi 00167 5d pop rbp 00168 c3 ret 0 stbi__zexpand ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__zhuffman_decode _TEXT SEGMENT b$ = 4 s$ = 36 tv133 = 248 a$ = 288 z$ = 296 stbi__zhuffman_decode PROC ; COMDAT ; 4231 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 4232 : int b, s; ; 4233 : if (a->num_bits < 16) { 00025 48 8b 85 20 01 00 00 mov rax, QWORD PTR a$[rbp] 0002c 83 78 10 10 cmp DWORD PTR [rax+16], 16 00030 7d 27 jge SHORT $LN2@stbi__zhuf ; 4234 : if (stbi__zeof(a)) { 00032 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 00039 e8 00 00 00 00 call stbi__zeof 0003e 85 c0 test eax, eax 00040 74 0a je SHORT $LN3@stbi__zhuf ; 4235 : return -1; /* report error for unexpected end of data. */ 00042 b8 ff ff ff ff mov eax, -1 00047 e9 9b 00 00 00 jmp $LN1@stbi__zhuf $LN3@stbi__zhuf: ; 4236 : } ; 4237 : stbi__fill_bits(a); 0004c 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 00053 e8 00 00 00 00 call stbi__fill_bits 00058 90 npad 1 $LN2@stbi__zhuf: ; 4238 : } ; 4239 : b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; 00059 48 8b 85 20 01 00 00 mov rax, QWORD PTR a$[rbp] 00060 8b 40 14 mov eax, DWORD PTR [rax+20] 00063 25 ff 01 00 00 and eax, 511 ; 000001ffH 00068 8b c0 mov eax, eax 0006a 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR z$[rbp] 00071 0f b7 04 41 movzx eax, WORD PTR [rcx+rax*2] 00075 89 45 04 mov DWORD PTR b$[rbp], eax ; 4240 : if (b) { 00078 83 7d 04 00 cmp DWORD PTR b$[rbp], 0 0007c 74 56 je SHORT $LN4@stbi__zhuf ; 4241 : s = b >> 9; 0007e 8b 45 04 mov eax, DWORD PTR b$[rbp] 00081 c1 f8 09 sar eax, 9 00084 89 45 24 mov DWORD PTR s$[rbp], eax ; 4242 : a->code_buffer >>= s; 00087 8b 45 24 mov eax, DWORD PTR s$[rbp] 0008a 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 00091 48 89 8d f8 00 00 00 mov QWORD PTR tv133[rbp], rcx 00098 0f b6 c8 movzx ecx, al 0009b 48 8b 85 f8 00 00 00 mov rax, QWORD PTR tv133[rbp] 000a2 8b 40 14 mov eax, DWORD PTR [rax+20] 000a5 d3 e8 shr eax, cl 000a7 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 000ae 89 41 14 mov DWORD PTR [rcx+20], eax ; 4243 : a->num_bits -= s; 000b1 48 8b 85 20 01 00 00 mov rax, QWORD PTR a$[rbp] 000b8 8b 4d 24 mov ecx, DWORD PTR s$[rbp] 000bb 8b 40 10 mov eax, DWORD PTR [rax+16] 000be 2b c1 sub eax, ecx 000c0 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 000c7 89 41 10 mov DWORD PTR [rcx+16], eax ; 4244 : return b & 511; 000ca 8b 45 04 mov eax, DWORD PTR b$[rbp] 000cd 25 ff 01 00 00 and eax, 511 ; 000001ffH 000d2 eb 13 jmp SHORT $LN1@stbi__zhuf $LN4@stbi__zhuf: ; 4245 : } ; 4246 : return stbi__zhuffman_decode_slowpath(a, z); 000d4 48 8b 95 28 01 00 00 mov rdx, QWORD PTR z$[rbp] 000db 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR a$[rbp] 000e2 e8 00 00 00 00 call stbi__zhuffman_decode_slowpath $LN1@stbi__zhuf: ; 4247 : } 000e7 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000ee 5f pop rdi 000ef 5d pop rbp 000f0 c3 ret 0 stbi__zhuffman_decode ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__zhuffman_decode_slowpath _TEXT SEGMENT b$ = 4 s$ = 36 k$ = 68 tv159 = 280 a$ = 320 z$ = 328 stbi__zhuffman_decode_slowpath PROC ; COMDAT ; 4209 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 4210 : int b, s, k; ; 4211 : // not resolved by fast table, so compute it the slow way ; 4212 : // use jpeg approach, which requires MSbits at top ; 4213 : k = stbi__bit_reverse(a->code_buffer, 16); 00025 ba 10 00 00 00 mov edx, 16 0002a 48 8b 85 40 01 00 00 mov rax, QWORD PTR a$[rbp] 00031 8b 48 14 mov ecx, DWORD PTR [rax+20] 00034 e8 00 00 00 00 call stbi__bit_reverse 00039 89 45 44 mov DWORD PTR k$[rbp], eax ; 4214 : for (s = STBI__ZFAST_BITS + 1;; ++s) 0003c c7 45 24 0a 00 00 00 mov DWORD PTR s$[rbp], 10 00043 eb 08 jmp SHORT $LN4@stbi__zhuf $LN2@stbi__zhuf: 00045 8b 45 24 mov eax, DWORD PTR s$[rbp] 00048 ff c0 inc eax 0004a 89 45 24 mov DWORD PTR s$[rbp], eax $LN4@stbi__zhuf: ; 4215 : if (k < z->maxcode[s]) 0004d 48 63 45 24 movsxd rax, DWORD PTR s$[rbp] 00051 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR z$[rbp] 00058 8b 84 81 20 04 00 00 mov eax, DWORD PTR [rcx+rax*4+1056] 0005f 39 45 44 cmp DWORD PTR k$[rbp], eax 00062 7d 02 jge SHORT $LN5@stbi__zhuf ; 4216 : break; 00064 eb 02 jmp SHORT $LN3@stbi__zhuf $LN5@stbi__zhuf: 00066 eb dd jmp SHORT $LN2@stbi__zhuf $LN3@stbi__zhuf: ; 4217 : if (s >= 16) 00068 83 7d 24 10 cmp DWORD PTR s$[rbp], 16 0006c 7c 0a jl SHORT $LN6@stbi__zhuf ; 4218 : return -1; // invalid code! 0006e b8 ff ff ff ff mov eax, -1 00073 e9 c2 00 00 00 jmp $LN1@stbi__zhuf $LN6@stbi__zhuf: ; 4219 : // code size is s, so: ; 4220 : b = (k >> (16 - s)) - z->firstcode[s] + z->firstsymbol[s]; 00078 b8 10 00 00 00 mov eax, 16 0007d 2b 45 24 sub eax, DWORD PTR s$[rbp] 00080 0f b6 c8 movzx ecx, al 00083 8b 45 44 mov eax, DWORD PTR k$[rbp] 00086 d3 f8 sar eax, cl 00088 48 63 4d 24 movsxd rcx, DWORD PTR s$[rbp] 0008c 48 8b 95 48 01 00 00 mov rdx, QWORD PTR z$[rbp] 00093 0f b7 8c 4a 00 04 00 00 movzx ecx, WORD PTR [rdx+rcx*2+1024] 0009b 2b c1 sub eax, ecx 0009d 48 63 4d 24 movsxd rcx, DWORD PTR s$[rbp] 000a1 48 8b 95 48 01 00 00 mov rdx, QWORD PTR z$[rbp] 000a8 0f b7 8c 4a 64 04 00 00 movzx ecx, WORD PTR [rdx+rcx*2+1124] 000b0 03 c1 add eax, ecx 000b2 89 45 04 mov DWORD PTR b$[rbp], eax ; 4221 : if (b >= STBI__ZNSYMS) 000b5 81 7d 04 20 01 00 00 cmp DWORD PTR b$[rbp], 288 ; 00000120H 000bc 7c 07 jl SHORT $LN7@stbi__zhuf ; 4222 : return -1; // some data was corrupt somewhere! 000be b8 ff ff ff ff mov eax, -1 000c3 eb 75 jmp SHORT $LN1@stbi__zhuf $LN7@stbi__zhuf: ; 4223 : if (z->size[b] != s) 000c5 48 63 45 04 movsxd rax, DWORD PTR b$[rbp] 000c9 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR z$[rbp] 000d0 0f b6 84 01 84 04 00 00 movzx eax, BYTE PTR [rcx+rax+1156] 000d8 3b 45 24 cmp eax, DWORD PTR s$[rbp] 000db 74 07 je SHORT $LN8@stbi__zhuf ; 4224 : return -1; // was originally an assert, but report failure instead. 000dd b8 ff ff ff ff mov eax, -1 000e2 eb 56 jmp SHORT $LN1@stbi__zhuf $LN8@stbi__zhuf: ; 4225 : a->code_buffer >>= s; 000e4 8b 45 24 mov eax, DWORD PTR s$[rbp] 000e7 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR a$[rbp] 000ee 48 89 8d 18 01 00 00 mov QWORD PTR tv159[rbp], rcx 000f5 0f b6 c8 movzx ecx, al 000f8 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv159[rbp] 000ff 8b 40 14 mov eax, DWORD PTR [rax+20] 00102 d3 e8 shr eax, cl 00104 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR a$[rbp] 0010b 89 41 14 mov DWORD PTR [rcx+20], eax ; 4226 : a->num_bits -= s; 0010e 48 8b 85 40 01 00 00 mov rax, QWORD PTR a$[rbp] 00115 8b 4d 24 mov ecx, DWORD PTR s$[rbp] 00118 8b 40 10 mov eax, DWORD PTR [rax+16] 0011b 2b c1 sub eax, ecx 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR a$[rbp] 00124 89 41 10 mov DWORD PTR [rcx+16], eax ; 4227 : return z->value[b]; 00127 48 63 45 04 movsxd rax, DWORD PTR b$[rbp] 0012b 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR z$[rbp] 00132 0f b7 84 41 a4 05 00 00 movzx eax, WORD PTR [rcx+rax*2+1444] $LN1@stbi__zhuf: ; 4228 : } 0013a 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 00141 5f pop rdi 00142 5d pop rbp 00143 c3 ret 0 stbi__zhuffman_decode_slowpath ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__zreceive _TEXT SEGMENT k$ = 4 tv84 = 212 tv90 = 216 z$ = 256 n$ = 264 stbi__zreceive PROC ; COMDAT ; 4198 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 4199 : unsigned int k; ; 4200 : if (z->num_bits < n) 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR z$[rbp] 0002b 8b 8d 08 01 00 00 mov ecx, DWORD PTR n$[rbp] 00031 39 48 10 cmp DWORD PTR [rax+16], ecx 00034 7d 0d jge SHORT $LN2@stbi__zrec ; 4201 : stbi__fill_bits(z); 00036 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 0003d e8 00 00 00 00 call stbi__fill_bits 00042 90 npad 1 $LN2@stbi__zrec: ; 4202 : k = z->code_buffer & ((1 << n) - 1); 00043 8b 85 08 01 00 00 mov eax, DWORD PTR n$[rbp] 00049 b9 01 00 00 00 mov ecx, 1 0004e 89 8d d4 00 00 00 mov DWORD PTR tv84[rbp], ecx 00054 0f b6 c8 movzx ecx, al 00057 8b 85 d4 00 00 00 mov eax, DWORD PTR tv84[rbp] 0005d d3 e0 shl eax, cl 0005f ff c8 dec eax 00061 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 00068 8b 49 14 mov ecx, DWORD PTR [rcx+20] 0006b 23 c8 and ecx, eax 0006d 8b c1 mov eax, ecx 0006f 89 45 04 mov DWORD PTR k$[rbp], eax ; 4203 : z->code_buffer >>= n; 00072 8b 85 08 01 00 00 mov eax, DWORD PTR n$[rbp] 00078 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 0007f 48 89 8d d8 00 00 00 mov QWORD PTR tv90[rbp], rcx 00086 0f b6 c8 movzx ecx, al 00089 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv90[rbp] 00090 8b 40 14 mov eax, DWORD PTR [rax+20] 00093 d3 e8 shr eax, cl 00095 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 0009c 89 41 14 mov DWORD PTR [rcx+20], eax ; 4204 : z->num_bits -= n; 0009f 48 8b 85 00 01 00 00 mov rax, QWORD PTR z$[rbp] 000a6 8b 8d 08 01 00 00 mov ecx, DWORD PTR n$[rbp] 000ac 8b 40 10 mov eax, DWORD PTR [rax+16] 000af 2b c1 sub eax, ecx 000b1 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 000b8 89 41 10 mov DWORD PTR [rcx+16], eax ; 4205 : return k; 000bb 8b 45 04 mov eax, DWORD PTR k$[rbp] ; 4206 : } 000be 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000c5 5f pop rdi 000c6 5d pop rbp 000c7 c3 ret 0 stbi__zreceive ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__fill_bits _TEXT SEGMENT tv92 = 192 z$ = 240 stbi__fill_bits PROC ; COMDAT ; 4186 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 $LN4@stbi__fill: ; 4187 : do { ; 4188 : if (z->code_buffer >= (1U << z->num_bits)) { 00020 48 8b 85 f0 00 00 00 mov rax, QWORD PTR z$[rbp] 00027 8b 40 10 mov eax, DWORD PTR [rax+16] 0002a b9 01 00 00 00 mov ecx, 1 0002f 89 8d c0 00 00 00 mov DWORD PTR tv92[rbp], ecx 00035 0f b6 c8 movzx ecx, al 00038 8b 85 c0 00 00 00 mov eax, DWORD PTR tv92[rbp] 0003e d3 e0 shl eax, cl 00040 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 00047 39 41 14 cmp DWORD PTR [rcx+20], eax 0004a 72 17 jb SHORT $LN5@stbi__fill ; 4189 : z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ 0004c 48 8b 85 f0 00 00 00 mov rax, QWORD PTR z$[rbp] 00053 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 0005a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] 0005e 48 89 08 mov QWORD PTR [rax], rcx ; 4190 : return; 00061 eb 5b jmp SHORT $LN1@stbi__fill $LN5@stbi__fill: ; 4191 : } ; 4192 : z->code_buffer |= (unsigned int)stbi__zget8(z) << z->num_bits; 00063 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 0006a e8 00 00 00 00 call stbi__zget8 0006f 0f b6 c0 movzx eax, al 00072 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 00079 8b 49 10 mov ecx, DWORD PTR [rcx+16] 0007c d3 e0 shl eax, cl 0007e 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 00085 8b 49 14 mov ecx, DWORD PTR [rcx+20] 00088 0b c8 or ecx, eax 0008a 8b c1 mov eax, ecx 0008c 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 00093 89 41 14 mov DWORD PTR [rcx+20], eax ; 4193 : z->num_bits += 8; 00096 48 8b 85 f0 00 00 00 mov rax, QWORD PTR z$[rbp] 0009d 8b 40 10 mov eax, DWORD PTR [rax+16] 000a0 83 c0 08 add eax, 8 000a3 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 000aa 89 41 10 mov DWORD PTR [rcx+16], eax ; 4194 : } while (z->num_bits <= 24); 000ad 48 8b 85 f0 00 00 00 mov rax, QWORD PTR z$[rbp] 000b4 83 78 10 18 cmp DWORD PTR [rax+16], 24 000b8 0f 8e 62 ff ff ff jle $LN4@stbi__fill $LN1@stbi__fill: ; 4195 : } 000be 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000c5 5f pop rdi 000c6 5d pop rbp 000c7 c3 ret 0 stbi__fill_bits ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__zget8 _TEXT SEGMENT tv73 = 192 z$ = 240 stbi__zget8 PROC ; COMDAT ; 4181 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 4182 : return stbi__zeof(z) ? 0 : *z->zbuffer++; 00020 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 00027 e8 00 00 00 00 call stbi__zeof 0002c 85 c0 test eax, eax 0002e 74 0c je SHORT $LN3@stbi__zget 00030 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0 0003a eb 2a jmp SHORT $LN4@stbi__zget $LN3@stbi__zget: 0003c 48 8b 85 f0 00 00 00 mov rax, QWORD PTR z$[rbp] 00043 48 8b 00 mov rax, QWORD PTR [rax] 00046 0f b6 00 movzx eax, BYTE PTR [rax] 00049 89 85 c0 00 00 00 mov DWORD PTR tv73[rbp], eax 0004f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR z$[rbp] 00056 48 8b 00 mov rax, QWORD PTR [rax] 00059 48 ff c0 inc rax 0005c 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 00063 48 89 01 mov QWORD PTR [rcx], rax $LN4@stbi__zget: 00066 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv73[rbp] ; 4183 : } 0006d 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 00074 5f pop rdi 00075 5d pop rbp 00076 c3 ret 0 stbi__zget8 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__zeof _TEXT SEGMENT tv67 = 192 z$ = 240 stbi__zeof PROC ; COMDAT ; 4176 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 4177 : return (z->zbuffer >= z->zbuffer_end); 00020 48 8b 85 f0 00 00 00 mov rax, QWORD PTR z$[rbp] 00027 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR z$[rbp] 0002e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] 00032 48 39 08 cmp QWORD PTR [rax], rcx 00035 72 0c jb SHORT $LN3@stbi__zeof 00037 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv67[rbp], 1 00041 eb 0a jmp SHORT $LN4@stbi__zeof $LN3@stbi__zeof: 00043 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv67[rbp], 0 $LN4@stbi__zeof: 0004d 8b 85 c0 00 00 00 mov eax, DWORD PTR tv67[rbp] ; 4178 : } 00053 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 0005a 5f pop rdi 0005b 5d pop rbp 0005c c3 ret 0 stbi__zeof ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__zbuild_huffman _TEXT SEGMENT i$ = 4 k$ = 36 code$ = 68 next_code$ = 112 sizes$ = 208 s$5 = 308 c$6 = 340 fastv$7 = 372 j$8 = 404 tv289 = 612 __$ArrayPad$ = 616 z$ = 656 sizelist$ = 664 num$ = 672 stbi__zbuild_huffman PROC ; COMDAT ; 4109 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 98 02 00 00 sub rsp, 664 ; 00000298H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00022 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 0002c f3 ab rep stosd 0002e 48 8b 8c 24 b8 02 00 00 mov rcx, QWORD PTR [rsp+696] 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0003d 48 33 c5 xor rax, rbp 00040 48 89 85 68 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00047 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00053 90 npad 1 ; 4110 : int i, k = 0; 00054 c7 45 24 00 00 00 00 mov DWORD PTR k$[rbp], 0 ; 4111 : int code, next_code[16], sizes[17]; ; 4112 : ; 4113 : // DEFLATE spec for generating codes ; 4114 : memset(sizes, 0, sizeof(sizes)); 0005b 41 b8 44 00 00 00 mov r8d, 68 ; 00000044H 00061 33 d2 xor edx, edx 00063 48 8d 8d d0 00 00 00 lea rcx, QWORD PTR sizes$[rbp] 0006a e8 00 00 00 00 call memset 0006f 90 npad 1 ; 4115 : memset(z->fast, 0, sizeof(z->fast)); 00070 48 8b 85 90 02 00 00 mov rax, QWORD PTR z$[rbp] 00077 41 b8 00 04 00 00 mov r8d, 1024 ; 00000400H 0007d 33 d2 xor edx, edx 0007f 48 8b c8 mov rcx, rax 00082 e8 00 00 00 00 call memset 00087 90 npad 1 ; 4116 : for (i = 0; i < num; ++i) 00088 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 0008f eb 08 jmp SHORT $LN4@stbi__zbui $LN2@stbi__zbui: 00091 8b 45 04 mov eax, DWORD PTR i$[rbp] 00094 ff c0 inc eax 00096 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__zbui: 00099 8b 85 a0 02 00 00 mov eax, DWORD PTR num$[rbp] 0009f 39 45 04 cmp DWORD PTR i$[rbp], eax 000a2 7d 30 jge SHORT $LN3@stbi__zbui ; 4117 : ++sizes[sizelist[i]]; 000a4 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000a8 48 8b 8d 98 02 00 00 mov rcx, QWORD PTR sizelist$[rbp] 000af 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 000b3 8b 84 85 d0 00 00 00 mov eax, DWORD PTR sizes$[rbp+rax*4] 000ba ff c0 inc eax 000bc 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 000c0 48 8b 95 98 02 00 00 mov rdx, QWORD PTR sizelist$[rbp] 000c7 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 000cb 89 84 8d d0 00 00 00 mov DWORD PTR sizes$[rbp+rcx*4], eax 000d2 eb bd jmp SHORT $LN2@stbi__zbui $LN3@stbi__zbui: ; 4118 : sizes[0] = 0; 000d4 b8 04 00 00 00 mov eax, 4 000d9 48 6b c0 00 imul rax, rax, 0 000dd c7 84 05 d0 00 00 00 00 00 00 00 mov DWORD PTR sizes$[rbp+rax], 0 ; 4119 : for (i = 1; i < 16; ++i) 000e8 c7 45 04 01 00 00 00 mov DWORD PTR i$[rbp], 1 000ef eb 08 jmp SHORT $LN7@stbi__zbui $LN5@stbi__zbui: 000f1 8b 45 04 mov eax, DWORD PTR i$[rbp] 000f4 ff c0 inc eax 000f6 89 45 04 mov DWORD PTR i$[rbp], eax $LN7@stbi__zbui: 000f9 83 7d 04 10 cmp DWORD PTR i$[rbp], 16 000fd 7d 2c jge SHORT $LN6@stbi__zbui ; 4120 : if (sizes[i] > (1 << i)) 000ff 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00103 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 00106 ba 01 00 00 00 mov edx, 1 0010b d3 e2 shl edx, cl 0010d 8b ca mov ecx, edx 0010f 39 8c 85 d0 00 00 00 cmp DWORD PTR sizes$[rbp+rax*4], ecx 00116 7e 11 jle SHORT $LN16@stbi__zbui ; 4121 : return stbi__err("bad sizes", "Corrupt PNG"); 00118 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09EOHLEIKL@bad?5sizes@ 0011f e8 00 00 00 00 call stbi__err 00124 e9 6b 02 00 00 jmp $LN1@stbi__zbui $LN16@stbi__zbui: 00129 eb c6 jmp SHORT $LN5@stbi__zbui $LN6@stbi__zbui: ; 4122 : code = 0; 0012b c7 45 44 00 00 00 00 mov DWORD PTR code$[rbp], 0 ; 4123 : for (i = 1; i < 16; ++i) { 00132 c7 45 04 01 00 00 00 mov DWORD PTR i$[rbp], 1 00139 eb 08 jmp SHORT $LN10@stbi__zbui $LN8@stbi__zbui: 0013b 8b 45 04 mov eax, DWORD PTR i$[rbp] 0013e ff c0 inc eax 00140 89 45 04 mov DWORD PTR i$[rbp], eax $LN10@stbi__zbui: 00143 83 7d 04 10 cmp DWORD PTR i$[rbp], 16 00147 0f 8d c6 00 00 00 jge $LN9@stbi__zbui ; 4124 : next_code[i] = code; 0014d 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00151 8b 4d 44 mov ecx, DWORD PTR code$[rbp] 00154 89 4c 85 70 mov DWORD PTR next_code$[rbp+rax*4], ecx ; 4125 : z->firstcode[i] = (stbi__uint16)code; 00158 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0015c 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR z$[rbp] 00163 0f b7 55 44 movzx edx, WORD PTR code$[rbp] 00167 66 89 94 41 00 04 00 00 mov WORD PTR [rcx+rax*2+1024], dx ; 4126 : z->firstsymbol[i] = (stbi__uint16)k; 0016f 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00173 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR z$[rbp] 0017a 0f b7 55 24 movzx edx, WORD PTR k$[rbp] 0017e 66 89 94 41 64 04 00 00 mov WORD PTR [rcx+rax*2+1124], dx ; 4127 : code = (code + sizes[i]); 00186 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0018a 8b 84 85 d0 00 00 00 mov eax, DWORD PTR sizes$[rbp+rax*4] 00191 8b 4d 44 mov ecx, DWORD PTR code$[rbp] 00194 03 c8 add ecx, eax 00196 8b c1 mov eax, ecx 00198 89 45 44 mov DWORD PTR code$[rbp], eax ; 4128 : if (sizes[i]) 0019b 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0019f 83 bc 85 d0 00 00 00 00 cmp DWORD PTR sizes$[rbp+rax*4], 0 001a7 74 26 je SHORT $LN17@stbi__zbui ; 4129 : if (code - 1 >= (1 << i)) 001a9 8b 45 44 mov eax, DWORD PTR code$[rbp] 001ac ff c8 dec eax 001ae 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 001b1 ba 01 00 00 00 mov edx, 1 001b6 d3 e2 shl edx, cl 001b8 8b ca mov ecx, edx 001ba 3b c1 cmp eax, ecx 001bc 7c 11 jl SHORT $LN18@stbi__zbui ; 4130 : return stbi__err("bad codelengths", "Corrupt PNG"); 001be 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MDNKOBMC@bad?5codelengths@ 001c5 e8 00 00 00 00 call stbi__err 001ca e9 c5 01 00 00 jmp $LN1@stbi__zbui $LN18@stbi__zbui: $LN17@stbi__zbui: ; 4131 : z->maxcode[i] = code << (16 - i); // preshift for inner loop 001cf b8 10 00 00 00 mov eax, 16 001d4 2b 45 04 sub eax, DWORD PTR i$[rbp] 001d7 0f b6 c8 movzx ecx, al 001da 8b 45 44 mov eax, DWORD PTR code$[rbp] 001dd d3 e0 shl eax, cl 001df 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 001e3 48 8b 95 90 02 00 00 mov rdx, QWORD PTR z$[rbp] 001ea 89 84 8a 20 04 00 00 mov DWORD PTR [rdx+rcx*4+1056], eax ; 4132 : code <<= 1; 001f1 8b 45 44 mov eax, DWORD PTR code$[rbp] 001f4 d1 e0 shl eax, 1 001f6 89 45 44 mov DWORD PTR code$[rbp], eax ; 4133 : k += sizes[i]; 001f9 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 001fd 8b 84 85 d0 00 00 00 mov eax, DWORD PTR sizes$[rbp+rax*4] 00204 8b 4d 24 mov ecx, DWORD PTR k$[rbp] 00207 03 c8 add ecx, eax 00209 8b c1 mov eax, ecx 0020b 89 45 24 mov DWORD PTR k$[rbp], eax ; 4134 : } 0020e e9 28 ff ff ff jmp $LN8@stbi__zbui $LN9@stbi__zbui: ; 4135 : z->maxcode[16] = 0x10000; // sentinel 00213 b8 04 00 00 00 mov eax, 4 00218 48 6b c0 10 imul rax, rax, 16 0021c 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR z$[rbp] 00223 c7 84 01 20 04 00 00 00 00 01 00 mov DWORD PTR [rcx+rax+1056], 65536 ; 00010000H ; 4136 : for (i = 0; i < num; ++i) { 0022e c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00235 eb 08 jmp SHORT $LN13@stbi__zbui $LN11@stbi__zbui: 00237 8b 45 04 mov eax, DWORD PTR i$[rbp] 0023a ff c0 inc eax 0023c 89 45 04 mov DWORD PTR i$[rbp], eax $LN13@stbi__zbui: 0023f 8b 85 a0 02 00 00 mov eax, DWORD PTR num$[rbp] 00245 39 45 04 cmp DWORD PTR i$[rbp], eax 00248 0f 8d 41 01 00 00 jge $LN12@stbi__zbui ; 4137 : int s = sizelist[i]; 0024e 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00252 48 8b 8d 98 02 00 00 mov rcx, QWORD PTR sizelist$[rbp] 00259 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0025d 89 85 34 01 00 00 mov DWORD PTR s$5[rbp], eax ; 4138 : if (s) { 00263 83 bd 34 01 00 00 00 cmp DWORD PTR s$5[rbp], 0 0026a 0f 84 1a 01 00 00 je $LN19@stbi__zbui ; 4139 : int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; 00270 48 63 85 34 01 00 00 movsxd rax, DWORD PTR s$5[rbp] 00277 48 63 8d 34 01 00 00 movsxd rcx, DWORD PTR s$5[rbp] 0027e 48 8b 95 90 02 00 00 mov rdx, QWORD PTR z$[rbp] 00285 0f b7 8c 4a 00 04 00 00 movzx ecx, WORD PTR [rdx+rcx*2+1024] 0028d 8b 44 85 70 mov eax, DWORD PTR next_code$[rbp+rax*4] 00291 2b c1 sub eax, ecx 00293 48 63 8d 34 01 00 00 movsxd rcx, DWORD PTR s$5[rbp] 0029a 48 8b 95 90 02 00 00 mov rdx, QWORD PTR z$[rbp] 002a1 0f b7 8c 4a 64 04 00 00 movzx ecx, WORD PTR [rdx+rcx*2+1124] 002a9 03 c1 add eax, ecx 002ab 89 85 54 01 00 00 mov DWORD PTR c$6[rbp], eax ; 4140 : stbi__uint16 fastv = (stbi__uint16)((s << 9) | i); 002b1 8b 85 34 01 00 00 mov eax, DWORD PTR s$5[rbp] 002b7 c1 e0 09 shl eax, 9 002ba 0b 45 04 or eax, DWORD PTR i$[rbp] 002bd 66 89 85 74 01 00 00 mov WORD PTR fastv$7[rbp], ax ; 4141 : z->size[c] = (stbi_uc)s; 002c4 48 63 85 54 01 00 00 movsxd rax, DWORD PTR c$6[rbp] 002cb 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR z$[rbp] 002d2 0f b6 95 34 01 00 00 movzx edx, BYTE PTR s$5[rbp] 002d9 88 94 01 84 04 00 00 mov BYTE PTR [rcx+rax+1156], dl ; 4142 : z->value[c] = (stbi__uint16)i; 002e0 48 63 85 54 01 00 00 movsxd rax, DWORD PTR c$6[rbp] 002e7 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR z$[rbp] 002ee 0f b7 55 04 movzx edx, WORD PTR i$[rbp] 002f2 66 89 94 41 a4 05 00 00 mov WORD PTR [rcx+rax*2+1444], dx ; 4143 : if (s <= STBI__ZFAST_BITS) { 002fa 83 bd 34 01 00 00 09 cmp DWORD PTR s$5[rbp], 9 00301 7f 6f jg SHORT $LN20@stbi__zbui ; 4144 : int j = stbi__bit_reverse(next_code[s], s); 00303 48 63 85 34 01 00 00 movsxd rax, DWORD PTR s$5[rbp] 0030a 8b 95 34 01 00 00 mov edx, DWORD PTR s$5[rbp] 00310 8b 4c 85 70 mov ecx, DWORD PTR next_code$[rbp+rax*4] 00314 e8 00 00 00 00 call stbi__bit_reverse 00319 89 85 94 01 00 00 mov DWORD PTR j$8[rbp], eax $LN14@stbi__zbui: ; 4145 : while (j < (1 << STBI__ZFAST_BITS)) { 0031f 81 bd 94 01 00 00 00 02 00 00 cmp DWORD PTR j$8[rbp], 512 ; 00000200H 00329 7d 47 jge SHORT $LN15@stbi__zbui ; 4146 : z->fast[j] = fastv; 0032b 48 63 85 94 01 00 00 movsxd rax, DWORD PTR j$8[rbp] 00332 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR z$[rbp] 00339 0f b7 95 74 01 00 00 movzx edx, WORD PTR fastv$7[rbp] 00340 66 89 14 41 mov WORD PTR [rcx+rax*2], dx ; 4147 : j += (1 << s); 00344 8b 85 34 01 00 00 mov eax, DWORD PTR s$5[rbp] 0034a b9 01 00 00 00 mov ecx, 1 0034f 89 8d 64 02 00 00 mov DWORD PTR tv289[rbp], ecx 00355 0f b6 c8 movzx ecx, al 00358 8b 85 64 02 00 00 mov eax, DWORD PTR tv289[rbp] 0035e d3 e0 shl eax, cl 00360 8b 8d 94 01 00 00 mov ecx, DWORD PTR j$8[rbp] 00366 03 c8 add ecx, eax 00368 8b c1 mov eax, ecx 0036a 89 85 94 01 00 00 mov DWORD PTR j$8[rbp], eax ; 4148 : } 00370 eb ad jmp SHORT $LN14@stbi__zbui $LN15@stbi__zbui: $LN20@stbi__zbui: ; 4149 : } ; 4150 : ++next_code[s]; 00372 48 63 85 34 01 00 00 movsxd rax, DWORD PTR s$5[rbp] 00379 8b 44 85 70 mov eax, DWORD PTR next_code$[rbp+rax*4] 0037d ff c0 inc eax 0037f 48 63 8d 34 01 00 00 movsxd rcx, DWORD PTR s$5[rbp] 00386 89 44 8d 70 mov DWORD PTR next_code$[rbp+rcx*4], eax $LN19@stbi__zbui: ; 4151 : } ; 4152 : } 0038a e9 a8 fe ff ff jmp $LN11@stbi__zbui $LN12@stbi__zbui: ; 4153 : return 1; 0038f b8 01 00 00 00 mov eax, 1 $LN1@stbi__zbui: ; 4154 : } 00394 48 8b f8 mov rdi, rax 00397 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0039b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__zbuild_huffman$rtcFrameData 003a2 e8 00 00 00 00 call _RTC_CheckStackVars 003a7 48 8b c7 mov rax, rdi 003aa 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 003b1 48 33 cd xor rcx, rbp 003b4 e8 00 00 00 00 call __security_check_cookie 003b9 48 8d a5 78 02 00 00 lea rsp, QWORD PTR [rbp+632] 003c0 5f pop rdi 003c1 5d pop rbp 003c2 c3 ret 0 stbi__zbuild_huffman ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bit_reverse _TEXT SEGMENT v$ = 224 bits$ = 232 stbi__bit_reverse PROC ; COMDAT ; 4101 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00008 55 push rbp 00009 57 push rdi 0000a 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00016 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00022 90 npad 1 ; 4102 : STBI_ASSERT(bits <= 16); 00023 83 bd e8 00 00 00 10 cmp DWORD PTR bits$[rbp], 16 0002a 7e 1c jle SHORT $LN3@stbi__bit_ 0002c 41 b8 06 10 00 00 mov r8d, 4102 ; 00001006H 00032 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00039 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BG@HKNLHECB@?$AAb?$AAi?$AAt?$AAs?$AA?5?$AA?$DM?$AA?$DN?$AA?5?$AA1?$AA6@ 00040 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00046 33 c0 xor eax, eax $LN3@stbi__bit_: ; 4103 : // to bit reverse n bits, reverse 16 and shift ; 4104 : // e.g. 11 bits, bit reverse and shift away 5 ; 4105 : return stbi__bitreverse16(v) >> (16 - bits); 00048 8b 8d e0 00 00 00 mov ecx, DWORD PTR v$[rbp] 0004e e8 00 00 00 00 call stbi__bitreverse16 00053 b9 10 00 00 00 mov ecx, 16 00058 2b 8d e8 00 00 00 sub ecx, DWORD PTR bits$[rbp] 0005e d3 f8 sar eax, cl ; 4106 : } 00060 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00067 5f pop rdi 00068 5d pop rbp 00069 c3 ret 0 stbi__bit_reverse ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bitreverse16 _TEXT SEGMENT n$ = 224 stbi__bitreverse16 PROC ; COMDAT ; 4092 : { 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 4093 : n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); 0001f 8b 85 e0 00 00 00 mov eax, DWORD PTR n$[rbp] 00025 25 aa aa 00 00 and eax, 43690 ; 0000aaaaH 0002a d1 f8 sar eax, 1 0002c 8b 8d e0 00 00 00 mov ecx, DWORD PTR n$[rbp] 00032 81 e1 55 55 00 00 and ecx, 21845 ; 00005555H 00038 d1 e1 shl ecx, 1 0003a 0b c1 or eax, ecx 0003c 89 85 e0 00 00 00 mov DWORD PTR n$[rbp], eax ; 4094 : n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); 00042 8b 85 e0 00 00 00 mov eax, DWORD PTR n$[rbp] 00048 25 cc cc 00 00 and eax, 52428 ; 0000ccccH 0004d c1 f8 02 sar eax, 2 00050 8b 8d e0 00 00 00 mov ecx, DWORD PTR n$[rbp] 00056 81 e1 33 33 00 00 and ecx, 13107 ; 00003333H 0005c c1 e1 02 shl ecx, 2 0005f 0b c1 or eax, ecx 00061 89 85 e0 00 00 00 mov DWORD PTR n$[rbp], eax ; 4095 : n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); 00067 8b 85 e0 00 00 00 mov eax, DWORD PTR n$[rbp] 0006d 25 f0 f0 00 00 and eax, 61680 ; 0000f0f0H 00072 c1 f8 04 sar eax, 4 00075 8b 8d e0 00 00 00 mov ecx, DWORD PTR n$[rbp] 0007b 81 e1 0f 0f 00 00 and ecx, 3855 ; 00000f0fH 00081 c1 e1 04 shl ecx, 4 00084 0b c1 or eax, ecx 00086 89 85 e0 00 00 00 mov DWORD PTR n$[rbp], eax ; 4096 : n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); 0008c 8b 85 e0 00 00 00 mov eax, DWORD PTR n$[rbp] 00092 25 00 ff 00 00 and eax, 65280 ; 0000ff00H 00097 c1 f8 08 sar eax, 8 0009a 8b 8d e0 00 00 00 mov ecx, DWORD PTR n$[rbp] 000a0 81 e1 ff 00 00 00 and ecx, 255 ; 000000ffH 000a6 c1 e1 08 shl ecx, 8 000a9 0b c1 or eax, ecx 000ab 89 85 e0 00 00 00 mov DWORD PTR n$[rbp], eax ; 4097 : return n; 000b1 8b 85 e0 00 00 00 mov eax, DWORD PTR n$[rbp] ; 4098 : } 000b7 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 000be 5f pop rdi 000bf 5d pop rbp 000c0 c3 ret 0 stbi__bitreverse16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_info_raw _TEXT SEGMENT tv80 = 192 j$ = 240 x$ = 248 y$ = 256 comp$ = 264 stbi__jpeg_info_raw PROC ; COMDAT ; 4038 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 4039 : if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { 0002f ba 02 00 00 00 mov edx, 2 00034 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR j$[rbp] 0003b e8 00 00 00 00 call stbi__decode_jpeg_header 00040 85 c0 test eax, eax 00042 75 17 jne SHORT $LN2@stbi__jpeg ; 4040 : stbi__rewind(j->s); 00044 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 0004b 48 8b 08 mov rcx, QWORD PTR [rax] 0004e e8 00 00 00 00 call stbi__rewind 00053 90 npad 1 ; 4041 : return 0; 00054 33 c0 xor eax, eax 00056 e9 83 00 00 00 jmp $LN1@stbi__jpeg $LN2@stbi__jpeg: ; 4042 : } ; 4043 : if (x) 0005b 48 83 bd f8 00 00 00 00 cmp QWORD PTR x$[rbp], 0 00063 74 15 je SHORT $LN3@stbi__jpeg ; 4044 : *x = j->s->img_x; 00065 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 0006c 48 8b 00 mov rax, QWORD PTR [rax] 0006f 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR x$[rbp] 00076 8b 00 mov eax, DWORD PTR [rax] 00078 89 01 mov DWORD PTR [rcx], eax $LN3@stbi__jpeg: ; 4045 : if (y) 0007a 48 83 bd 00 01 00 00 00 cmp QWORD PTR y$[rbp], 0 00082 74 16 je SHORT $LN4@stbi__jpeg ; 4046 : *y = j->s->img_y; 00084 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 0008b 48 8b 00 mov rax, QWORD PTR [rax] 0008e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR y$[rbp] 00095 8b 40 04 mov eax, DWORD PTR [rax+4] 00098 89 01 mov DWORD PTR [rcx], eax $LN4@stbi__jpeg: ; 4047 : if (comp) 0009a 48 83 bd 08 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 000a2 74 35 je SHORT $LN5@stbi__jpeg ; 4048 : *comp = j->s->img_n >= 3 ? 3 : 1; 000a4 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 000ab 48 8b 00 mov rax, QWORD PTR [rax] 000ae 83 78 08 03 cmp DWORD PTR [rax+8], 3 000b2 7c 0c jl SHORT $LN7@stbi__jpeg 000b4 c7 85 c0 00 00 00 03 00 00 00 mov DWORD PTR tv80[rbp], 3 000be eb 0a jmp SHORT $LN8@stbi__jpeg $LN7@stbi__jpeg: 000c0 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv80[rbp], 1 $LN8@stbi__jpeg: 000ca 48 8b 85 08 01 00 00 mov rax, QWORD PTR comp$[rbp] 000d1 8b 8d c0 00 00 00 mov ecx, DWORD PTR tv80[rbp] 000d7 89 08 mov DWORD PTR [rax], ecx $LN5@stbi__jpeg: ; 4049 : return 1; 000d9 b8 01 00 00 00 mov eax, 1 $LN1@stbi__jpeg: ; 4050 : } 000de 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000e5 5f pop rdi 000e6 5d pop rbp 000e7 c3 ret 0 stbi__jpeg_info_raw ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT load_jpeg_image _TEXT SEGMENT n$ = 4 decode_n$ = 36 is_rgb$ = 68 k$5 = 100 i$6 = 132 j$7 = 164 output$8 = 200 coutput$9 = 232 res_comp$10 = 304 r$11 = 520 out$12 = 552 r$13 = 584 y_bot$14 = 612 y$15 = 648 m$16 = 676 m$17 = 708 m$18 = 740 r$19 = 772 g$20 = 804 b$21 = 836 y$22 = 872 tv656 = 1268 tv694 = 1268 tv81 = 1268 tv91 = 1268 tv252 = 1268 tv280 = 1268 tv288 = 1268 tv516 = 1268 tv545 = 1268 tv626 = 1268 tv79 = 1272 tv265 = 1272 tv71 = 1272 tv159 = 1272 tv164 = 1272 tv172 = 1272 tv232 = 1272 tv270 = 1280 __$ArrayPad$ = 1288 z$ = 1328 out_x$ = 1336 out_y$ = 1344 comp$ = 1352 req_comp$ = 1360 load_jpeg_image PROC ; COMDAT ; 3813 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 48 05 00 00 sub rsp, 1352 ; 00000548H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 e6 00 00 00 mov ecx, 230 ; 000000e6H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 68 05 00 00 mov rcx, QWORD PTR [rsp+1384] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 08 05 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 3814 : int n, decode_n, is_rgb; ; 3815 : z->s->img_n = 0; // make stbi__cleanup_jpeg safe 00059 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00060 48 8b 00 mov rax, QWORD PTR [rax] 00063 c7 40 08 00 00 00 00 mov DWORD PTR [rax+8], 0 ; 3816 : ; 3817 : // validate req_comp ; 3818 : if (req_comp < 0 || req_comp > 4) 0006a 83 bd 50 05 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 00071 7c 09 jl SHORT $LN42@load_jpeg_ 00073 83 bd 50 05 00 00 04 cmp DWORD PTR req_comp$[rbp], 4 0007a 7e 34 jle SHORT $LN41@load_jpeg_ $LN42@load_jpeg_: ; 3819 : return stbi__errpuc("bad req_comp", "Internal error"); 0007c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@KBPNPPBJ@bad?5req_comp@ 00083 e8 00 00 00 00 call stbi__err 00088 85 c0 test eax, eax 0008a 74 0d je SHORT $LN83@load_jpeg_ 0008c 48 c7 85 f8 04 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 00097 eb 0b jmp SHORT $LN84@load_jpeg_ $LN83@load_jpeg_: 00099 48 c7 85 f8 04 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 $LN84@load_jpeg_: 000a4 48 8b 85 f8 04 00 00 mov rax, QWORD PTR tv71[rbp] 000ab e9 fa 11 00 00 jmp $LN1@load_jpeg_ $LN41@load_jpeg_: ; 3820 : ; 3821 : // load a jpeg image from whichever source, but leave in YCbCr format ; 3822 : if (!stbi__decode_jpeg_image(z)) { 000b0 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 000b7 e8 00 00 00 00 call stbi__decode_jpeg_image 000bc 85 c0 test eax, eax 000be 75 14 jne SHORT $LN43@load_jpeg_ ; 3823 : stbi__cleanup_jpeg(z); 000c0 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 000c7 e8 00 00 00 00 call stbi__cleanup_jpeg 000cc 90 npad 1 ; 3824 : return NULL; 000cd 33 c0 xor eax, eax 000cf e9 d6 11 00 00 jmp $LN1@load_jpeg_ $LN43@load_jpeg_: ; 3825 : } ; 3826 : ; 3827 : // determine actual number of components to generate ; 3828 : n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; 000d4 83 bd 50 05 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 000db 74 0e je SHORT $LN87@load_jpeg_ 000dd 8b 85 50 05 00 00 mov eax, DWORD PTR req_comp$[rbp] 000e3 89 85 f4 04 00 00 mov DWORD PTR tv81[rbp], eax 000e9 eb 32 jmp SHORT $LN88@load_jpeg_ $LN87@load_jpeg_: 000eb 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 000f2 48 8b 00 mov rax, QWORD PTR [rax] 000f5 83 78 08 03 cmp DWORD PTR [rax+8], 3 000f9 7c 0c jl SHORT $LN85@load_jpeg_ 000fb c7 85 f8 04 00 00 03 00 00 00 mov DWORD PTR tv79[rbp], 3 00105 eb 0a jmp SHORT $LN86@load_jpeg_ $LN85@load_jpeg_: 00107 c7 85 f8 04 00 00 01 00 00 00 mov DWORD PTR tv79[rbp], 1 $LN86@load_jpeg_: 00111 8b 85 f8 04 00 00 mov eax, DWORD PTR tv79[rbp] 00117 89 85 f4 04 00 00 mov DWORD PTR tv81[rbp], eax $LN88@load_jpeg_: 0011d 8b 85 f4 04 00 00 mov eax, DWORD PTR tv81[rbp] 00123 89 45 04 mov DWORD PTR n$[rbp], eax ; 3829 : ; 3830 : is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); 00126 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0012d 48 8b 00 mov rax, QWORD PTR [rax] 00130 83 78 08 03 cmp DWORD PTR [rax+8], 3 00134 75 3c jne SHORT $LN91@load_jpeg_ 00136 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0013d 83 b8 50 48 00 00 03 cmp DWORD PTR [rax+18512], 3 00144 74 20 je SHORT $LN90@load_jpeg_ 00146 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0014d 83 b8 4c 48 00 00 00 cmp DWORD PTR [rax+18508], 0 00154 75 1c jne SHORT $LN89@load_jpeg_ 00156 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0015d 83 b8 48 48 00 00 00 cmp DWORD PTR [rax+18504], 0 00164 75 0c jne SHORT $LN91@load_jpeg_ $LN90@load_jpeg_: 00166 c7 85 f4 04 00 00 01 00 00 00 mov DWORD PTR tv91[rbp], 1 00170 eb 0a jmp SHORT $LN92@load_jpeg_ $LN91@load_jpeg_: $LN89@load_jpeg_: 00172 c7 85 f4 04 00 00 00 00 00 00 mov DWORD PTR tv91[rbp], 0 $LN92@load_jpeg_: 0017c 8b 85 f4 04 00 00 mov eax, DWORD PTR tv91[rbp] 00182 89 45 44 mov DWORD PTR is_rgb$[rbp], eax ; 3831 : ; 3832 : if (z->s->img_n == 3 && n < 3 && !is_rgb) 00185 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0018c 48 8b 00 mov rax, QWORD PTR [rax] 0018f 83 78 08 03 cmp DWORD PTR [rax+8], 3 00193 75 15 jne SHORT $LN44@load_jpeg_ 00195 83 7d 04 03 cmp DWORD PTR n$[rbp], 3 00199 7d 0f jge SHORT $LN44@load_jpeg_ 0019b 83 7d 44 00 cmp DWORD PTR is_rgb$[rbp], 0 0019f 75 09 jne SHORT $LN44@load_jpeg_ ; 3833 : decode_n = 1; 001a1 c7 45 24 01 00 00 00 mov DWORD PTR decode_n$[rbp], 1 001a8 eb 10 jmp SHORT $LN45@load_jpeg_ $LN44@load_jpeg_: ; 3834 : else ; 3835 : decode_n = z->s->img_n; 001aa 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 001b1 48 8b 00 mov rax, QWORD PTR [rax] 001b4 8b 40 08 mov eax, DWORD PTR [rax+8] 001b7 89 45 24 mov DWORD PTR decode_n$[rbp], eax $LN45@load_jpeg_: ; 3836 : ; 3837 : // nothing to do if no components requested; check this now to avoid ; 3838 : // accessing uninitialized coutput[0] later ; 3839 : if (decode_n <= 0) { 001ba 83 7d 24 00 cmp DWORD PTR decode_n$[rbp], 0 001be 7f 14 jg SHORT $LN46@load_jpeg_ ; 3840 : stbi__cleanup_jpeg(z); 001c0 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 001c7 e8 00 00 00 00 call stbi__cleanup_jpeg 001cc 90 npad 1 ; 3841 : return NULL; 001cd 33 c0 xor eax, eax 001cf e9 d6 10 00 00 jmp $LN1@load_jpeg_ $LN46@load_jpeg_: ; 3842 : } ; 3843 : ; 3844 : // resample and color-convert ; 3845 : { ; 3846 : int k; ; 3847 : unsigned int i, j; ; 3848 : stbi_uc *output; ; 3849 : stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; 001d4 48 c7 85 e8 00 00 00 00 00 00 00 mov QWORD PTR coutput$9[rbp], 0 001df 48 c7 85 f0 00 00 00 00 00 00 00 mov QWORD PTR coutput$9[rbp+8], 0 001ea 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR coutput$9[rbp+16], 0 001f5 48 c7 85 00 01 00 00 00 00 00 00 mov QWORD PTR coutput$9[rbp+24], 0 ; 3850 : ; 3851 : stbi__resample res_comp[4]; ; 3852 : ; 3853 : for (k = 0; k < decode_n; ++k) { 00200 c7 45 64 00 00 00 00 mov DWORD PTR k$5[rbp], 0 00207 eb 08 jmp SHORT $LN4@load_jpeg_ $LN2@load_jpeg_: 00209 8b 45 64 mov eax, DWORD PTR k$5[rbp] 0020c ff c0 inc eax 0020e 89 45 64 mov DWORD PTR k$5[rbp], eax $LN4@load_jpeg_: 00211 8b 45 24 mov eax, DWORD PTR decode_n$[rbp] 00214 39 45 64 cmp DWORD PTR k$5[rbp], eax 00217 0f 8d 7b 02 00 00 jge $LN3@load_jpeg_ ; 3854 : stbi__resample *r = &res_comp[k]; 0021d 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 00221 48 6b c0 30 imul rax, rax, 48 ; 00000030H 00225 48 8d 84 05 30 01 00 00 lea rax, QWORD PTR res_comp$10[rbp+rax] 0022d 48 89 85 08 02 00 00 mov QWORD PTR r$11[rbp], rax ; 3855 : ; 3856 : // allocate line buffer big enough for upsampling off the edges ; 3857 : // with upsample factor of 4 ; 3858 : z->img_comp[k].linebuf = (stbi_uc *)stbi__malloc(z->s->img_x + 3); 00234 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0023b 48 8b 00 mov rax, QWORD PTR [rax] 0023e 8b 00 mov eax, DWORD PTR [rax] 00240 83 c0 03 add eax, 3 00243 8b c0 mov eax, eax 00245 8b c8 mov ecx, eax 00247 e8 00 00 00 00 call stbi__malloc 0024c 48 63 4d 64 movsxd rcx, DWORD PTR k$5[rbp] 00250 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00254 48 8b 95 30 05 00 00 mov rdx, QWORD PTR z$[rbp] 0025b 48 89 84 0a e8 46 00 00 mov QWORD PTR [rdx+rcx+18152], rax ; 3859 : if (!z->img_comp[k].linebuf) { 00263 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 00267 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0026b 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 00272 48 83 bc 01 e8 46 00 00 00 cmp QWORD PTR [rcx+rax+18152], 0 0027b 75 41 jne SHORT $LN47@load_jpeg_ ; 3860 : stbi__cleanup_jpeg(z); 0027d 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 00284 e8 00 00 00 00 call stbi__cleanup_jpeg 00289 90 npad 1 ; 3861 : return stbi__errpuc("outofmem", "Out of memory"); 0028a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00291 e8 00 00 00 00 call stbi__err 00296 85 c0 test eax, eax 00298 74 0d je SHORT $LN93@load_jpeg_ 0029a 48 c7 85 f8 04 00 00 00 00 00 00 mov QWORD PTR tv159[rbp], 0 002a5 eb 0b jmp SHORT $LN94@load_jpeg_ $LN93@load_jpeg_: 002a7 48 c7 85 f8 04 00 00 00 00 00 00 mov QWORD PTR tv159[rbp], 0 $LN94@load_jpeg_: 002b2 48 8b 85 f8 04 00 00 mov rax, QWORD PTR tv159[rbp] 002b9 e9 ec 0f 00 00 jmp $LN1@load_jpeg_ $LN47@load_jpeg_: ; 3862 : } ; 3863 : ; 3864 : r->hs = z->img_h_max / z->img_comp[k].h; 002be 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 002c2 48 6b c0 60 imul rax, rax, 96 ; 00000060H 002c6 48 89 85 f8 04 00 00 mov QWORD PTR tv164[rbp], rax 002cd 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 002d4 8b 81 88 46 00 00 mov eax, DWORD PTR [rcx+18056] 002da 99 cdq 002db 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 002e2 4c 8b 85 f8 04 00 00 mov r8, QWORD PTR tv164[rbp] 002e9 42 f7 bc 01 a4 46 00 00 idiv DWORD PTR [rcx+r8+18084] 002f1 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR r$11[rbp] 002f8 89 41 18 mov DWORD PTR [rcx+24], eax ; 3865 : r->vs = z->img_v_max / z->img_comp[k].v; 002fb 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 002ff 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00303 48 89 85 f8 04 00 00 mov QWORD PTR tv172[rbp], rax 0030a 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 00311 8b 81 8c 46 00 00 mov eax, DWORD PTR [rcx+18060] 00317 99 cdq 00318 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 0031f 4c 8b 85 f8 04 00 00 mov r8, QWORD PTR tv172[rbp] 00326 42 f7 bc 01 a8 46 00 00 idiv DWORD PTR [rcx+r8+18088] 0032e 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR r$11[rbp] 00335 89 41 1c mov DWORD PTR [rcx+28], eax ; 3866 : r->ystep = r->vs >> 1; 00338 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 0033f 8b 40 1c mov eax, DWORD PTR [rax+28] 00342 d1 f8 sar eax, 1 00344 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR r$11[rbp] 0034b 89 41 24 mov DWORD PTR [rcx+36], eax ; 3867 : r->w_lores = (z->s->img_x + r->hs - 1) / r->hs; 0034e 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00355 48 8b 00 mov rax, QWORD PTR [rax] 00358 8b 00 mov eax, DWORD PTR [rax] 0035a 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR r$11[rbp] 00361 8b 49 18 mov ecx, DWORD PTR [rcx+24] 00364 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] 00368 33 d2 xor edx, edx 0036a 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR r$11[rbp] 00371 f7 71 18 div DWORD PTR [rcx+24] 00374 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR r$11[rbp] 0037b 89 41 20 mov DWORD PTR [rcx+32], eax ; 3868 : r->ypos = 0; 0037e 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00385 c7 40 28 00 00 00 00 mov DWORD PTR [rax+40], 0 ; 3869 : r->line0 = r->line1 = z->img_comp[k].data; 0038c 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 00390 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00394 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR r$11[rbp] 0039b 48 8b 95 30 05 00 00 mov rdx, QWORD PTR z$[rbp] 003a2 48 8b 84 02 d0 46 00 00 mov rax, QWORD PTR [rdx+rax+18128] 003aa 48 89 41 10 mov QWORD PTR [rcx+16], rax 003ae 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 003b5 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR r$11[rbp] 003bc 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] 003c0 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 3870 : ; 3871 : if (r->hs == 1 && r->vs == 1) 003c4 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 003cb 83 78 18 01 cmp DWORD PTR [rax+24], 1 003cf 75 23 jne SHORT $LN48@load_jpeg_ 003d1 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 003d8 83 78 1c 01 cmp DWORD PTR [rax+28], 1 003dc 75 16 jne SHORT $LN48@load_jpeg_ ; 3872 : r->resample = resample_row_1; 003de 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 003e5 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:resample_row_1 003ec 48 89 08 mov QWORD PTR [rax], rcx 003ef e9 9f 00 00 00 jmp $LN49@load_jpeg_ $LN48@load_jpeg_: ; 3873 : else if (r->hs == 1 && r->vs == 2) 003f4 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 003fb 83 78 18 01 cmp DWORD PTR [rax+24], 1 003ff 75 20 jne SHORT $LN50@load_jpeg_ 00401 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00408 83 78 1c 02 cmp DWORD PTR [rax+28], 2 0040c 75 13 jne SHORT $LN50@load_jpeg_ ; 3874 : r->resample = stbi__resample_row_v_2; 0040e 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00415 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_v_2 0041c 48 89 08 mov QWORD PTR [rax], rcx 0041f eb 72 jmp SHORT $LN51@load_jpeg_ $LN50@load_jpeg_: ; 3875 : else if (r->hs == 2 && r->vs == 1) 00421 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00428 83 78 18 02 cmp DWORD PTR [rax+24], 2 0042c 75 20 jne SHORT $LN52@load_jpeg_ 0042e 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00435 83 78 1c 01 cmp DWORD PTR [rax+28], 1 00439 75 13 jne SHORT $LN52@load_jpeg_ ; 3876 : r->resample = stbi__resample_row_h_2; 0043b 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00442 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_h_2 00449 48 89 08 mov QWORD PTR [rax], rcx 0044c eb 45 jmp SHORT $LN53@load_jpeg_ $LN52@load_jpeg_: ; 3877 : else if (r->hs == 2 && r->vs == 2) 0044e 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00455 83 78 18 02 cmp DWORD PTR [rax+24], 2 00459 75 27 jne SHORT $LN54@load_jpeg_ 0045b 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00462 83 78 1c 02 cmp DWORD PTR [rax+28], 2 00466 75 1a jne SHORT $LN54@load_jpeg_ ; 3878 : r->resample = z->resample_row_hv_2_kernel; 00468 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 0046f 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 00476 48 8b 89 80 48 00 00 mov rcx, QWORD PTR [rcx+18560] 0047d 48 89 08 mov QWORD PTR [rax], rcx 00480 eb 11 jmp SHORT $LN55@load_jpeg_ $LN54@load_jpeg_: ; 3879 : else ; 3880 : r->resample = stbi__resample_row_generic; 00482 48 8b 85 08 02 00 00 mov rax, QWORD PTR r$11[rbp] 00489 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_generic 00490 48 89 08 mov QWORD PTR [rax], rcx $LN55@load_jpeg_: $LN53@load_jpeg_: $LN51@load_jpeg_: $LN49@load_jpeg_: ; 3881 : } 00493 e9 71 fd ff ff jmp $LN2@load_jpeg_ $LN3@load_jpeg_: ; 3882 : ; 3883 : // can't error after this so, this is safe ; 3884 : output = (stbi_uc *)stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); 00498 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0049f 48 8b 00 mov rax, QWORD PTR [rax] 004a2 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 004a9 48 8b 09 mov rcx, QWORD PTR [rcx] 004ac 41 b9 01 00 00 00 mov r9d, 1 004b2 44 8b 40 04 mov r8d, DWORD PTR [rax+4] 004b6 8b 11 mov edx, DWORD PTR [rcx] 004b8 8b 4d 04 mov ecx, DWORD PTR n$[rbp] 004bb e8 00 00 00 00 call stbi__malloc_mad3 004c0 48 89 85 c8 00 00 00 mov QWORD PTR output$8[rbp], rax ; 3885 : if (!output) { 004c7 48 83 bd c8 00 00 00 00 cmp QWORD PTR output$8[rbp], 0 004cf 75 41 jne SHORT $LN56@load_jpeg_ ; 3886 : stbi__cleanup_jpeg(z); 004d1 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 004d8 e8 00 00 00 00 call stbi__cleanup_jpeg 004dd 90 npad 1 ; 3887 : return stbi__errpuc("outofmem", "Out of memory"); 004de 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 004e5 e8 00 00 00 00 call stbi__err 004ea 85 c0 test eax, eax 004ec 74 0d je SHORT $LN95@load_jpeg_ 004ee 48 c7 85 f8 04 00 00 00 00 00 00 mov QWORD PTR tv232[rbp], 0 004f9 eb 0b jmp SHORT $LN96@load_jpeg_ $LN95@load_jpeg_: 004fb 48 c7 85 f8 04 00 00 00 00 00 00 mov QWORD PTR tv232[rbp], 0 $LN96@load_jpeg_: 00506 48 8b 85 f8 04 00 00 mov rax, QWORD PTR tv232[rbp] 0050d e9 98 0d 00 00 jmp $LN1@load_jpeg_ $LN56@load_jpeg_: ; 3888 : } ; 3889 : ; 3890 : // now go ahead and resample ; 3891 : for (j = 0; j < z->s->img_y; ++j) { 00512 c7 85 a4 00 00 00 00 00 00 00 mov DWORD PTR j$7[rbp], 0 0051c eb 0e jmp SHORT $LN7@load_jpeg_ $LN5@load_jpeg_: 0051e 8b 85 a4 00 00 00 mov eax, DWORD PTR j$7[rbp] 00524 ff c0 inc eax 00526 89 85 a4 00 00 00 mov DWORD PTR j$7[rbp], eax $LN7@load_jpeg_: 0052c 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00533 48 8b 00 mov rax, QWORD PTR [rax] 00536 8b 40 04 mov eax, DWORD PTR [rax+4] 00539 39 85 a4 00 00 00 cmp DWORD PTR j$7[rbp], eax 0053f 0f 83 e7 0c 00 00 jae $LN6@load_jpeg_ ; 3892 : stbi_uc *out = output + n * z->s->img_x * j; 00545 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0054c 48 8b 00 mov rax, QWORD PTR [rax] 0054f 8b 4d 04 mov ecx, DWORD PTR n$[rbp] 00552 0f af 08 imul ecx, DWORD PTR [rax] 00555 8b c1 mov eax, ecx 00557 0f af 85 a4 00 00 00 imul eax, DWORD PTR j$7[rbp] 0055e 8b c0 mov eax, eax 00560 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR output$8[rbp] 00567 48 03 c8 add rcx, rax 0056a 48 8b c1 mov rax, rcx 0056d 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3893 : for (k = 0; k < decode_n; ++k) { 00574 c7 45 64 00 00 00 00 mov DWORD PTR k$5[rbp], 0 0057b eb 08 jmp SHORT $LN10@load_jpeg_ $LN8@load_jpeg_: 0057d 8b 45 64 mov eax, DWORD PTR k$5[rbp] 00580 ff c0 inc eax 00582 89 45 64 mov DWORD PTR k$5[rbp], eax $LN10@load_jpeg_: 00585 8b 45 24 mov eax, DWORD PTR decode_n$[rbp] 00588 39 45 64 cmp DWORD PTR k$5[rbp], eax 0058b 0f 8d d0 01 00 00 jge $LN9@load_jpeg_ ; 3894 : stbi__resample *r = &res_comp[k]; 00591 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 00595 48 6b c0 30 imul rax, rax, 48 ; 00000030H 00599 48 8d 84 05 30 01 00 00 lea rax, QWORD PTR res_comp$10[rbp+rax] 005a1 48 89 85 48 02 00 00 mov QWORD PTR r$13[rbp], rax ; 3895 : int y_bot = r->ystep >= (r->vs >> 1); 005a8 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 005af 8b 40 1c mov eax, DWORD PTR [rax+28] 005b2 d1 f8 sar eax, 1 005b4 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR r$13[rbp] 005bb 39 41 24 cmp DWORD PTR [rcx+36], eax 005be 7c 0c jl SHORT $LN97@load_jpeg_ 005c0 c7 85 f4 04 00 00 01 00 00 00 mov DWORD PTR tv252[rbp], 1 005ca eb 0a jmp SHORT $LN98@load_jpeg_ $LN97@load_jpeg_: 005cc c7 85 f4 04 00 00 00 00 00 00 mov DWORD PTR tv252[rbp], 0 $LN98@load_jpeg_: 005d6 8b 85 f4 04 00 00 mov eax, DWORD PTR tv252[rbp] 005dc 89 85 64 02 00 00 mov DWORD PTR y_bot$14[rbp], eax ; 3896 : coutput[k] = r->resample(z->img_comp[k].linebuf, 005e2 83 bd 64 02 00 00 00 cmp DWORD PTR y_bot$14[rbp], 0 005e9 74 14 je SHORT $LN99@load_jpeg_ 005eb 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 005f2 48 8b 40 08 mov rax, QWORD PTR [rax+8] 005f6 48 89 85 f8 04 00 00 mov QWORD PTR tv265[rbp], rax 005fd eb 12 jmp SHORT $LN100@load_jpeg_ $LN99@load_jpeg_: 005ff 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 00606 48 8b 40 10 mov rax, QWORD PTR [rax+16] 0060a 48 89 85 f8 04 00 00 mov QWORD PTR tv265[rbp], rax $LN100@load_jpeg_: 00611 83 bd 64 02 00 00 00 cmp DWORD PTR y_bot$14[rbp], 0 00618 74 14 je SHORT $LN101@load_jpeg_ 0061a 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 00621 48 8b 40 10 mov rax, QWORD PTR [rax+16] 00625 48 89 85 00 05 00 00 mov QWORD PTR tv270[rbp], rax 0062c eb 12 jmp SHORT $LN102@load_jpeg_ $LN101@load_jpeg_: 0062e 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 00635 48 8b 40 08 mov rax, QWORD PTR [rax+8] 00639 48 89 85 00 05 00 00 mov QWORD PTR tv270[rbp], rax $LN102@load_jpeg_: 00640 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 00644 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00648 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR r$13[rbp] 0064f 8b 49 18 mov ecx, DWORD PTR [rcx+24] 00652 89 4c 24 20 mov DWORD PTR [rsp+32], ecx 00656 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR r$13[rbp] 0065d 44 8b 49 20 mov r9d, DWORD PTR [rcx+32] 00661 4c 8b 85 f8 04 00 00 mov r8, QWORD PTR tv265[rbp] 00668 48 8b 95 00 05 00 00 mov rdx, QWORD PTR tv270[rbp] 0066f 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 00676 48 8b 8c 01 e8 46 00 00 mov rcx, QWORD PTR [rcx+rax+18152] 0067e 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 00685 ff 10 call QWORD PTR [rax] 00687 48 63 4d 64 movsxd rcx, DWORD PTR k$5[rbp] 0068b 48 89 84 cd e8 00 00 00 mov QWORD PTR coutput$9[rbp+rcx*8], rax ; 3897 : y_bot ? r->line1 : r->line0, ; 3898 : y_bot ? r->line0 : r->line1, r->w_lores, ; 3899 : r->hs); ; 3900 : if (++r->ystep >= r->vs) { 00693 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 0069a 8b 40 24 mov eax, DWORD PTR [rax+36] 0069d ff c0 inc eax 0069f 89 85 f4 04 00 00 mov DWORD PTR tv280[rbp], eax 006a5 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 006ac 8b 8d f4 04 00 00 mov ecx, DWORD PTR tv280[rbp] 006b2 89 48 24 mov DWORD PTR [rax+36], ecx 006b5 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 006bc 8b 40 1c mov eax, DWORD PTR [rax+28] 006bf 39 85 f4 04 00 00 cmp DWORD PTR tv280[rbp], eax 006c5 0f 8c 91 00 00 00 jl $LN57@load_jpeg_ ; 3901 : r->ystep = 0; 006cb 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 006d2 c7 40 24 00 00 00 00 mov DWORD PTR [rax+36], 0 ; 3902 : r->line0 = r->line1; 006d9 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 006e0 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR r$13[rbp] 006e7 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] 006eb 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 3903 : if (++r->ypos < z->img_comp[k].y) 006ef 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 006f6 8b 40 28 mov eax, DWORD PTR [rax+40] 006f9 ff c0 inc eax 006fb 89 85 f4 04 00 00 mov DWORD PTR tv288[rbp], eax 00701 48 8b 85 48 02 00 00 mov rax, QWORD PTR r$13[rbp] 00708 8b 8d f4 04 00 00 mov ecx, DWORD PTR tv288[rbp] 0070e 89 48 28 mov DWORD PTR [rax+40], ecx 00711 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 00715 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00719 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 00720 8b 84 01 c0 46 00 00 mov eax, DWORD PTR [rcx+rax+18112] 00727 39 85 f4 04 00 00 cmp DWORD PTR tv288[rbp], eax 0072d 7d 2d jge SHORT $LN58@load_jpeg_ ; 3904 : r->line1 += z->img_comp[k].w2; 0072f 48 63 45 64 movsxd rax, DWORD PTR k$5[rbp] 00733 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00737 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 0073e 48 63 84 01 c4 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18116] 00746 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR r$13[rbp] 0074d 48 03 41 10 add rax, QWORD PTR [rcx+16] 00751 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR r$13[rbp] 00758 48 89 41 10 mov QWORD PTR [rcx+16], rax $LN58@load_jpeg_: $LN57@load_jpeg_: ; 3905 : } ; 3906 : } 0075c e9 1c fe ff ff jmp $LN8@load_jpeg_ $LN9@load_jpeg_: ; 3907 : if (n >= 3) { 00761 83 7d 04 03 cmp DWORD PTR n$[rbp], 3 00765 0f 8c ac 05 00 00 jl $LN59@load_jpeg_ ; 3908 : stbi_uc *y = coutput[0]; 0076b b8 08 00 00 00 mov eax, 8 00770 48 6b c0 00 imul rax, rax, 0 00774 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 0077c 48 89 85 88 02 00 00 mov QWORD PTR y$15[rbp], rax ; 3909 : if (z->s->img_n == 3) { 00783 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0078a 48 8b 00 mov rax, QWORD PTR [rax] 0078d 83 78 08 03 cmp DWORD PTR [rax+8], 3 00791 0f 85 4e 01 00 00 jne $LN61@load_jpeg_ ; 3910 : if (is_rgb) { 00797 83 7d 44 00 cmp DWORD PTR is_rgb$[rbp], 0 0079b 0f 84 e8 00 00 00 je $LN63@load_jpeg_ ; 3911 : for (i = 0; i < z->s->img_x; ++i) { 007a1 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 007ab eb 0e jmp SHORT $LN13@load_jpeg_ $LN11@load_jpeg_: 007ad 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 007b3 ff c0 inc eax 007b5 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN13@load_jpeg_: 007bb 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 007c2 48 8b 00 mov rax, QWORD PTR [rax] 007c5 8b 00 mov eax, DWORD PTR [rax] 007c7 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 007cd 0f 83 b4 00 00 00 jae $LN12@load_jpeg_ ; 3912 : out[0] = y[i]; 007d3 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 007d9 b9 01 00 00 00 mov ecx, 1 007de 48 6b c9 00 imul rcx, rcx, 0 007e2 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 007e9 4c 8b 85 88 02 00 00 mov r8, QWORD PTR y$15[rbp] 007f0 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 007f5 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3913 : out[1] = coutput[1][i]; 007f8 b8 08 00 00 00 mov eax, 8 007fd 48 6b c0 01 imul rax, rax, 1 00801 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00807 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 0080f ba 01 00 00 00 mov edx, 1 00814 48 6b d2 01 imul rdx, rdx, 1 00818 4c 8b 85 28 02 00 00 mov r8, QWORD PTR out$12[rbp] 0081f 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00823 41 88 04 10 mov BYTE PTR [r8+rdx], al ; 3914 : out[2] = coutput[2][i]; 00827 b8 08 00 00 00 mov eax, 8 0082c 48 6b c0 02 imul rax, rax, 2 00830 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00836 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 0083e ba 01 00 00 00 mov edx, 1 00843 48 6b d2 02 imul rdx, rdx, 2 00847 4c 8b 85 28 02 00 00 mov r8, QWORD PTR out$12[rbp] 0084e 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00852 41 88 04 10 mov BYTE PTR [r8+rdx], al ; 3915 : out[3] = 255; 00856 b8 01 00 00 00 mov eax, 1 0085b 48 6b c0 03 imul rax, rax, 3 0085f 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00866 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 3916 : out += n; 0086a 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] 0086e 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00875 48 03 c8 add rcx, rax 00878 48 8b c1 mov rax, rcx 0087b 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3917 : } 00882 e9 26 ff ff ff jmp $LN11@load_jpeg_ $LN12@load_jpeg_: ; 3918 : } else { 00887 eb 57 jmp SHORT $LN64@load_jpeg_ $LN63@load_jpeg_: ; 3919 : z->YCbCr_to_RGB_kernel(out, y, coutput[1], 00889 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00890 48 8b 00 mov rax, QWORD PTR [rax] 00893 b9 08 00 00 00 mov ecx, 8 00898 48 6b c9 02 imul rcx, rcx, 2 0089c ba 08 00 00 00 mov edx, 8 008a1 48 6b d2 01 imul rdx, rdx, 1 008a5 44 8b 45 04 mov r8d, DWORD PTR n$[rbp] 008a9 44 89 44 24 28 mov DWORD PTR [rsp+40], r8d 008ae 8b 00 mov eax, DWORD PTR [rax] 008b0 89 44 24 20 mov DWORD PTR [rsp+32], eax 008b4 4c 8b 8c 0d e8 00 00 00 mov r9, QWORD PTR coutput$9[rbp+rcx] 008bc 4c 8b 84 15 e8 00 00 00 mov r8, QWORD PTR coutput$9[rbp+rdx] 008c4 48 8b 95 88 02 00 00 mov rdx, QWORD PTR y$15[rbp] 008cb 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 008d2 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 008d9 ff 90 78 48 00 00 call QWORD PTR [rax+18552] 008df 90 npad 1 $LN64@load_jpeg_: ; 3920 : coutput[2], z->s->img_x, n); ; 3921 : } 008e0 e9 2d 04 00 00 jmp $LN62@load_jpeg_ $LN61@load_jpeg_: ; 3922 : } else if (z->s->img_n == 4) { 008e5 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 008ec 48 8b 00 mov rax, QWORD PTR [rax] 008ef 83 78 08 04 cmp DWORD PTR [rax+8], 4 008f3 0f 85 41 03 00 00 jne $LN65@load_jpeg_ ; 3923 : if (z->app14_color_transform == 0) { // CMYK 008f9 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00900 83 b8 4c 48 00 00 00 cmp DWORD PTR [rax+18508], 0 00907 0f 85 37 01 00 00 jne $LN67@load_jpeg_ ; 3924 : for (i = 0; i < z->s->img_x; ++i) { 0090d c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 00917 eb 0e jmp SHORT $LN16@load_jpeg_ $LN14@load_jpeg_: 00919 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 0091f ff c0 inc eax 00921 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN16@load_jpeg_: 00927 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0092e 48 8b 00 mov rax, QWORD PTR [rax] 00931 8b 00 mov eax, DWORD PTR [rax] 00933 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 00939 0f 83 00 01 00 00 jae $LN15@load_jpeg_ ; 3925 : stbi_uc m = coutput[3][i]; 0093f b8 08 00 00 00 mov eax, 8 00944 48 6b c0 03 imul rax, rax, 3 00948 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 0094e 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00956 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 0095a 88 85 a4 02 00 00 mov BYTE PTR m$16[rbp], al ; 3926 : out[0] = stbi__blinn_8x8(coutput[0][i], m); 00960 b8 08 00 00 00 mov eax, 8 00965 48 6b c0 00 imul rax, rax, 0 00969 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 0096f 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00977 0f b6 95 a4 02 00 00 movzx edx, BYTE PTR m$16[rbp] 0097e 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] 00982 e8 00 00 00 00 call stbi__blinn_8x8 00987 b9 01 00 00 00 mov ecx, 1 0098c 48 6b c9 00 imul rcx, rcx, 0 00990 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00997 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3927 : out[1] = stbi__blinn_8x8(coutput[1][i], m); 0099a b8 08 00 00 00 mov eax, 8 0099f 48 6b c0 01 imul rax, rax, 1 009a3 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 009a9 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 009b1 0f b6 95 a4 02 00 00 movzx edx, BYTE PTR m$16[rbp] 009b8 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] 009bc e8 00 00 00 00 call stbi__blinn_8x8 009c1 b9 01 00 00 00 mov ecx, 1 009c6 48 6b c9 01 imul rcx, rcx, 1 009ca 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 009d1 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3928 : out[2] = stbi__blinn_8x8(coutput[2][i], m); 009d4 b8 08 00 00 00 mov eax, 8 009d9 48 6b c0 02 imul rax, rax, 2 009dd 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 009e3 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 009eb 0f b6 95 a4 02 00 00 movzx edx, BYTE PTR m$16[rbp] 009f2 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] 009f6 e8 00 00 00 00 call stbi__blinn_8x8 009fb b9 01 00 00 00 mov ecx, 1 00a00 48 6b c9 02 imul rcx, rcx, 2 00a04 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00a0b 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3929 : out[3] = 255; 00a0e b8 01 00 00 00 mov eax, 1 00a13 48 6b c0 03 imul rax, rax, 3 00a17 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00a1e c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 3930 : out += n; 00a22 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] 00a26 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00a2d 48 03 c8 add rcx, rax 00a30 48 8b c1 mov rax, rcx 00a33 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3931 : } 00a3a e9 da fe ff ff jmp $LN14@load_jpeg_ $LN15@load_jpeg_: ; 3932 : } else if (z->app14_color_transform == 2) { // YCCK 00a3f e9 f1 01 00 00 jmp $LN68@load_jpeg_ $LN67@load_jpeg_: 00a44 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00a4b 83 b8 4c 48 00 00 02 cmp DWORD PTR [rax+18508], 2 00a52 0f 85 86 01 00 00 jne $LN69@load_jpeg_ ; 3933 : z->YCbCr_to_RGB_kernel(out, y, coutput[1], 00a58 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00a5f 48 8b 00 mov rax, QWORD PTR [rax] 00a62 b9 08 00 00 00 mov ecx, 8 00a67 48 6b c9 02 imul rcx, rcx, 2 00a6b ba 08 00 00 00 mov edx, 8 00a70 48 6b d2 01 imul rdx, rdx, 1 00a74 44 8b 45 04 mov r8d, DWORD PTR n$[rbp] 00a78 44 89 44 24 28 mov DWORD PTR [rsp+40], r8d 00a7d 8b 00 mov eax, DWORD PTR [rax] 00a7f 89 44 24 20 mov DWORD PTR [rsp+32], eax 00a83 4c 8b 8c 0d e8 00 00 00 mov r9, QWORD PTR coutput$9[rbp+rcx] 00a8b 4c 8b 84 15 e8 00 00 00 mov r8, QWORD PTR coutput$9[rbp+rdx] 00a93 48 8b 95 88 02 00 00 mov rdx, QWORD PTR y$15[rbp] 00a9a 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00aa1 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00aa8 ff 90 78 48 00 00 call QWORD PTR [rax+18552] 00aae 90 npad 1 ; 3934 : coutput[2], z->s->img_x, n); ; 3935 : for (i = 0; i < z->s->img_x; ++i) { 00aaf c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 00ab9 eb 0e jmp SHORT $LN19@load_jpeg_ $LN17@load_jpeg_: 00abb 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 00ac1 ff c0 inc eax 00ac3 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN19@load_jpeg_: 00ac9 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00ad0 48 8b 00 mov rax, QWORD PTR [rax] 00ad3 8b 00 mov eax, DWORD PTR [rax] 00ad5 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 00adb 0f 83 fb 00 00 00 jae $LN18@load_jpeg_ ; 3936 : stbi_uc m = coutput[3][i]; 00ae1 b8 08 00 00 00 mov eax, 8 00ae6 48 6b c0 03 imul rax, rax, 3 00aea 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00af0 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00af8 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00afc 88 85 c4 02 00 00 mov BYTE PTR m$17[rbp], al ; 3937 : out[0] = stbi__blinn_8x8(255 - out[0], m); 00b02 b8 01 00 00 00 mov eax, 1 00b07 48 6b c0 00 imul rax, rax, 0 00b0b 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00b12 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00b16 b9 ff 00 00 00 mov ecx, 255 ; 000000ffH 00b1b 2b c8 sub ecx, eax 00b1d 8b c1 mov eax, ecx 00b1f 0f b6 95 c4 02 00 00 movzx edx, BYTE PTR m$17[rbp] 00b26 0f b6 c8 movzx ecx, al 00b29 e8 00 00 00 00 call stbi__blinn_8x8 00b2e b9 01 00 00 00 mov ecx, 1 00b33 48 6b c9 00 imul rcx, rcx, 0 00b37 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00b3e 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3938 : out[1] = stbi__blinn_8x8(255 - out[1], m); 00b41 b8 01 00 00 00 mov eax, 1 00b46 48 6b c0 01 imul rax, rax, 1 00b4a 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00b51 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00b55 b9 ff 00 00 00 mov ecx, 255 ; 000000ffH 00b5a 2b c8 sub ecx, eax 00b5c 8b c1 mov eax, ecx 00b5e 0f b6 95 c4 02 00 00 movzx edx, BYTE PTR m$17[rbp] 00b65 0f b6 c8 movzx ecx, al 00b68 e8 00 00 00 00 call stbi__blinn_8x8 00b6d b9 01 00 00 00 mov ecx, 1 00b72 48 6b c9 01 imul rcx, rcx, 1 00b76 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00b7d 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3939 : out[2] = stbi__blinn_8x8(255 - out[2], m); 00b80 b8 01 00 00 00 mov eax, 1 00b85 48 6b c0 02 imul rax, rax, 2 00b89 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00b90 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00b94 b9 ff 00 00 00 mov ecx, 255 ; 000000ffH 00b99 2b c8 sub ecx, eax 00b9b 8b c1 mov eax, ecx 00b9d 0f b6 95 c4 02 00 00 movzx edx, BYTE PTR m$17[rbp] 00ba4 0f b6 c8 movzx ecx, al 00ba7 e8 00 00 00 00 call stbi__blinn_8x8 00bac b9 01 00 00 00 mov ecx, 1 00bb1 48 6b c9 02 imul rcx, rcx, 2 00bb5 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00bbc 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3940 : out += n; 00bbf 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] 00bc3 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00bca 48 03 c8 add rcx, rax 00bcd 48 8b c1 mov rax, rcx 00bd0 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3941 : } 00bd7 e9 df fe ff ff jmp $LN17@load_jpeg_ $LN18@load_jpeg_: ; 3942 : } else { // YCbCr + alpha? Ignore the fourth channel for now 00bdc eb 57 jmp SHORT $LN70@load_jpeg_ $LN69@load_jpeg_: ; 3943 : z->YCbCr_to_RGB_kernel(out, y, coutput[1], 00bde 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00be5 48 8b 00 mov rax, QWORD PTR [rax] 00be8 b9 08 00 00 00 mov ecx, 8 00bed 48 6b c9 02 imul rcx, rcx, 2 00bf1 ba 08 00 00 00 mov edx, 8 00bf6 48 6b d2 01 imul rdx, rdx, 1 00bfa 44 8b 45 04 mov r8d, DWORD PTR n$[rbp] 00bfe 44 89 44 24 28 mov DWORD PTR [rsp+40], r8d 00c03 8b 00 mov eax, DWORD PTR [rax] 00c05 89 44 24 20 mov DWORD PTR [rsp+32], eax 00c09 4c 8b 8c 0d e8 00 00 00 mov r9, QWORD PTR coutput$9[rbp+rcx] 00c11 4c 8b 84 15 e8 00 00 00 mov r8, QWORD PTR coutput$9[rbp+rdx] 00c19 48 8b 95 88 02 00 00 mov rdx, QWORD PTR y$15[rbp] 00c20 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00c27 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00c2e ff 90 78 48 00 00 call QWORD PTR [rax+18552] 00c34 90 npad 1 $LN70@load_jpeg_: $LN68@load_jpeg_: ; 3944 : coutput[2], z->s->img_x, n); ; 3945 : } ; 3946 : } else 00c35 e9 d8 00 00 00 jmp $LN66@load_jpeg_ $LN65@load_jpeg_: ; 3947 : for (i = 0; i < z->s->img_x; ++i) { 00c3a c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 00c44 eb 0e jmp SHORT $LN22@load_jpeg_ $LN20@load_jpeg_: 00c46 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 00c4c ff c0 inc eax 00c4e 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN22@load_jpeg_: 00c54 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00c5b 48 8b 00 mov rax, QWORD PTR [rax] 00c5e 8b 00 mov eax, DWORD PTR [rax] 00c60 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 00c66 0f 83 a6 00 00 00 jae $LN21@load_jpeg_ ; 3948 : out[0] = out[1] = out[2] = y[i]; 00c6c 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 00c72 b9 01 00 00 00 mov ecx, 1 00c77 48 6b c9 02 imul rcx, rcx, 2 00c7b 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00c82 4c 8b 85 88 02 00 00 mov r8, QWORD PTR y$15[rbp] 00c89 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00c8e 88 04 0a mov BYTE PTR [rdx+rcx], al 00c91 b8 01 00 00 00 mov eax, 1 00c96 48 6b c0 02 imul rax, rax, 2 00c9a b9 01 00 00 00 mov ecx, 1 00c9f 48 6b c9 01 imul rcx, rcx, 1 00ca3 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00caa 4c 8b 85 28 02 00 00 mov r8, QWORD PTR out$12[rbp] 00cb1 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00cb6 88 04 0a mov BYTE PTR [rdx+rcx], al 00cb9 b8 01 00 00 00 mov eax, 1 00cbe 48 6b c0 01 imul rax, rax, 1 00cc2 b9 01 00 00 00 mov ecx, 1 00cc7 48 6b c9 00 imul rcx, rcx, 0 00ccb 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00cd2 4c 8b 85 28 02 00 00 mov r8, QWORD PTR out$12[rbp] 00cd9 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00cde 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3949 : out[3] = 255; // not used if n==3 00ce1 b8 01 00 00 00 mov eax, 1 00ce6 48 6b c0 03 imul rax, rax, 3 00cea 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00cf1 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 3950 : out += n; 00cf5 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] 00cf9 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00d00 48 03 c8 add rcx, rax 00d03 48 8b c1 mov rax, rcx 00d06 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3951 : } 00d0d e9 34 ff ff ff jmp $LN20@load_jpeg_ $LN21@load_jpeg_: $LN66@load_jpeg_: $LN62@load_jpeg_: ; 3952 : } else { 00d12 e9 10 05 00 00 jmp $LN60@load_jpeg_ $LN59@load_jpeg_: ; 3953 : if (is_rgb) { 00d17 83 7d 44 00 cmp DWORD PTR is_rgb$[rbp], 0 00d1b 0f 84 ab 01 00 00 je $LN71@load_jpeg_ ; 3954 : if (n == 1) 00d21 83 7d 04 01 cmp DWORD PTR n$[rbp], 1 00d25 0f 85 c1 00 00 00 jne $LN73@load_jpeg_ ; 3955 : for (i = 0; i < z->s->img_x; ++i) 00d2b c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 00d35 eb 0e jmp SHORT $LN25@load_jpeg_ $LN23@load_jpeg_: 00d37 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 00d3d ff c0 inc eax 00d3f 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN25@load_jpeg_: 00d45 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00d4c 48 8b 00 mov rax, QWORD PTR [rax] 00d4f 8b 00 mov eax, DWORD PTR [rax] 00d51 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 00d57 0f 83 8a 00 00 00 jae $LN24@load_jpeg_ ; 3956 : *out++ = stbi__compute_y(coutput[0][i], 00d5d b8 08 00 00 00 mov eax, 8 00d62 48 6b c0 02 imul rax, rax, 2 00d66 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00d6c 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00d74 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00d78 b9 08 00 00 00 mov ecx, 8 00d7d 48 6b c9 01 imul rcx, rcx, 1 00d81 8b 95 84 00 00 00 mov edx, DWORD PTR i$6[rbp] 00d87 48 8b 8c 0d e8 00 00 00 mov rcx, QWORD PTR coutput$9[rbp+rcx] 00d8f 0f b6 0c 11 movzx ecx, BYTE PTR [rcx+rdx] 00d93 ba 08 00 00 00 mov edx, 8 00d98 48 6b d2 00 imul rdx, rdx, 0 00d9c 44 8b 85 84 00 00 00 mov r8d, DWORD PTR i$6[rbp] 00da3 48 8b 94 15 e8 00 00 00 mov rdx, QWORD PTR coutput$9[rbp+rdx] 00dab 42 0f b6 14 02 movzx edx, BYTE PTR [rdx+r8] 00db0 89 95 f4 04 00 00 mov DWORD PTR tv516[rbp], edx 00db6 44 8b c0 mov r8d, eax 00db9 8b d1 mov edx, ecx 00dbb 8b 85 f4 04 00 00 mov eax, DWORD PTR tv516[rbp] 00dc1 8b c8 mov ecx, eax 00dc3 e8 00 00 00 00 call stbi__compute_y 00dc8 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00dcf 88 01 mov BYTE PTR [rcx], al 00dd1 48 8b 85 28 02 00 00 mov rax, QWORD PTR out$12[rbp] 00dd8 48 ff c0 inc rax 00ddb 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax 00de2 e9 50 ff ff ff jmp $LN23@load_jpeg_ $LN24@load_jpeg_: ; 3957 : coutput[1][i], ; 3958 : coutput[2][i]); 00de7 e9 db 00 00 00 jmp $LN74@load_jpeg_ $LN73@load_jpeg_: ; 3959 : else { ; 3960 : for (i = 0; i < z->s->img_x; ++i, out += 2) { 00dec c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 00df6 eb 20 jmp SHORT $LN28@load_jpeg_ $LN26@load_jpeg_: 00df8 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 00dfe ff c0 inc eax 00e00 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax 00e06 48 8b 85 28 02 00 00 mov rax, QWORD PTR out$12[rbp] 00e0d 48 83 c0 02 add rax, 2 00e11 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax $LN28@load_jpeg_: 00e18 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00e1f 48 8b 00 mov rax, QWORD PTR [rax] 00e22 8b 00 mov eax, DWORD PTR [rax] 00e24 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 00e2a 0f 83 97 00 00 00 jae $LN27@load_jpeg_ ; 3961 : out[0] = stbi__compute_y(coutput[0][i], 00e30 b8 08 00 00 00 mov eax, 8 00e35 48 6b c0 02 imul rax, rax, 2 00e39 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00e3f 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00e47 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00e4b b9 08 00 00 00 mov ecx, 8 00e50 48 6b c9 01 imul rcx, rcx, 1 00e54 8b 95 84 00 00 00 mov edx, DWORD PTR i$6[rbp] 00e5a 48 8b 8c 0d e8 00 00 00 mov rcx, QWORD PTR coutput$9[rbp+rcx] 00e62 0f b6 0c 11 movzx ecx, BYTE PTR [rcx+rdx] 00e66 ba 08 00 00 00 mov edx, 8 00e6b 48 6b d2 00 imul rdx, rdx, 0 00e6f 44 8b 85 84 00 00 00 mov r8d, DWORD PTR i$6[rbp] 00e76 48 8b 94 15 e8 00 00 00 mov rdx, QWORD PTR coutput$9[rbp+rdx] 00e7e 42 0f b6 14 02 movzx edx, BYTE PTR [rdx+r8] 00e83 89 95 f4 04 00 00 mov DWORD PTR tv545[rbp], edx 00e89 44 8b c0 mov r8d, eax 00e8c 8b d1 mov edx, ecx 00e8e 8b 85 f4 04 00 00 mov eax, DWORD PTR tv545[rbp] 00e94 8b c8 mov ecx, eax 00e96 e8 00 00 00 00 call stbi__compute_y 00e9b b9 01 00 00 00 mov ecx, 1 00ea0 48 6b c9 00 imul rcx, rcx, 0 00ea4 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 00eab 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3962 : coutput[1][i], ; 3963 : coutput[2][i]); ; 3964 : out[1] = 255; 00eae b8 01 00 00 00 mov eax, 1 00eb3 48 6b c0 01 imul rax, rax, 1 00eb7 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 00ebe c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 3965 : } 00ec2 e9 31 ff ff ff jmp $LN26@load_jpeg_ $LN27@load_jpeg_: $LN74@load_jpeg_: ; 3966 : } 00ec7 e9 5b 03 00 00 jmp $LN72@load_jpeg_ $LN71@load_jpeg_: ; 3967 : } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { 00ecc 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00ed3 48 8b 00 mov rax, QWORD PTR [rax] 00ed6 83 78 08 04 cmp DWORD PTR [rax+8], 4 00eda 0f 85 64 01 00 00 jne $LN75@load_jpeg_ 00ee0 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00ee7 83 b8 4c 48 00 00 00 cmp DWORD PTR [rax+18508], 0 00eee 0f 85 50 01 00 00 jne $LN75@load_jpeg_ ; 3968 : for (i = 0; i < z->s->img_x; ++i) { 00ef4 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 00efe eb 0e jmp SHORT $LN31@load_jpeg_ $LN29@load_jpeg_: 00f00 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 00f06 ff c0 inc eax 00f08 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN31@load_jpeg_: 00f0e 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 00f15 48 8b 00 mov rax, QWORD PTR [rax] 00f18 8b 00 mov eax, DWORD PTR [rax] 00f1a 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 00f20 0f 83 19 01 00 00 jae $LN30@load_jpeg_ ; 3969 : stbi_uc m = coutput[3][i]; 00f26 b8 08 00 00 00 mov eax, 8 00f2b 48 6b c0 03 imul rax, rax, 3 00f2f 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00f35 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00f3d 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00f41 88 85 e4 02 00 00 mov BYTE PTR m$18[rbp], al ; 3970 : stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); 00f47 b8 08 00 00 00 mov eax, 8 00f4c 48 6b c0 00 imul rax, rax, 0 00f50 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00f56 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00f5e 0f b6 95 e4 02 00 00 movzx edx, BYTE PTR m$18[rbp] 00f65 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] 00f69 e8 00 00 00 00 call stbi__blinn_8x8 00f6e 88 85 04 03 00 00 mov BYTE PTR r$19[rbp], al ; 3971 : stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); 00f74 b8 08 00 00 00 mov eax, 8 00f79 48 6b c0 01 imul rax, rax, 1 00f7d 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00f83 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00f8b 0f b6 95 e4 02 00 00 movzx edx, BYTE PTR m$18[rbp] 00f92 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] 00f96 e8 00 00 00 00 call stbi__blinn_8x8 00f9b 88 85 24 03 00 00 mov BYTE PTR g$20[rbp], al ; 3972 : stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); 00fa1 b8 08 00 00 00 mov eax, 8 00fa6 48 6b c0 02 imul rax, rax, 2 00faa 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 00fb0 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 00fb8 0f b6 95 e4 02 00 00 movzx edx, BYTE PTR m$18[rbp] 00fbf 0f b6 0c 08 movzx ecx, BYTE PTR [rax+rcx] 00fc3 e8 00 00 00 00 call stbi__blinn_8x8 00fc8 88 85 44 03 00 00 mov BYTE PTR b$21[rbp], al ; 3973 : out[0] = stbi__compute_y(r, g, b); 00fce 0f b6 85 44 03 00 00 movzx eax, BYTE PTR b$21[rbp] 00fd5 0f b6 8d 24 03 00 00 movzx ecx, BYTE PTR g$20[rbp] 00fdc 0f b6 95 04 03 00 00 movzx edx, BYTE PTR r$19[rbp] 00fe3 89 95 f4 04 00 00 mov DWORD PTR tv626[rbp], edx 00fe9 44 8b c0 mov r8d, eax 00fec 8b d1 mov edx, ecx 00fee 8b 85 f4 04 00 00 mov eax, DWORD PTR tv626[rbp] 00ff4 8b c8 mov ecx, eax 00ff6 e8 00 00 00 00 call stbi__compute_y 00ffb b9 01 00 00 00 mov ecx, 1 01000 48 6b c9 00 imul rcx, rcx, 0 01004 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 0100b 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3974 : out[1] = 255; 0100e b8 01 00 00 00 mov eax, 1 01013 48 6b c0 01 imul rax, rax, 1 01017 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 0101e c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 3975 : out += n; 01022 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] 01026 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 0102d 48 03 c8 add rcx, rax 01030 48 8b c1 mov rax, rcx 01033 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3976 : } 0103a e9 c1 fe ff ff jmp $LN29@load_jpeg_ $LN30@load_jpeg_: ; 3977 : } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { 0103f e9 e3 01 00 00 jmp $LN76@load_jpeg_ $LN75@load_jpeg_: 01044 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0104b 48 8b 00 mov rax, QWORD PTR [rax] 0104e 83 78 08 04 cmp DWORD PTR [rax+8], 4 01052 0f 85 e7 00 00 00 jne $LN77@load_jpeg_ 01058 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0105f 83 b8 4c 48 00 00 02 cmp DWORD PTR [rax+18508], 2 01066 0f 85 d3 00 00 00 jne $LN77@load_jpeg_ ; 3978 : for (i = 0; i < z->s->img_x; ++i) { 0106c c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 01076 eb 0e jmp SHORT $LN34@load_jpeg_ $LN32@load_jpeg_: 01078 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 0107e ff c0 inc eax 01080 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN34@load_jpeg_: 01086 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0108d 48 8b 00 mov rax, QWORD PTR [rax] 01090 8b 00 mov eax, DWORD PTR [rax] 01092 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 01098 0f 83 9c 00 00 00 jae $LN33@load_jpeg_ ; 3979 : out[0] = stbi__blinn_8x8(255 - coutput[0][i], 0109e b8 08 00 00 00 mov eax, 8 010a3 48 6b c0 03 imul rax, rax, 3 010a7 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 010ad 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 010b5 ba 08 00 00 00 mov edx, 8 010ba 48 6b d2 00 imul rdx, rdx, 0 010be 44 8b 85 84 00 00 00 mov r8d, DWORD PTR i$6[rbp] 010c5 48 8b 94 15 e8 00 00 00 mov rdx, QWORD PTR coutput$9[rbp+rdx] 010cd 42 0f b6 14 02 movzx edx, BYTE PTR [rdx+r8] 010d2 41 b8 ff 00 00 00 mov r8d, 255 ; 000000ffH 010d8 44 2b c2 sub r8d, edx 010db 41 8b d0 mov edx, r8d 010de 89 95 f4 04 00 00 mov DWORD PTR tv656[rbp], edx 010e4 0f b6 14 08 movzx edx, BYTE PTR [rax+rcx] 010e8 8b 85 f4 04 00 00 mov eax, DWORD PTR tv656[rbp] 010ee 0f b6 c8 movzx ecx, al 010f1 e8 00 00 00 00 call stbi__blinn_8x8 010f6 b9 01 00 00 00 mov ecx, 1 010fb 48 6b c9 00 imul rcx, rcx, 0 010ff 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 01106 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3980 : coutput[3][i]); ; 3981 : out[1] = 255; 01109 b8 01 00 00 00 mov eax, 1 0110e 48 6b c0 01 imul rax, rax, 1 01112 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 01119 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 3982 : out += n; 0111d 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] 01121 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 01128 48 03 c8 add rcx, rax 0112b 48 8b c1 mov rax, rcx 0112e 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3983 : } 01135 e9 3e ff ff ff jmp $LN32@load_jpeg_ $LN33@load_jpeg_: ; 3984 : } else { 0113a e9 e8 00 00 00 jmp $LN78@load_jpeg_ $LN77@load_jpeg_: ; 3985 : stbi_uc *y = coutput[0]; 0113f b8 08 00 00 00 mov eax, 8 01144 48 6b c0 00 imul rax, rax, 0 01148 48 8b 84 05 e8 00 00 00 mov rax, QWORD PTR coutput$9[rbp+rax] 01150 48 89 85 68 03 00 00 mov QWORD PTR y$22[rbp], rax ; 3986 : if (n == 1) 01157 83 7d 04 01 cmp DWORD PTR n$[rbp], 1 0115b 75 54 jne SHORT $LN79@load_jpeg_ ; 3987 : for (i = 0; i < z->s->img_x; ++i) 0115d c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 01167 eb 0e jmp SHORT $LN37@load_jpeg_ $LN35@load_jpeg_: 01169 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 0116f ff c0 inc eax 01171 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN37@load_jpeg_: 01177 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 0117e 48 8b 00 mov rax, QWORD PTR [rax] 01181 8b 00 mov eax, DWORD PTR [rax] 01183 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 01189 73 24 jae SHORT $LN36@load_jpeg_ ; 3988 : out[i] = y[i]; 0118b 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 01191 8b 8d 84 00 00 00 mov ecx, DWORD PTR i$6[rbp] 01197 48 8b 95 28 02 00 00 mov rdx, QWORD PTR out$12[rbp] 0119e 4c 8b 85 68 03 00 00 mov r8, QWORD PTR y$22[rbp] 011a5 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 011aa 88 04 0a mov BYTE PTR [rdx+rcx], al 011ad eb ba jmp SHORT $LN35@load_jpeg_ $LN36@load_jpeg_: 011af eb 76 jmp SHORT $LN80@load_jpeg_ $LN79@load_jpeg_: ; 3989 : else ; 3990 : for (i = 0; i < z->s->img_x; ++i) { 011b1 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 011bb eb 0e jmp SHORT $LN40@load_jpeg_ $LN38@load_jpeg_: 011bd 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 011c3 ff c0 inc eax 011c5 89 85 84 00 00 00 mov DWORD PTR i$6[rbp], eax $LN40@load_jpeg_: 011cb 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 011d2 48 8b 00 mov rax, QWORD PTR [rax] 011d5 8b 00 mov eax, DWORD PTR [rax] 011d7 39 85 84 00 00 00 cmp DWORD PTR i$6[rbp], eax 011dd 73 48 jae SHORT $LN39@load_jpeg_ ; 3991 : *out++ = y[i]; 011df 8b 85 84 00 00 00 mov eax, DWORD PTR i$6[rbp] 011e5 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR out$12[rbp] 011ec 48 8b 95 68 03 00 00 mov rdx, QWORD PTR y$22[rbp] 011f3 0f b6 04 02 movzx eax, BYTE PTR [rdx+rax] 011f7 88 01 mov BYTE PTR [rcx], al 011f9 48 8b 85 28 02 00 00 mov rax, QWORD PTR out$12[rbp] 01200 48 ff c0 inc rax 01203 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3992 : *out++ = 255; 0120a 48 8b 85 28 02 00 00 mov rax, QWORD PTR out$12[rbp] 01211 c6 00 ff mov BYTE PTR [rax], 255 ; 000000ffH 01214 48 8b 85 28 02 00 00 mov rax, QWORD PTR out$12[rbp] 0121b 48 ff c0 inc rax 0121e 48 89 85 28 02 00 00 mov QWORD PTR out$12[rbp], rax ; 3993 : } 01225 eb 96 jmp SHORT $LN38@load_jpeg_ $LN39@load_jpeg_: $LN80@load_jpeg_: $LN78@load_jpeg_: $LN76@load_jpeg_: $LN72@load_jpeg_: $LN60@load_jpeg_: ; 3994 : } ; 3995 : } ; 3996 : } 01227 e9 f2 f2 ff ff jmp $LN5@load_jpeg_ $LN6@load_jpeg_: ; 3997 : stbi__cleanup_jpeg(z); 0122c 48 8b 8d 30 05 00 00 mov rcx, QWORD PTR z$[rbp] 01233 e8 00 00 00 00 call stbi__cleanup_jpeg 01238 90 npad 1 ; 3998 : *out_x = z->s->img_x; 01239 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 01240 48 8b 00 mov rax, QWORD PTR [rax] 01243 48 8b 8d 38 05 00 00 mov rcx, QWORD PTR out_x$[rbp] 0124a 8b 00 mov eax, DWORD PTR [rax] 0124c 89 01 mov DWORD PTR [rcx], eax ; 3999 : *out_y = z->s->img_y; 0124e 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 01255 48 8b 00 mov rax, QWORD PTR [rax] 01258 48 8b 8d 40 05 00 00 mov rcx, QWORD PTR out_y$[rbp] 0125f 8b 40 04 mov eax, DWORD PTR [rax+4] 01262 89 01 mov DWORD PTR [rcx], eax ; 4000 : if (comp) 01264 48 83 bd 48 05 00 00 00 cmp QWORD PTR comp$[rbp], 0 0126c 74 35 je SHORT $LN81@load_jpeg_ ; 4001 : *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output 0126e 48 8b 85 30 05 00 00 mov rax, QWORD PTR z$[rbp] 01275 48 8b 00 mov rax, QWORD PTR [rax] 01278 83 78 08 03 cmp DWORD PTR [rax+8], 3 0127c 7c 0c jl SHORT $LN103@load_jpeg_ 0127e c7 85 f4 04 00 00 03 00 00 00 mov DWORD PTR tv694[rbp], 3 01288 eb 0a jmp SHORT $LN104@load_jpeg_ $LN103@load_jpeg_: 0128a c7 85 f4 04 00 00 01 00 00 00 mov DWORD PTR tv694[rbp], 1 $LN104@load_jpeg_: 01294 48 8b 85 48 05 00 00 mov rax, QWORD PTR comp$[rbp] 0129b 8b 8d f4 04 00 00 mov ecx, DWORD PTR tv694[rbp] 012a1 89 08 mov DWORD PTR [rax], ecx $LN81@load_jpeg_: ; 4002 : return output; 012a3 48 8b 85 c8 00 00 00 mov rax, QWORD PTR output$8[rbp] $LN1@load_jpeg_: ; 4003 : } ; 4004 : } 012aa 48 8b f8 mov rdi, rax 012ad 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 012b1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:load_jpeg_image$rtcFrameData 012b8 e8 00 00 00 00 call _RTC_CheckStackVars 012bd 48 8b c7 mov rax, rdi 012c0 48 8b 8d 08 05 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 012c7 48 33 cd xor rcx, rbp 012ca e8 00 00 00 00 call __security_check_cookie 012cf 48 8d a5 18 05 00 00 lea rsp, QWORD PTR [rbp+1304] 012d6 5f pop rdi 012d7 5d pop rbp 012d8 c3 ret 0 load_jpeg_image ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__blinn_8x8 _TEXT SEGMENT t$ = 4 x$ = 256 y$ = 264 stbi__blinn_8x8 PROC ; COMDAT ; 3807 : { 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl 00004 88 4c 24 08 mov BYTE PTR [rsp+8], cl 00008 55 push rbp 00009 57 push rdi 0000a 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00016 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00022 90 npad 1 ; 3808 : unsigned int t = x * y + 128; 00023 0f b6 85 00 01 00 00 movzx eax, BYTE PTR x$[rbp] 0002a 0f b6 8d 08 01 00 00 movzx ecx, BYTE PTR y$[rbp] 00031 0f af c1 imul eax, ecx 00034 05 80 00 00 00 add eax, 128 ; 00000080H 00039 89 45 04 mov DWORD PTR t$[rbp], eax ; 3809 : return (stbi_uc)((t + (t >> 8)) >> 8); 0003c 8b 45 04 mov eax, DWORD PTR t$[rbp] 0003f c1 e8 08 shr eax, 8 00042 8b 4d 04 mov ecx, DWORD PTR t$[rbp] 00045 03 c8 add ecx, eax 00047 8b c1 mov eax, ecx 00049 c1 e8 08 shr eax, 8 ; 3810 : } 0004c 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00053 5f pop rdi 00054 5d pop rbp 00055 c3 ret 0 stbi__blinn_8x8 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__cleanup_jpeg _TEXT SEGMENT j$ = 224 stbi__cleanup_jpeg PROC ; COMDAT ; 3792 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 3793 : stbi__free_jpeg_components(j, j->s->img_n, 0); 00020 48 8b 85 e0 00 00 00 mov rax, QWORD PTR j$[rbp] 00027 48 8b 00 mov rax, QWORD PTR [rax] 0002a 45 33 c0 xor r8d, r8d 0002d 8b 50 08 mov edx, DWORD PTR [rax+8] 00030 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR j$[rbp] 00037 e8 00 00 00 00 call stbi__free_jpeg_components 0003c 90 npad 1 ; 3794 : } 0003d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00044 5f pop rdi 00045 5d pop rbp 00046 c3 ret 0 stbi__cleanup_jpeg ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__setup_jpeg _TEXT SEGMENT j$ = 224 stbi__setup_jpeg PROC ; COMDAT ; 3770 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 3771 : j->idct_block_kernel = stbi__idct_block; 00020 48 8b 85 e0 00 00 00 mov rax, QWORD PTR j$[rbp] 00027 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__idct_block 0002e 48 89 88 70 48 00 00 mov QWORD PTR [rax+18544], rcx ; 3772 : j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR j$[rbp] 0003c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__YCbCr_to_RGB_row 00043 48 89 88 78 48 00 00 mov QWORD PTR [rax+18552], rcx ; 3773 : j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; 0004a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR j$[rbp] 00051 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_hv_2 00058 48 89 88 80 48 00 00 mov QWORD PTR [rax+18560], rcx ; 3774 : ; 3775 : #ifdef STBI_SSE2 ; 3776 : if (stbi__sse2_available()) { 0005f e8 00 00 00 00 call stbi__sse2_available 00064 85 c0 test eax, eax 00066 74 3f je SHORT $LN2@stbi__setu ; 3777 : j->idct_block_kernel = stbi__idct_simd; 00068 48 8b 85 e0 00 00 00 mov rax, QWORD PTR j$[rbp] 0006f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__idct_simd 00076 48 89 88 70 48 00 00 mov QWORD PTR [rax+18544], rcx ; 3778 : j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; 0007d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR j$[rbp] 00084 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__YCbCr_to_RGB_simd 0008b 48 89 88 78 48 00 00 mov QWORD PTR [rax+18552], rcx ; 3779 : j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; 00092 48 8b 85 e0 00 00 00 mov rax, QWORD PTR j$[rbp] 00099 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__resample_row_hv_2_simd 000a0 48 89 88 80 48 00 00 mov QWORD PTR [rax+18560], rcx $LN2@stbi__setu: ; 3780 : } ; 3781 : #endif ; 3782 : ; 3783 : #ifdef STBI_NEON ; 3784 : j->idct_block_kernel = stbi__idct_simd; ; 3785 : j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; ; 3786 : j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; ; 3787 : #endif ; 3788 : } 000a7 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 000ae 5f pop rdi 000af 5d pop rbp 000b0 c3 ret 0 stbi__setup_jpeg ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__YCbCr_to_RGB_simd _TEXT SEGMENT i$ = 4 signflip$1 = 48 cr_const0$2 = 96 cr_const1$3 = 144 cb_const0$4 = 192 cb_const1$5 = 240 y_bias$6 = 288 xw$7 = 336 y_bytes$8 = 384 cr_bytes$9 = 432 cb_bytes$10 = 480 cr_biased$11 = 528 cb_biased$12 = 576 yw$13 = 624 crw$14 = 672 cbw$15 = 720 yws$16 = 768 cr0$17 = 816 cb0$18 = 864 cb1$19 = 912 cr1$20 = 960 rws$21 = 1008 gwt$22 = 1056 bws$23 = 1104 gws$24 = 1152 rw$25 = 1200 bw$26 = 1248 gw$27 = 1296 brb$28 = 1344 gxb$29 = 1392 t0$30 = 1440 t1$31 = 1488 o0$32 = 1536 o1$33 = 1584 y_fixed$34 = 1620 r$35 = 1652 g$36 = 1684 b$37 = 1716 cr$38 = 1748 cb$39 = 1780 out$ = 2608 y$ = 2616 pcb$ = 2624 pcr$ = 2632 count$ = 2640 step$ = 2648 stbi__YCbCr_to_RGB_simd PROC ; COMDAT ; 3619 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 38 0a 00 00 sub rsp, 2616 ; 00000a38H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 3620 : int i = 0; 0002f c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 ; 3621 : ; 3622 : #ifdef STBI_SSE2 ; 3623 : // step == 3 is pretty ugly on the final interleave, and i'm not convinced ; 3624 : // it's useful in practice (you wouldn't use it for textures, for example). ; 3625 : // so just accelerate step == 4 case. ; 3626 : if (step == 4) { 00036 83 bd 58 0a 00 00 04 cmp DWORD PTR step$[rbp], 4 0003d 0f 85 28 03 00 00 jne $LN8@stbi__YCbC ; 3627 : // this is a fairly straightforward implementation and not super-optimized. ; 3628 : __m128i signflip = _mm_set1_epi8(-0x80); 00043 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@80808080808080808080808080808080 0004b 66 0f 7f 45 30 movdqa XMMWORD PTR signflip$1[rbp], xmm0 ; 3629 : __m128i cr_const0 = _mm_set1_epi16((short)(1.40200f * 4096.0f + 0.5f)); 00050 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@166f166f166f166f166f166f166f166f 00058 66 0f 7f 45 60 movdqa XMMWORD PTR cr_const0$2[rbp], xmm0 ; 3630 : __m128i cr_const1 = _mm_set1_epi16(-(short)(0.71414f * 4096.0f + 0.5f)); 0005d 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@f493f493f493f493f493f493f493f493 00065 66 0f 7f 85 90 00 00 00 movdqa XMMWORD PTR cr_const1$3[rbp], xmm0 ; 3631 : __m128i cb_const0 = _mm_set1_epi16(-(short)(0.34414f * 4096.0f + 0.5f)); 0006d 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@fa7efa7efa7efa7efa7efa7efa7efa7e 00075 66 0f 7f 85 c0 00 00 00 movdqa XMMWORD PTR cb_const0$4[rbp], xmm0 ; 3632 : __m128i cb_const1 = _mm_set1_epi16((short)(1.77200f * 4096.0f + 0.5f)); 0007d 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@1c5a1c5a1c5a1c5a1c5a1c5a1c5a1c5a 00085 66 0f 7f 85 f0 00 00 00 movdqa XMMWORD PTR cb_const1$5[rbp], xmm0 ; 3633 : __m128i y_bias = _mm_set1_epi8((char)(unsigned char)128); 0008d 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@80808080808080808080808080808080 00095 66 0f 7f 85 20 01 00 00 movdqa XMMWORD PTR y_bias$6[rbp], xmm0 ; 3634 : __m128i xw = _mm_set1_epi16(255); // alpha channel 0009d 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@00ff00ff00ff00ff00ff00ff00ff00ff 000a5 66 0f 7f 85 50 01 00 00 movdqa XMMWORD PTR xw$7[rbp], xmm0 ; 3635 : ; 3636 : for (; i + 7 < count; i += 8) { 000ad eb 09 jmp SHORT $LN4@stbi__YCbC $LN2@stbi__YCbC: 000af 8b 45 04 mov eax, DWORD PTR i$[rbp] 000b2 83 c0 08 add eax, 8 000b5 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__YCbC: 000b8 8b 45 04 mov eax, DWORD PTR i$[rbp] 000bb 83 c0 07 add eax, 7 000be 3b 85 50 0a 00 00 cmp eax, DWORD PTR count$[rbp] 000c4 0f 8d a1 02 00 00 jge $LN3@stbi__YCbC ; 3637 : // load ; 3638 : __m128i y_bytes = _mm_loadl_epi64((__m128i *)(y + i)); 000ca 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000ce 48 8b 8d 38 0a 00 00 mov rcx, QWORD PTR y$[rbp] 000d5 48 03 c8 add rcx, rax 000d8 48 8b c1 mov rax, rcx 000db f3 0f 7e 00 movq xmm0, QWORD PTR [rax] 000df 66 0f 7f 85 80 01 00 00 movdqa XMMWORD PTR y_bytes$8[rbp], xmm0 ; 3639 : __m128i cr_bytes = _mm_loadl_epi64((__m128i *)(pcr + i)); 000e7 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000eb 48 8b 8d 48 0a 00 00 mov rcx, QWORD PTR pcr$[rbp] 000f2 48 03 c8 add rcx, rax 000f5 48 8b c1 mov rax, rcx 000f8 f3 0f 7e 00 movq xmm0, QWORD PTR [rax] 000fc 66 0f 7f 85 b0 01 00 00 movdqa XMMWORD PTR cr_bytes$9[rbp], xmm0 ; 3640 : __m128i cb_bytes = _mm_loadl_epi64((__m128i *)(pcb + i)); 00104 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00108 48 8b 8d 40 0a 00 00 mov rcx, QWORD PTR pcb$[rbp] 0010f 48 03 c8 add rcx, rax 00112 48 8b c1 mov rax, rcx 00115 f3 0f 7e 00 movq xmm0, QWORD PTR [rax] 00119 66 0f 7f 85 e0 01 00 00 movdqa XMMWORD PTR cb_bytes$10[rbp], xmm0 ; 3641 : __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 00121 66 0f 6f 85 b0 01 00 00 movdqa xmm0, XMMWORD PTR cr_bytes$9[rbp] 00129 0f 57 45 30 xorps xmm0, XMMWORD PTR signflip$1[rbp] 0012d 66 0f 7f 85 10 02 00 00 movdqa XMMWORD PTR cr_biased$11[rbp], xmm0 ; 3642 : __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 00135 66 0f 6f 85 e0 01 00 00 movdqa xmm0, XMMWORD PTR cb_bytes$10[rbp] 0013d 0f 57 45 30 xorps xmm0, XMMWORD PTR signflip$1[rbp] 00141 66 0f 7f 85 40 02 00 00 movdqa XMMWORD PTR cb_biased$12[rbp], xmm0 ; 3643 : ; 3644 : // unpack to short (and left-shift cr, cb by 8) ; 3645 : __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); 00149 66 0f 6f 85 20 01 00 00 movdqa xmm0, XMMWORD PTR y_bias$6[rbp] 00151 66 0f 60 85 80 01 00 00 punpcklbw xmm0, XMMWORD PTR y_bytes$8[rbp] 00159 66 0f 7f 85 70 02 00 00 movdqa XMMWORD PTR yw$13[rbp], xmm0 ; 3646 : __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); 00161 66 0f ef c0 pxor xmm0, xmm0 00165 66 0f 60 85 10 02 00 00 punpcklbw xmm0, XMMWORD PTR cr_biased$11[rbp] 0016d 66 0f 7f 85 a0 02 00 00 movdqa XMMWORD PTR crw$14[rbp], xmm0 ; 3647 : __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); 00175 66 0f ef c0 pxor xmm0, xmm0 00179 66 0f 60 85 40 02 00 00 punpcklbw xmm0, XMMWORD PTR cb_biased$12[rbp] 00181 66 0f 7f 85 d0 02 00 00 movdqa XMMWORD PTR cbw$15[rbp], xmm0 ; 3648 : ; 3649 : // color transform ; 3650 : __m128i yws = _mm_srli_epi16(yw, 4); 00189 66 0f 6f 85 70 02 00 00 movdqa xmm0, XMMWORD PTR yw$13[rbp] 00191 66 0f 71 d0 04 psrlw xmm0, 4 00196 66 0f 7f 85 00 03 00 00 movdqa XMMWORD PTR yws$16[rbp], xmm0 ; 3651 : __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); 0019e 66 0f 6f 45 60 movdqa xmm0, XMMWORD PTR cr_const0$2[rbp] 001a3 66 0f e5 85 a0 02 00 00 pmulhw xmm0, XMMWORD PTR crw$14[rbp] 001ab 66 0f 7f 85 30 03 00 00 movdqa XMMWORD PTR cr0$17[rbp], xmm0 ; 3652 : __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); 001b3 66 0f 6f 85 c0 00 00 00 movdqa xmm0, XMMWORD PTR cb_const0$4[rbp] 001bb 66 0f e5 85 d0 02 00 00 pmulhw xmm0, XMMWORD PTR cbw$15[rbp] 001c3 66 0f 7f 85 60 03 00 00 movdqa XMMWORD PTR cb0$18[rbp], xmm0 ; 3653 : __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); 001cb 66 0f 6f 85 d0 02 00 00 movdqa xmm0, XMMWORD PTR cbw$15[rbp] 001d3 66 0f e5 85 f0 00 00 00 pmulhw xmm0, XMMWORD PTR cb_const1$5[rbp] 001db 66 0f 7f 85 90 03 00 00 movdqa XMMWORD PTR cb1$19[rbp], xmm0 ; 3654 : __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); 001e3 66 0f 6f 85 a0 02 00 00 movdqa xmm0, XMMWORD PTR crw$14[rbp] 001eb 66 0f e5 85 90 00 00 00 pmulhw xmm0, XMMWORD PTR cr_const1$3[rbp] 001f3 66 0f 7f 85 c0 03 00 00 movdqa XMMWORD PTR cr1$20[rbp], xmm0 ; 3655 : __m128i rws = _mm_add_epi16(cr0, yws); 001fb 66 0f 6f 85 30 03 00 00 movdqa xmm0, XMMWORD PTR cr0$17[rbp] 00203 66 0f fd 85 00 03 00 00 paddw xmm0, XMMWORD PTR yws$16[rbp] 0020b 66 0f 7f 85 f0 03 00 00 movdqa XMMWORD PTR rws$21[rbp], xmm0 ; 3656 : __m128i gwt = _mm_add_epi16(cb0, yws); 00213 66 0f 6f 85 60 03 00 00 movdqa xmm0, XMMWORD PTR cb0$18[rbp] 0021b 66 0f fd 85 00 03 00 00 paddw xmm0, XMMWORD PTR yws$16[rbp] 00223 66 0f 7f 85 20 04 00 00 movdqa XMMWORD PTR gwt$22[rbp], xmm0 ; 3657 : __m128i bws = _mm_add_epi16(yws, cb1); 0022b 66 0f 6f 85 00 03 00 00 movdqa xmm0, XMMWORD PTR yws$16[rbp] 00233 66 0f fd 85 90 03 00 00 paddw xmm0, XMMWORD PTR cb1$19[rbp] 0023b 66 0f 7f 85 50 04 00 00 movdqa XMMWORD PTR bws$23[rbp], xmm0 ; 3658 : __m128i gws = _mm_add_epi16(gwt, cr1); 00243 66 0f 6f 85 20 04 00 00 movdqa xmm0, XMMWORD PTR gwt$22[rbp] 0024b 66 0f fd 85 c0 03 00 00 paddw xmm0, XMMWORD PTR cr1$20[rbp] 00253 66 0f 7f 85 80 04 00 00 movdqa XMMWORD PTR gws$24[rbp], xmm0 ; 3659 : ; 3660 : // descale ; 3661 : __m128i rw = _mm_srai_epi16(rws, 4); 0025b 66 0f 6f 85 f0 03 00 00 movdqa xmm0, XMMWORD PTR rws$21[rbp] 00263 66 0f 71 e0 04 psraw xmm0, 4 00268 66 0f 7f 85 b0 04 00 00 movdqa XMMWORD PTR rw$25[rbp], xmm0 ; 3662 : __m128i bw = _mm_srai_epi16(bws, 4); 00270 66 0f 6f 85 50 04 00 00 movdqa xmm0, XMMWORD PTR bws$23[rbp] 00278 66 0f 71 e0 04 psraw xmm0, 4 0027d 66 0f 7f 85 e0 04 00 00 movdqa XMMWORD PTR bw$26[rbp], xmm0 ; 3663 : __m128i gw = _mm_srai_epi16(gws, 4); 00285 66 0f 6f 85 80 04 00 00 movdqa xmm0, XMMWORD PTR gws$24[rbp] 0028d 66 0f 71 e0 04 psraw xmm0, 4 00292 66 0f 7f 85 10 05 00 00 movdqa XMMWORD PTR gw$27[rbp], xmm0 ; 3664 : ; 3665 : // back to byte, set up for transpose ; 3666 : __m128i brb = _mm_packus_epi16(rw, bw); 0029a 66 0f 6f 85 b0 04 00 00 movdqa xmm0, XMMWORD PTR rw$25[rbp] 002a2 66 0f 67 85 e0 04 00 00 packuswb xmm0, XMMWORD PTR bw$26[rbp] 002aa 66 0f 7f 85 40 05 00 00 movdqa XMMWORD PTR brb$28[rbp], xmm0 ; 3667 : __m128i gxb = _mm_packus_epi16(gw, xw); 002b2 66 0f 6f 85 10 05 00 00 movdqa xmm0, XMMWORD PTR gw$27[rbp] 002ba 66 0f 67 85 50 01 00 00 packuswb xmm0, XMMWORD PTR xw$7[rbp] 002c2 66 0f 7f 85 70 05 00 00 movdqa XMMWORD PTR gxb$29[rbp], xmm0 ; 3668 : ; 3669 : // transpose to interleave channels ; 3670 : __m128i t0 = _mm_unpacklo_epi8(brb, gxb); 002ca 66 0f 6f 85 40 05 00 00 movdqa xmm0, XMMWORD PTR brb$28[rbp] 002d2 66 0f 60 85 70 05 00 00 punpcklbw xmm0, XMMWORD PTR gxb$29[rbp] 002da 66 0f 7f 85 a0 05 00 00 movdqa XMMWORD PTR t0$30[rbp], xmm0 ; 3671 : __m128i t1 = _mm_unpackhi_epi8(brb, gxb); 002e2 66 0f 6f 85 40 05 00 00 movdqa xmm0, XMMWORD PTR brb$28[rbp] 002ea 66 0f 68 85 70 05 00 00 punpckhbw xmm0, XMMWORD PTR gxb$29[rbp] 002f2 66 0f 7f 85 d0 05 00 00 movdqa XMMWORD PTR t1$31[rbp], xmm0 ; 3672 : __m128i o0 = _mm_unpacklo_epi16(t0, t1); 002fa 66 0f 6f 85 a0 05 00 00 movdqa xmm0, XMMWORD PTR t0$30[rbp] 00302 66 0f 61 85 d0 05 00 00 punpcklwd xmm0, XMMWORD PTR t1$31[rbp] 0030a 66 0f 7f 85 00 06 00 00 movdqa XMMWORD PTR o0$32[rbp], xmm0 ; 3673 : __m128i o1 = _mm_unpackhi_epi16(t0, t1); 00312 66 0f 6f 85 a0 05 00 00 movdqa xmm0, XMMWORD PTR t0$30[rbp] 0031a 66 0f 69 85 d0 05 00 00 punpckhwd xmm0, XMMWORD PTR t1$31[rbp] 00322 66 0f 7f 85 30 06 00 00 movdqa XMMWORD PTR o1$33[rbp], xmm0 ; 3674 : ; 3675 : // store ; 3676 : _mm_storeu_si128((__m128i *)(out + 0), o0); 0032a 48 8b 85 30 0a 00 00 mov rax, QWORD PTR out$[rbp] 00331 66 0f 6f 85 00 06 00 00 movdqa xmm0, XMMWORD PTR o0$32[rbp] 00339 f3 0f 7f 00 movdqu XMMWORD PTR [rax], xmm0 ; 3677 : _mm_storeu_si128((__m128i *)(out + 16), o1); 0033d 48 8b 85 30 0a 00 00 mov rax, QWORD PTR out$[rbp] 00344 48 83 c0 10 add rax, 16 00348 66 0f 6f 85 30 06 00 00 movdqa xmm0, XMMWORD PTR o1$33[rbp] 00350 f3 0f 7f 00 movdqu XMMWORD PTR [rax], xmm0 ; 3678 : out += 32; 00354 48 8b 85 30 0a 00 00 mov rax, QWORD PTR out$[rbp] 0035b 48 83 c0 20 add rax, 32 ; 00000020H 0035f 48 89 85 30 0a 00 00 mov QWORD PTR out$[rbp], rax ; 3679 : } 00366 e9 44 fd ff ff jmp $LN2@stbi__YCbC $LN3@stbi__YCbC: $LN8@stbi__YCbC: ; 3680 : } ; 3681 : #endif ; 3682 : ; 3683 : #ifdef STBI_NEON ; 3684 : // in this version, step=3 support would be easy to add. but is there demand? ; 3685 : if (step == 4) { ; 3686 : // this is a fairly straightforward implementation and not super-optimized. ; 3687 : uint8x8_t signflip = vdup_n_u8(0x80); ; 3688 : int16x8_t cr_const0 = vdupq_n_s16((short)(1.40200f * 4096.0f + 0.5f)); ; 3689 : int16x8_t cr_const1 = vdupq_n_s16(-(short)(0.71414f * 4096.0f + 0.5f)); ; 3690 : int16x8_t cb_const0 = vdupq_n_s16(-(short)(0.34414f * 4096.0f + 0.5f)); ; 3691 : int16x8_t cb_const1 = vdupq_n_s16((short)(1.77200f * 4096.0f + 0.5f)); ; 3692 : ; 3693 : for (; i + 7 < count; i += 8) { ; 3694 : // load ; 3695 : uint8x8_t y_bytes = vld1_u8(y + i); ; 3696 : uint8x8_t cr_bytes = vld1_u8(pcr + i); ; 3697 : uint8x8_t cb_bytes = vld1_u8(pcb + i); ; 3698 : int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); ; 3699 : int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); ; 3700 : ; 3701 : // expand to s16 ; 3702 : int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); ; 3703 : int16x8_t crw = vshll_n_s8(cr_biased, 7); ; 3704 : int16x8_t cbw = vshll_n_s8(cb_biased, 7); ; 3705 : ; 3706 : // color transform ; 3707 : int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); ; 3708 : int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); ; 3709 : int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); ; 3710 : int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); ; 3711 : int16x8_t rws = vaddq_s16(yws, cr0); ; 3712 : int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); ; 3713 : int16x8_t bws = vaddq_s16(yws, cb1); ; 3714 : ; 3715 : // undo scaling, round, convert to byte ; 3716 : uint8x8x4_t o; ; 3717 : o.val[0] = vqrshrun_n_s16(rws, 4); ; 3718 : o.val[1] = vqrshrun_n_s16(gws, 4); ; 3719 : o.val[2] = vqrshrun_n_s16(bws, 4); ; 3720 : o.val[3] = vdup_n_u8(255); ; 3721 : ; 3722 : // store, interleaving r/g/b/a ; 3723 : vst4_u8(out, o); ; 3724 : out += 8 * 4; ; 3725 : } ; 3726 : } ; 3727 : #endif ; 3728 : ; 3729 : for (; i < count; ++i) { 0036b eb 08 jmp SHORT $LN7@stbi__YCbC $LN5@stbi__YCbC: 0036d 8b 45 04 mov eax, DWORD PTR i$[rbp] 00370 ff c0 inc eax 00372 89 45 04 mov DWORD PTR i$[rbp], eax $LN7@stbi__YCbC: 00375 8b 85 50 0a 00 00 mov eax, DWORD PTR count$[rbp] 0037b 39 45 04 cmp DWORD PTR i$[rbp], eax 0037e 0f 8d e1 01 00 00 jge $LN6@stbi__YCbC ; 3730 : int y_fixed = (y[i] << 20) + (1 << 19); // rounding 00384 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00388 48 8b 8d 38 0a 00 00 mov rcx, QWORD PTR y$[rbp] 0038f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00393 c1 e0 14 shl eax, 20 00396 05 00 00 08 00 add eax, 524288 ; 00080000H 0039b 89 85 54 06 00 00 mov DWORD PTR y_fixed$34[rbp], eax ; 3731 : int r, g, b; ; 3732 : int cr = pcr[i] - 128; 003a1 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 003a5 48 8b 8d 48 0a 00 00 mov rcx, QWORD PTR pcr$[rbp] 003ac 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 003b0 2d 80 00 00 00 sub eax, 128 ; 00000080H 003b5 89 85 d4 06 00 00 mov DWORD PTR cr$38[rbp], eax ; 3733 : int cb = pcb[i] - 128; 003bb 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 003bf 48 8b 8d 40 0a 00 00 mov rcx, QWORD PTR pcb$[rbp] 003c6 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 003ca 2d 80 00 00 00 sub eax, 128 ; 00000080H 003cf 89 85 f4 06 00 00 mov DWORD PTR cb$39[rbp], eax ; 3734 : r = y_fixed + cr * stbi__float2fixed(1.40200f); 003d5 69 85 d4 06 00 00 00 6f 16 00 imul eax, DWORD PTR cr$38[rbp], 1470208 ; 00166f00H 003df 8b 8d 54 06 00 00 mov ecx, DWORD PTR y_fixed$34[rbp] 003e5 03 c8 add ecx, eax 003e7 8b c1 mov eax, ecx 003e9 89 85 74 06 00 00 mov DWORD PTR r$35[rbp], eax ; 3735 : g = y_fixed + cr * -stbi__float2fixed(0.71414f) + 003ef 69 85 d4 06 00 00 00 93 f4 ff imul eax, DWORD PTR cr$38[rbp], -748800 ; fffffffffff49300H 003f9 8b 8d 54 06 00 00 mov ecx, DWORD PTR y_fixed$34[rbp] 003ff 03 c8 add ecx, eax 00401 8b c1 mov eax, ecx 00403 69 8d f4 06 00 00 00 7e fa ff imul ecx, DWORD PTR cb$39[rbp], -360960 ; fffffffffffa7e00H 0040d 81 e1 00 00 ff ff and ecx, -65536 ; ffff0000H 00413 03 c1 add eax, ecx 00415 89 85 94 06 00 00 mov DWORD PTR g$36[rbp], eax ; 3736 : ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000); ; 3737 : b = y_fixed + cb * stbi__float2fixed(1.77200f); 0041b 69 85 f4 06 00 00 00 5a 1c 00 imul eax, DWORD PTR cb$39[rbp], 1858048 ; 001c5a00H 00425 8b 8d 54 06 00 00 mov ecx, DWORD PTR y_fixed$34[rbp] 0042b 03 c8 add ecx, eax 0042d 8b c1 mov eax, ecx 0042f 89 85 b4 06 00 00 mov DWORD PTR b$37[rbp], eax ; 3738 : r >>= 20; 00435 8b 85 74 06 00 00 mov eax, DWORD PTR r$35[rbp] 0043b c1 f8 14 sar eax, 20 0043e 89 85 74 06 00 00 mov DWORD PTR r$35[rbp], eax ; 3739 : g >>= 20; 00444 8b 85 94 06 00 00 mov eax, DWORD PTR g$36[rbp] 0044a c1 f8 14 sar eax, 20 0044d 89 85 94 06 00 00 mov DWORD PTR g$36[rbp], eax ; 3740 : b >>= 20; 00453 8b 85 b4 06 00 00 mov eax, DWORD PTR b$37[rbp] 00459 c1 f8 14 sar eax, 20 0045c 89 85 b4 06 00 00 mov DWORD PTR b$37[rbp], eax ; 3741 : if ((unsigned)r > 255) { 00462 81 bd 74 06 00 00 ff 00 00 00 cmp DWORD PTR r$35[rbp], 255 ; 000000ffH 0046c 76 1f jbe SHORT $LN9@stbi__YCbC ; 3742 : if (r < 0) 0046e 83 bd 74 06 00 00 00 cmp DWORD PTR r$35[rbp], 0 00475 7d 0c jge SHORT $LN10@stbi__YCbC ; 3743 : r = 0; 00477 c7 85 74 06 00 00 00 00 00 00 mov DWORD PTR r$35[rbp], 0 00481 eb 0a jmp SHORT $LN11@stbi__YCbC $LN10@stbi__YCbC: ; 3744 : else ; 3745 : r = 255; 00483 c7 85 74 06 00 00 ff 00 00 00 mov DWORD PTR r$35[rbp], 255 ; 000000ffH $LN11@stbi__YCbC: $LN9@stbi__YCbC: ; 3746 : } ; 3747 : if ((unsigned)g > 255) { 0048d 81 bd 94 06 00 00 ff 00 00 00 cmp DWORD PTR g$36[rbp], 255 ; 000000ffH 00497 76 1f jbe SHORT $LN12@stbi__YCbC ; 3748 : if (g < 0) 00499 83 bd 94 06 00 00 00 cmp DWORD PTR g$36[rbp], 0 004a0 7d 0c jge SHORT $LN13@stbi__YCbC ; 3749 : g = 0; 004a2 c7 85 94 06 00 00 00 00 00 00 mov DWORD PTR g$36[rbp], 0 004ac eb 0a jmp SHORT $LN14@stbi__YCbC $LN13@stbi__YCbC: ; 3750 : else ; 3751 : g = 255; 004ae c7 85 94 06 00 00 ff 00 00 00 mov DWORD PTR g$36[rbp], 255 ; 000000ffH $LN14@stbi__YCbC: $LN12@stbi__YCbC: ; 3752 : } ; 3753 : if ((unsigned)b > 255) { 004b8 81 bd b4 06 00 00 ff 00 00 00 cmp DWORD PTR b$37[rbp], 255 ; 000000ffH 004c2 76 1f jbe SHORT $LN15@stbi__YCbC ; 3754 : if (b < 0) 004c4 83 bd b4 06 00 00 00 cmp DWORD PTR b$37[rbp], 0 004cb 7d 0c jge SHORT $LN16@stbi__YCbC ; 3755 : b = 0; 004cd c7 85 b4 06 00 00 00 00 00 00 mov DWORD PTR b$37[rbp], 0 004d7 eb 0a jmp SHORT $LN17@stbi__YCbC $LN16@stbi__YCbC: ; 3756 : else ; 3757 : b = 255; 004d9 c7 85 b4 06 00 00 ff 00 00 00 mov DWORD PTR b$37[rbp], 255 ; 000000ffH $LN17@stbi__YCbC: $LN15@stbi__YCbC: ; 3758 : } ; 3759 : out[0] = (stbi_uc)r; 004e3 b8 01 00 00 00 mov eax, 1 004e8 48 6b c0 00 imul rax, rax, 0 004ec 48 8b 8d 30 0a 00 00 mov rcx, QWORD PTR out$[rbp] 004f3 0f b6 95 74 06 00 00 movzx edx, BYTE PTR r$35[rbp] 004fa 88 14 01 mov BYTE PTR [rcx+rax], dl ; 3760 : out[1] = (stbi_uc)g; 004fd b8 01 00 00 00 mov eax, 1 00502 48 6b c0 01 imul rax, rax, 1 00506 48 8b 8d 30 0a 00 00 mov rcx, QWORD PTR out$[rbp] 0050d 0f b6 95 94 06 00 00 movzx edx, BYTE PTR g$36[rbp] 00514 88 14 01 mov BYTE PTR [rcx+rax], dl ; 3761 : out[2] = (stbi_uc)b; 00517 b8 01 00 00 00 mov eax, 1 0051c 48 6b c0 02 imul rax, rax, 2 00520 48 8b 8d 30 0a 00 00 mov rcx, QWORD PTR out$[rbp] 00527 0f b6 95 b4 06 00 00 movzx edx, BYTE PTR b$37[rbp] 0052e 88 14 01 mov BYTE PTR [rcx+rax], dl ; 3762 : out[3] = 255; 00531 b8 01 00 00 00 mov eax, 1 00536 48 6b c0 03 imul rax, rax, 3 0053a 48 8b 8d 30 0a 00 00 mov rcx, QWORD PTR out$[rbp] 00541 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 3763 : out += step; 00545 48 63 85 58 0a 00 00 movsxd rax, DWORD PTR step$[rbp] 0054c 48 8b 8d 30 0a 00 00 mov rcx, QWORD PTR out$[rbp] 00553 48 03 c8 add rcx, rax 00556 48 8b c1 mov rax, rcx 00559 48 89 85 30 0a 00 00 mov QWORD PTR out$[rbp], rax ; 3764 : } 00560 e9 08 fe ff ff jmp $LN5@stbi__YCbC $LN6@stbi__YCbC: ; 3765 : } 00565 48 8d a5 18 0a 00 00 lea rsp, QWORD PTR [rbp+2584] 0056c 5f pop rdi 0056d 5d pop rbp 0056e c3 ret 0 stbi__YCbCr_to_RGB_simd ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__YCbCr_to_RGB_row _TEXT SEGMENT i$ = 4 y_fixed$1 = 36 r$2 = 68 g$3 = 100 b$4 = 132 cr$5 = 164 cb$6 = 196 out$ = 448 y$ = 456 pcb$ = 464 pcr$ = 472 count$ = 480 step$ = 488 stbi__YCbCr_to_RGB_row PROC ; COMDAT ; 3576 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec c8 01 00 00 sub rsp, 456 ; 000001c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 3577 : int i; ; 3578 : for (i = 0; i < count; ++i) { 0002f c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00036 eb 08 jmp SHORT $LN4@stbi__YCbC $LN2@stbi__YCbC: 00038 8b 45 04 mov eax, DWORD PTR i$[rbp] 0003b ff c0 inc eax 0003d 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__YCbC: 00040 8b 85 e0 01 00 00 mov eax, DWORD PTR count$[rbp] 00046 39 45 04 cmp DWORD PTR i$[rbp], eax 00049 0f 8d a5 01 00 00 jge $LN3@stbi__YCbC ; 3579 : int y_fixed = (y[i] << 20) + (1 << 19); // rounding 0004f 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00053 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR y$[rbp] 0005a 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0005e c1 e0 14 shl eax, 20 00061 05 00 00 08 00 add eax, 524288 ; 00080000H 00066 89 45 24 mov DWORD PTR y_fixed$1[rbp], eax ; 3580 : int r, g, b; ; 3581 : int cr = pcr[i] - 128; 00069 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0006d 48 8b 8d d8 01 00 00 mov rcx, QWORD PTR pcr$[rbp] 00074 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00078 2d 80 00 00 00 sub eax, 128 ; 00000080H 0007d 89 85 a4 00 00 00 mov DWORD PTR cr$5[rbp], eax ; 3582 : int cb = pcb[i] - 128; 00083 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00087 48 8b 8d d0 01 00 00 mov rcx, QWORD PTR pcb$[rbp] 0008e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00092 2d 80 00 00 00 sub eax, 128 ; 00000080H 00097 89 85 c4 00 00 00 mov DWORD PTR cb$6[rbp], eax ; 3583 : r = y_fixed + cr * stbi__float2fixed(1.40200f); 0009d 69 85 a4 00 00 00 00 6f 16 00 imul eax, DWORD PTR cr$5[rbp], 1470208 ; 00166f00H 000a7 8b 4d 24 mov ecx, DWORD PTR y_fixed$1[rbp] 000aa 03 c8 add ecx, eax 000ac 8b c1 mov eax, ecx 000ae 89 45 44 mov DWORD PTR r$2[rbp], eax ; 3584 : g = y_fixed + (cr * -stbi__float2fixed(0.71414f)) + 000b1 69 85 a4 00 00 00 00 93 f4 ff imul eax, DWORD PTR cr$5[rbp], -748800 ; fffffffffff49300H 000bb 8b 4d 24 mov ecx, DWORD PTR y_fixed$1[rbp] 000be 03 c8 add ecx, eax 000c0 8b c1 mov eax, ecx 000c2 69 8d c4 00 00 00 00 7e fa ff imul ecx, DWORD PTR cb$6[rbp], -360960 ; fffffffffffa7e00H 000cc 81 e1 00 00 ff ff and ecx, -65536 ; ffff0000H 000d2 03 c1 add eax, ecx 000d4 89 45 64 mov DWORD PTR g$3[rbp], eax ; 3585 : ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000); ; 3586 : b = y_fixed + cb * stbi__float2fixed(1.77200f); 000d7 69 85 c4 00 00 00 00 5a 1c 00 imul eax, DWORD PTR cb$6[rbp], 1858048 ; 001c5a00H 000e1 8b 4d 24 mov ecx, DWORD PTR y_fixed$1[rbp] 000e4 03 c8 add ecx, eax 000e6 8b c1 mov eax, ecx 000e8 89 85 84 00 00 00 mov DWORD PTR b$4[rbp], eax ; 3587 : r >>= 20; 000ee 8b 45 44 mov eax, DWORD PTR r$2[rbp] 000f1 c1 f8 14 sar eax, 20 000f4 89 45 44 mov DWORD PTR r$2[rbp], eax ; 3588 : g >>= 20; 000f7 8b 45 64 mov eax, DWORD PTR g$3[rbp] 000fa c1 f8 14 sar eax, 20 000fd 89 45 64 mov DWORD PTR g$3[rbp], eax ; 3589 : b >>= 20; 00100 8b 85 84 00 00 00 mov eax, DWORD PTR b$4[rbp] 00106 c1 f8 14 sar eax, 20 00109 89 85 84 00 00 00 mov DWORD PTR b$4[rbp], eax ; 3590 : if ((unsigned)r > 255) { 0010f 81 7d 44 ff 00 00 00 cmp DWORD PTR r$2[rbp], 255 ; 000000ffH 00116 76 16 jbe SHORT $LN5@stbi__YCbC ; 3591 : if (r < 0) 00118 83 7d 44 00 cmp DWORD PTR r$2[rbp], 0 0011c 7d 09 jge SHORT $LN6@stbi__YCbC ; 3592 : r = 0; 0011e c7 45 44 00 00 00 00 mov DWORD PTR r$2[rbp], 0 00125 eb 07 jmp SHORT $LN7@stbi__YCbC $LN6@stbi__YCbC: ; 3593 : else ; 3594 : r = 255; 00127 c7 45 44 ff 00 00 00 mov DWORD PTR r$2[rbp], 255 ; 000000ffH $LN7@stbi__YCbC: $LN5@stbi__YCbC: ; 3595 : } ; 3596 : if ((unsigned)g > 255) { 0012e 81 7d 64 ff 00 00 00 cmp DWORD PTR g$3[rbp], 255 ; 000000ffH 00135 76 16 jbe SHORT $LN8@stbi__YCbC ; 3597 : if (g < 0) 00137 83 7d 64 00 cmp DWORD PTR g$3[rbp], 0 0013b 7d 09 jge SHORT $LN9@stbi__YCbC ; 3598 : g = 0; 0013d c7 45 64 00 00 00 00 mov DWORD PTR g$3[rbp], 0 00144 eb 07 jmp SHORT $LN10@stbi__YCbC $LN9@stbi__YCbC: ; 3599 : else ; 3600 : g = 255; 00146 c7 45 64 ff 00 00 00 mov DWORD PTR g$3[rbp], 255 ; 000000ffH $LN10@stbi__YCbC: $LN8@stbi__YCbC: ; 3601 : } ; 3602 : if ((unsigned)b > 255) { 0014d 81 bd 84 00 00 00 ff 00 00 00 cmp DWORD PTR b$4[rbp], 255 ; 000000ffH 00157 76 1f jbe SHORT $LN11@stbi__YCbC ; 3603 : if (b < 0) 00159 83 bd 84 00 00 00 00 cmp DWORD PTR b$4[rbp], 0 00160 7d 0c jge SHORT $LN12@stbi__YCbC ; 3604 : b = 0; 00162 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR b$4[rbp], 0 0016c eb 0a jmp SHORT $LN13@stbi__YCbC $LN12@stbi__YCbC: ; 3605 : else ; 3606 : b = 255; 0016e c7 85 84 00 00 00 ff 00 00 00 mov DWORD PTR b$4[rbp], 255 ; 000000ffH $LN13@stbi__YCbC: $LN11@stbi__YCbC: ; 3607 : } ; 3608 : out[0] = (stbi_uc)r; 00178 b8 01 00 00 00 mov eax, 1 0017d 48 6b c0 00 imul rax, rax, 0 00181 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR out$[rbp] 00188 0f b6 55 44 movzx edx, BYTE PTR r$2[rbp] 0018c 88 14 01 mov BYTE PTR [rcx+rax], dl ; 3609 : out[1] = (stbi_uc)g; 0018f b8 01 00 00 00 mov eax, 1 00194 48 6b c0 01 imul rax, rax, 1 00198 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR out$[rbp] 0019f 0f b6 55 64 movzx edx, BYTE PTR g$3[rbp] 001a3 88 14 01 mov BYTE PTR [rcx+rax], dl ; 3610 : out[2] = (stbi_uc)b; 001a6 b8 01 00 00 00 mov eax, 1 001ab 48 6b c0 02 imul rax, rax, 2 001af 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR out$[rbp] 001b6 0f b6 95 84 00 00 00 movzx edx, BYTE PTR b$4[rbp] 001bd 88 14 01 mov BYTE PTR [rcx+rax], dl ; 3611 : out[3] = 255; 001c0 b8 01 00 00 00 mov eax, 1 001c5 48 6b c0 03 imul rax, rax, 3 001c9 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR out$[rbp] 001d0 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 3612 : out += step; 001d4 48 63 85 e8 01 00 00 movsxd rax, DWORD PTR step$[rbp] 001db 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR out$[rbp] 001e2 48 03 c8 add rcx, rax 001e5 48 8b c1 mov rax, rcx 001e8 48 89 85 c0 01 00 00 mov QWORD PTR out$[rbp], rax ; 3613 : } 001ef e9 44 fe ff ff jmp $LN2@stbi__YCbC $LN3@stbi__YCbC: ; 3614 : } 001f4 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] 001fb 5f pop rdi 001fc 5d pop rbp 001fd c3 ret 0 stbi__YCbCr_to_RGB_row ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__resample_row_generic _TEXT SEGMENT i$ = 4 j$ = 36 out$ = 288 in_near$ = 296 in_far$ = 304 w$ = 312 hs$ = 320 stbi__resample_row_generic PROC ; COMDAT ; 3561 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 3562 : // resample with nearest-neighbor ; 3563 : int i, j; ; 3564 : STBI_NOTUSED(in_far); ; 3565 : for (i = 0; i < w; ++i) 0002f c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00036 eb 08 jmp SHORT $LN4@stbi__resa $LN2@stbi__resa: 00038 8b 45 04 mov eax, DWORD PTR i$[rbp] 0003b ff c0 inc eax 0003d 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__resa: 00040 8b 85 38 01 00 00 mov eax, DWORD PTR w$[rbp] 00046 39 45 04 cmp DWORD PTR i$[rbp], eax 00049 7d 4a jge SHORT $LN3@stbi__resa ; 3566 : for (j = 0; j < hs; ++j) 0004b c7 45 24 00 00 00 00 mov DWORD PTR j$[rbp], 0 00052 eb 08 jmp SHORT $LN7@stbi__resa $LN5@stbi__resa: 00054 8b 45 24 mov eax, DWORD PTR j$[rbp] 00057 ff c0 inc eax 00059 89 45 24 mov DWORD PTR j$[rbp], eax $LN7@stbi__resa: 0005c 8b 85 40 01 00 00 mov eax, DWORD PTR hs$[rbp] 00062 39 45 24 cmp DWORD PTR j$[rbp], eax 00065 7d 2c jge SHORT $LN6@stbi__resa ; 3567 : out[i * hs + j] = in_near[i]; 00067 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0006b 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 0006e 0f af 8d 40 01 00 00 imul ecx, DWORD PTR hs$[rbp] 00075 03 4d 24 add ecx, DWORD PTR j$[rbp] 00078 48 63 c9 movsxd rcx, ecx 0007b 48 8b 95 20 01 00 00 mov rdx, QWORD PTR out$[rbp] 00082 4c 8b 85 28 01 00 00 mov r8, QWORD PTR in_near$[rbp] 00089 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0008e 88 04 0a mov BYTE PTR [rdx+rcx], al 00091 eb c1 jmp SHORT $LN5@stbi__resa $LN6@stbi__resa: 00093 eb a3 jmp SHORT $LN2@stbi__resa $LN3@stbi__resa: ; 3568 : return out; 00095 48 8b 85 20 01 00 00 mov rax, QWORD PTR out$[rbp] ; 3569 : } 0009c 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000a3 5f pop rdi 000a4 5d pop rbp 000a5 c3 ret 0 stbi__resample_row_generic ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__resample_row_hv_2_simd _TEXT SEGMENT i$ = 4 t0$ = 36 t1$ = 68 zero$1 = 112 farb$2 = 160 nearb$3 = 208 farw$4 = 256 nearw$5 = 304 diff$6 = 352 nears$7 = 400 curr$8 = 448 prv0$9 = 496 nxt0$10 = 544 prev$11 = 592 next$12 = 640 bias$13 = 688 curs$14 = 736 prvd$15 = 784 nxtd$16 = 832 curb$17 = 880 even$18 = 928 odd$19 = 976 int0$20 = 1024 int1$21 = 1072 de0$22 = 1120 de1$23 = 1168 outv$24 = 1216 tv78 = 1812 out$ = 1856 in_near$ = 1864 in_far$ = 1872 w$ = 1880 hs$ = 1888 stbi__resample_row_hv_2_simd PROC ; COMDAT ; 3444 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 48 07 00 00 sub rsp, 1864 ; 00000748H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 3445 : // need to generate 2x2 samples for every one in input ; 3446 : int i = 0, t0, t1; 0002f c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 ; 3447 : ; 3448 : if (w == 1) { 00036 83 bd 58 07 00 00 01 cmp DWORD PTR w$[rbp], 1 0003d 75 78 jne SHORT $LN8@stbi__resa ; 3449 : out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2); 0003f b8 01 00 00 00 mov eax, 1 00044 48 6b c0 00 imul rax, rax, 0 00048 48 8b 8d 48 07 00 00 mov rcx, QWORD PTR in_near$[rbp] 0004f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00053 6b c0 03 imul eax, eax, 3 00056 b9 01 00 00 00 mov ecx, 1 0005b 48 6b c9 00 imul rcx, rcx, 0 0005f 48 8b 95 50 07 00 00 mov rdx, QWORD PTR in_far$[rbp] 00066 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0006a 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] 0006e c1 f8 02 sar eax, 2 00071 89 85 14 07 00 00 mov DWORD PTR tv78[rbp], eax 00077 b8 01 00 00 00 mov eax, 1 0007c 48 6b c0 01 imul rax, rax, 1 00080 48 8b 8d 40 07 00 00 mov rcx, QWORD PTR out$[rbp] 00087 0f b6 95 14 07 00 00 movzx edx, BYTE PTR tv78[rbp] 0008e 88 14 01 mov BYTE PTR [rcx+rax], dl 00091 b8 01 00 00 00 mov eax, 1 00096 48 6b c0 00 imul rax, rax, 0 0009a 48 8b 8d 40 07 00 00 mov rcx, QWORD PTR out$[rbp] 000a1 0f b6 95 14 07 00 00 movzx edx, BYTE PTR tv78[rbp] 000a8 88 14 01 mov BYTE PTR [rcx+rax], dl ; 3450 : return out; 000ab 48 8b 85 40 07 00 00 mov rax, QWORD PTR out$[rbp] 000b2 e9 e8 03 00 00 jmp $LN1@stbi__resa $LN8@stbi__resa: ; 3451 : } ; 3452 : ; 3453 : t1 = 3 * in_near[0] + in_far[0]; 000b7 b8 01 00 00 00 mov eax, 1 000bc 48 6b c0 00 imul rax, rax, 0 000c0 48 8b 8d 48 07 00 00 mov rcx, QWORD PTR in_near$[rbp] 000c7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 000cb 6b c0 03 imul eax, eax, 3 000ce b9 01 00 00 00 mov ecx, 1 000d3 48 6b c9 00 imul rcx, rcx, 0 000d7 48 8b 95 50 07 00 00 mov rdx, QWORD PTR in_far$[rbp] 000de 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 000e2 03 c1 add eax, ecx 000e4 89 45 44 mov DWORD PTR t1$[rbp], eax ; 3454 : // process groups of 8 pixels for as long as we can. ; 3455 : // note we can't handle the last pixel in a row in this loop ; 3456 : // because we need to handle the filter boundary conditions. ; 3457 : for (; i < ((w - 1) & ~7); i += 8) { 000e7 eb 09 jmp SHORT $LN4@stbi__resa $LN2@stbi__resa: 000e9 8b 45 04 mov eax, DWORD PTR i$[rbp] 000ec 83 c0 08 add eax, 8 000ef 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__resa: 000f2 8b 85 58 07 00 00 mov eax, DWORD PTR w$[rbp] 000f8 ff c8 dec eax 000fa 83 e0 f8 and eax, -8 000fd 39 45 04 cmp DWORD PTR i$[rbp], eax 00100 0f 8d 96 02 00 00 jge $LN3@stbi__resa ; 3458 : #if defined(STBI_SSE2) ; 3459 : // load and perform the vertical filtering pass ; 3460 : // this uses 3*x + y = 4*x + (y - x) ; 3461 : __m128i zero = _mm_setzero_si128(); 00106 66 0f ef c0 pxor xmm0, xmm0 0010a 66 0f 7f 45 70 movdqa XMMWORD PTR zero$1[rbp], xmm0 ; 3462 : __m128i farb = _mm_loadl_epi64((__m128i *)(in_far + i)); 0010f 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00113 48 8b 8d 50 07 00 00 mov rcx, QWORD PTR in_far$[rbp] 0011a 48 03 c8 add rcx, rax 0011d 48 8b c1 mov rax, rcx 00120 f3 0f 7e 00 movq xmm0, QWORD PTR [rax] 00124 66 0f 7f 85 a0 00 00 00 movdqa XMMWORD PTR farb$2[rbp], xmm0 ; 3463 : __m128i nearb = _mm_loadl_epi64((__m128i *)(in_near + i)); 0012c 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00130 48 8b 8d 48 07 00 00 mov rcx, QWORD PTR in_near$[rbp] 00137 48 03 c8 add rcx, rax 0013a 48 8b c1 mov rax, rcx 0013d f3 0f 7e 00 movq xmm0, QWORD PTR [rax] 00141 66 0f 7f 85 d0 00 00 00 movdqa XMMWORD PTR nearb$3[rbp], xmm0 ; 3464 : __m128i farw = _mm_unpacklo_epi8(farb, zero); 00149 66 0f 6f 85 a0 00 00 00 movdqa xmm0, XMMWORD PTR farb$2[rbp] 00151 66 0f 60 45 70 punpcklbw xmm0, XMMWORD PTR zero$1[rbp] 00156 66 0f 7f 85 00 01 00 00 movdqa XMMWORD PTR farw$4[rbp], xmm0 ; 3465 : __m128i nearw = _mm_unpacklo_epi8(nearb, zero); 0015e 66 0f 6f 85 d0 00 00 00 movdqa xmm0, XMMWORD PTR nearb$3[rbp] 00166 66 0f 60 45 70 punpcklbw xmm0, XMMWORD PTR zero$1[rbp] 0016b 66 0f 7f 85 30 01 00 00 movdqa XMMWORD PTR nearw$5[rbp], xmm0 ; 3466 : __m128i diff = _mm_sub_epi16(farw, nearw); 00173 66 0f 6f 85 00 01 00 00 movdqa xmm0, XMMWORD PTR farw$4[rbp] 0017b 66 0f f9 85 30 01 00 00 psubw xmm0, XMMWORD PTR nearw$5[rbp] 00183 66 0f 7f 85 60 01 00 00 movdqa XMMWORD PTR diff$6[rbp], xmm0 ; 3467 : __m128i nears = _mm_slli_epi16(nearw, 2); 0018b 66 0f 6f 85 30 01 00 00 movdqa xmm0, XMMWORD PTR nearw$5[rbp] 00193 66 0f 71 f0 02 psllw xmm0, 2 00198 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR nears$7[rbp], xmm0 ; 3468 : __m128i curr = _mm_add_epi16(nears, diff); // current row 001a0 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR nears$7[rbp] 001a8 66 0f fd 85 60 01 00 00 paddw xmm0, XMMWORD PTR diff$6[rbp] 001b0 66 0f 7f 85 c0 01 00 00 movdqa XMMWORD PTR curr$8[rbp], xmm0 ; 3469 : ; 3470 : // horizontal filter works the same based on shifted vers of current ; 3471 : // row. "prev" is current row shifted right by 1 pixel; we need to ; 3472 : // insert the previous pixel value (from t1). ; 3473 : // "next" is current row shifted left by 1 pixel, with first pixel ; 3474 : // of next block of 8 pixels added in. ; 3475 : __m128i prv0 = _mm_slli_si128(curr, 2); 001b8 66 0f 6f 85 c0 01 00 00 movdqa xmm0, XMMWORD PTR curr$8[rbp] 001c0 66 0f 73 f8 02 pslldq xmm0, 2 001c5 66 0f 7f 85 f0 01 00 00 movdqa XMMWORD PTR prv0$9[rbp], xmm0 ; 3476 : __m128i nxt0 = _mm_srli_si128(curr, 2); 001cd 66 0f 6f 85 c0 01 00 00 movdqa xmm0, XMMWORD PTR curr$8[rbp] 001d5 66 0f 73 d8 02 psrldq xmm0, 2 001da 66 0f 7f 85 20 02 00 00 movdqa XMMWORD PTR nxt0$10[rbp], xmm0 ; 3477 : __m128i prev = _mm_insert_epi16(prv0, t1, 0); 001e2 66 0f 6f 85 f0 01 00 00 movdqa xmm0, XMMWORD PTR prv0$9[rbp] 001ea 66 0f c4 45 44 00 pinsrw xmm0, DWORD PTR t1$[rbp], 0 001f0 66 0f 7f 85 50 02 00 00 movdqa XMMWORD PTR prev$11[rbp], xmm0 ; 3478 : __m128i next = _mm_insert_epi16(nxt0, 3 * in_near[i + 8] + in_far[i + 8], 7); 001f8 8b 45 04 mov eax, DWORD PTR i$[rbp] 001fb 83 c0 08 add eax, 8 001fe 48 98 cdqe 00200 48 8b 8d 48 07 00 00 mov rcx, QWORD PTR in_near$[rbp] 00207 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0020b 6b c0 03 imul eax, eax, 3 0020e 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 00211 83 c1 08 add ecx, 8 00214 48 63 c9 movsxd rcx, ecx 00217 48 8b 95 50 07 00 00 mov rdx, QWORD PTR in_far$[rbp] 0021e 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00222 03 c1 add eax, ecx 00224 66 0f 6f 85 20 02 00 00 movdqa xmm0, XMMWORD PTR nxt0$10[rbp] 0022c 66 0f c4 c0 07 pinsrw xmm0, eax, 7 00231 66 0f 7f 85 80 02 00 00 movdqa XMMWORD PTR next$12[rbp], xmm0 ; 3479 : ; 3480 : // horizontal filter, polyphase implementation since it's convenient: ; 3481 : // even pixels = 3*cur + prev = cur*4 + (prev - cur) ; 3482 : // odd pixels = 3*cur + next = cur*4 + (next - cur) ; 3483 : // note the shared term. ; 3484 : __m128i bias = _mm_set1_epi16(8); 00239 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@00080008000800080008000800080008 00241 66 0f 7f 85 b0 02 00 00 movdqa XMMWORD PTR bias$13[rbp], xmm0 ; 3485 : __m128i curs = _mm_slli_epi16(curr, 2); 00249 66 0f 6f 85 c0 01 00 00 movdqa xmm0, XMMWORD PTR curr$8[rbp] 00251 66 0f 71 f0 02 psllw xmm0, 2 00256 66 0f 7f 85 e0 02 00 00 movdqa XMMWORD PTR curs$14[rbp], xmm0 ; 3486 : __m128i prvd = _mm_sub_epi16(prev, curr); 0025e 66 0f 6f 85 50 02 00 00 movdqa xmm0, XMMWORD PTR prev$11[rbp] 00266 66 0f f9 85 c0 01 00 00 psubw xmm0, XMMWORD PTR curr$8[rbp] 0026e 66 0f 7f 85 10 03 00 00 movdqa XMMWORD PTR prvd$15[rbp], xmm0 ; 3487 : __m128i nxtd = _mm_sub_epi16(next, curr); 00276 66 0f 6f 85 80 02 00 00 movdqa xmm0, XMMWORD PTR next$12[rbp] 0027e 66 0f f9 85 c0 01 00 00 psubw xmm0, XMMWORD PTR curr$8[rbp] 00286 66 0f 7f 85 40 03 00 00 movdqa XMMWORD PTR nxtd$16[rbp], xmm0 ; 3488 : __m128i curb = _mm_add_epi16(curs, bias); 0028e 66 0f 6f 85 e0 02 00 00 movdqa xmm0, XMMWORD PTR curs$14[rbp] 00296 66 0f fd 85 b0 02 00 00 paddw xmm0, XMMWORD PTR bias$13[rbp] 0029e 66 0f 7f 85 70 03 00 00 movdqa XMMWORD PTR curb$17[rbp], xmm0 ; 3489 : __m128i even = _mm_add_epi16(prvd, curb); 002a6 66 0f 6f 85 10 03 00 00 movdqa xmm0, XMMWORD PTR prvd$15[rbp] 002ae 66 0f fd 85 70 03 00 00 paddw xmm0, XMMWORD PTR curb$17[rbp] 002b6 66 0f 7f 85 a0 03 00 00 movdqa XMMWORD PTR even$18[rbp], xmm0 ; 3490 : __m128i odd = _mm_add_epi16(nxtd, curb); 002be 66 0f 6f 85 40 03 00 00 movdqa xmm0, XMMWORD PTR nxtd$16[rbp] 002c6 66 0f fd 85 70 03 00 00 paddw xmm0, XMMWORD PTR curb$17[rbp] 002ce 66 0f 7f 85 d0 03 00 00 movdqa XMMWORD PTR odd$19[rbp], xmm0 ; 3491 : ; 3492 : // interleave even and odd pixels, then undo scaling. ; 3493 : __m128i int0 = _mm_unpacklo_epi16(even, odd); 002d6 66 0f 6f 85 a0 03 00 00 movdqa xmm0, XMMWORD PTR even$18[rbp] 002de 66 0f 61 85 d0 03 00 00 punpcklwd xmm0, XMMWORD PTR odd$19[rbp] 002e6 66 0f 7f 85 00 04 00 00 movdqa XMMWORD PTR int0$20[rbp], xmm0 ; 3494 : __m128i int1 = _mm_unpackhi_epi16(even, odd); 002ee 66 0f 6f 85 a0 03 00 00 movdqa xmm0, XMMWORD PTR even$18[rbp] 002f6 66 0f 69 85 d0 03 00 00 punpckhwd xmm0, XMMWORD PTR odd$19[rbp] 002fe 66 0f 7f 85 30 04 00 00 movdqa XMMWORD PTR int1$21[rbp], xmm0 ; 3495 : __m128i de0 = _mm_srli_epi16(int0, 4); 00306 66 0f 6f 85 00 04 00 00 movdqa xmm0, XMMWORD PTR int0$20[rbp] 0030e 66 0f 71 d0 04 psrlw xmm0, 4 00313 66 0f 7f 85 60 04 00 00 movdqa XMMWORD PTR de0$22[rbp], xmm0 ; 3496 : __m128i de1 = _mm_srli_epi16(int1, 4); 0031b 66 0f 6f 85 30 04 00 00 movdqa xmm0, XMMWORD PTR int1$21[rbp] 00323 66 0f 71 d0 04 psrlw xmm0, 4 00328 66 0f 7f 85 90 04 00 00 movdqa XMMWORD PTR de1$23[rbp], xmm0 ; 3497 : ; 3498 : // pack and write output ; 3499 : __m128i outv = _mm_packus_epi16(de0, de1); 00330 66 0f 6f 85 60 04 00 00 movdqa xmm0, XMMWORD PTR de0$22[rbp] 00338 66 0f 67 85 90 04 00 00 packuswb xmm0, XMMWORD PTR de1$23[rbp] 00340 66 0f 7f 85 c0 04 00 00 movdqa XMMWORD PTR outv$24[rbp], xmm0 ; 3500 : _mm_storeu_si128((__m128i *)(out + i * 2), outv); 00348 8b 45 04 mov eax, DWORD PTR i$[rbp] 0034b 03 c0 add eax, eax 0034d 48 98 cdqe 0034f 48 8b 8d 40 07 00 00 mov rcx, QWORD PTR out$[rbp] 00356 48 03 c8 add rcx, rax 00359 48 8b c1 mov rax, rcx 0035c 66 0f 6f 85 c0 04 00 00 movdqa xmm0, XMMWORD PTR outv$24[rbp] 00364 f3 0f 7f 00 movdqu XMMWORD PTR [rax], xmm0 ; 3501 : #elif defined(STBI_NEON) ; 3502 : // load and perform the vertical filtering pass ; 3503 : // this uses 3*x + y = 4*x + (y - x) ; 3504 : uint8x8_t farb = vld1_u8(in_far + i); ; 3505 : uint8x8_t nearb = vld1_u8(in_near + i); ; 3506 : int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); ; 3507 : int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); ; 3508 : int16x8_t curr = vaddq_s16(nears, diff); // current row ; 3509 : ; 3510 : // horizontal filter works the same based on shifted vers of current ; 3511 : // row. "prev" is current row shifted right by 1 pixel; we need to ; 3512 : // insert the previous pixel value (from t1). ; 3513 : // "next" is current row shifted left by 1 pixel, with first pixel ; 3514 : // of next block of 8 pixels added in. ; 3515 : int16x8_t prv0 = vextq_s16(curr, curr, 7); ; 3516 : int16x8_t nxt0 = vextq_s16(curr, curr, 1); ; 3517 : int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); ; 3518 : int16x8_t next = vsetq_lane_s16(3 * in_near[i + 8] + in_far[i + 8], nxt0, 7); ; 3519 : ; 3520 : // horizontal filter, polyphase implementation since it's convenient: ; 3521 : // even pixels = 3*cur + prev = cur*4 + (prev - cur) ; 3522 : // odd pixels = 3*cur + next = cur*4 + (next - cur) ; 3523 : // note the shared term. ; 3524 : int16x8_t curs = vshlq_n_s16(curr, 2); ; 3525 : int16x8_t prvd = vsubq_s16(prev, curr); ; 3526 : int16x8_t nxtd = vsubq_s16(next, curr); ; 3527 : int16x8_t even = vaddq_s16(curs, prvd); ; 3528 : int16x8_t odd = vaddq_s16(curs, nxtd); ; 3529 : ; 3530 : // undo scaling and round, then store with even/odd phases interleaved ; 3531 : uint8x8x2_t o; ; 3532 : o.val[0] = vqrshrun_n_s16(even, 4); ; 3533 : o.val[1] = vqrshrun_n_s16(odd, 4); ; 3534 : vst2_u8(out + i * 2, o); ; 3535 : #endif ; 3536 : ; 3537 : // "previous" value for next iter ; 3538 : t1 = 3 * in_near[i + 7] + in_far[i + 7]; 00368 8b 45 04 mov eax, DWORD PTR i$[rbp] 0036b 83 c0 07 add eax, 7 0036e 48 98 cdqe 00370 48 8b 8d 48 07 00 00 mov rcx, QWORD PTR in_near$[rbp] 00377 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0037b 6b c0 03 imul eax, eax, 3 0037e 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 00381 83 c1 07 add ecx, 7 00384 48 63 c9 movsxd rcx, ecx 00387 48 8b 95 50 07 00 00 mov rdx, QWORD PTR in_far$[rbp] 0038e 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00392 03 c1 add eax, ecx 00394 89 45 44 mov DWORD PTR t1$[rbp], eax ; 3539 : } 00397 e9 4d fd ff ff jmp $LN2@stbi__resa $LN3@stbi__resa: ; 3540 : ; 3541 : t0 = t1; 0039c 8b 45 44 mov eax, DWORD PTR t1$[rbp] 0039f 89 45 24 mov DWORD PTR t0$[rbp], eax ; 3542 : t1 = 3 * in_near[i] + in_far[i]; 003a2 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 003a6 48 8b 8d 48 07 00 00 mov rcx, QWORD PTR in_near$[rbp] 003ad 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 003b1 6b c0 03 imul eax, eax, 3 003b4 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 003b8 48 8b 95 50 07 00 00 mov rdx, QWORD PTR in_far$[rbp] 003bf 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 003c3 03 c1 add eax, ecx 003c5 89 45 44 mov DWORD PTR t1$[rbp], eax ; 3543 : out[i * 2] = stbi__div16(3 * t1 + t0 + 8); 003c8 6b 45 44 03 imul eax, DWORD PTR t1$[rbp], 3 003cc 8b 4d 24 mov ecx, DWORD PTR t0$[rbp] 003cf 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] 003d3 c1 f8 04 sar eax, 4 003d6 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 003d9 03 c9 add ecx, ecx 003db 48 63 c9 movsxd rcx, ecx 003de 48 8b 95 40 07 00 00 mov rdx, QWORD PTR out$[rbp] 003e5 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3544 : ; 3545 : for (++i; i < w; ++i) { 003e8 8b 45 04 mov eax, DWORD PTR i$[rbp] 003eb ff c0 inc eax 003ed 89 45 04 mov DWORD PTR i$[rbp], eax 003f0 eb 08 jmp SHORT $LN7@stbi__resa $LN5@stbi__resa: 003f2 8b 45 04 mov eax, DWORD PTR i$[rbp] 003f5 ff c0 inc eax 003f7 89 45 04 mov DWORD PTR i$[rbp], eax $LN7@stbi__resa: 003fa 8b 85 58 07 00 00 mov eax, DWORD PTR w$[rbp] 00400 39 45 04 cmp DWORD PTR i$[rbp], eax 00403 7d 73 jge SHORT $LN6@stbi__resa ; 3546 : t0 = t1; 00405 8b 45 44 mov eax, DWORD PTR t1$[rbp] 00408 89 45 24 mov DWORD PTR t0$[rbp], eax ; 3547 : t1 = 3 * in_near[i] + in_far[i]; 0040b 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0040f 48 8b 8d 48 07 00 00 mov rcx, QWORD PTR in_near$[rbp] 00416 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0041a 6b c0 03 imul eax, eax, 3 0041d 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 00421 48 8b 95 50 07 00 00 mov rdx, QWORD PTR in_far$[rbp] 00428 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0042c 03 c1 add eax, ecx 0042e 89 45 44 mov DWORD PTR t1$[rbp], eax ; 3548 : out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8); 00431 6b 45 24 03 imul eax, DWORD PTR t0$[rbp], 3 00435 8b 4d 44 mov ecx, DWORD PTR t1$[rbp] 00438 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] 0043c c1 f8 04 sar eax, 4 0043f 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 00442 8d 4c 09 ff lea ecx, DWORD PTR [rcx+rcx-1] 00446 48 63 c9 movsxd rcx, ecx 00449 48 8b 95 40 07 00 00 mov rdx, QWORD PTR out$[rbp] 00450 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3549 : out[i * 2] = stbi__div16(3 * t1 + t0 + 8); 00453 6b 45 44 03 imul eax, DWORD PTR t1$[rbp], 3 00457 8b 4d 24 mov ecx, DWORD PTR t0$[rbp] 0045a 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] 0045e c1 f8 04 sar eax, 4 00461 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 00464 d1 e1 shl ecx, 1 00466 48 63 c9 movsxd rcx, ecx 00469 48 8b 95 40 07 00 00 mov rdx, QWORD PTR out$[rbp] 00470 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3550 : } 00473 e9 7a ff ff ff jmp $LN5@stbi__resa $LN6@stbi__resa: ; 3551 : out[w * 2 - 1] = stbi__div4(t1 + 2); 00478 8b 45 44 mov eax, DWORD PTR t1$[rbp] 0047b 83 c0 02 add eax, 2 0047e c1 f8 02 sar eax, 2 00481 8b 8d 58 07 00 00 mov ecx, DWORD PTR w$[rbp] 00487 8d 4c 09 ff lea ecx, DWORD PTR [rcx+rcx-1] 0048b 48 63 c9 movsxd rcx, ecx 0048e 48 8b 95 40 07 00 00 mov rdx, QWORD PTR out$[rbp] 00495 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3552 : ; 3553 : STBI_NOTUSED(hs); ; 3554 : ; 3555 : return out; 00498 48 8b 85 40 07 00 00 mov rax, QWORD PTR out$[rbp] $LN1@stbi__resa: ; 3556 : } 0049f 48 8d a5 28 07 00 00 lea rsp, QWORD PTR [rbp+1832] 004a6 5f pop rdi 004a7 5d pop rbp 004a8 c3 ret 0 stbi__resample_row_hv_2_simd ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__resample_row_hv_2 _TEXT SEGMENT i$ = 4 t0$ = 36 t1$ = 68 tv78 = 276 out$ = 320 in_near$ = 328 in_far$ = 336 w$ = 344 hs$ = 352 stbi__resample_row_hv_2 PROC ; COMDAT ; 3418 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 3419 : // need to generate 2x2 samples for every one in input ; 3420 : int i, t0, t1; ; 3421 : if (w == 1) { 0002f 83 bd 58 01 00 00 01 cmp DWORD PTR w$[rbp], 1 00036 75 78 jne SHORT $LN5@stbi__resa ; 3422 : out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2); 00038 b8 01 00 00 00 mov eax, 1 0003d 48 6b c0 00 imul rax, rax, 0 00041 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR in_near$[rbp] 00048 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0004c 6b c0 03 imul eax, eax, 3 0004f b9 01 00 00 00 mov ecx, 1 00054 48 6b c9 00 imul rcx, rcx, 0 00058 48 8b 95 50 01 00 00 mov rdx, QWORD PTR in_far$[rbp] 0005f 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00063 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] 00067 c1 f8 02 sar eax, 2 0006a 89 85 14 01 00 00 mov DWORD PTR tv78[rbp], eax 00070 b8 01 00 00 00 mov eax, 1 00075 48 6b c0 01 imul rax, rax, 1 00079 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR out$[rbp] 00080 0f b6 95 14 01 00 00 movzx edx, BYTE PTR tv78[rbp] 00087 88 14 01 mov BYTE PTR [rcx+rax], dl 0008a b8 01 00 00 00 mov eax, 1 0008f 48 6b c0 00 imul rax, rax, 0 00093 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR out$[rbp] 0009a 0f b6 95 14 01 00 00 movzx edx, BYTE PTR tv78[rbp] 000a1 88 14 01 mov BYTE PTR [rcx+rax], dl ; 3423 : return out; 000a4 48 8b 85 40 01 00 00 mov rax, QWORD PTR out$[rbp] 000ab e9 02 01 00 00 jmp $LN1@stbi__resa $LN5@stbi__resa: ; 3424 : } ; 3425 : ; 3426 : t1 = 3 * in_near[0] + in_far[0]; 000b0 b8 01 00 00 00 mov eax, 1 000b5 48 6b c0 00 imul rax, rax, 0 000b9 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR in_near$[rbp] 000c0 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 000c4 6b c0 03 imul eax, eax, 3 000c7 b9 01 00 00 00 mov ecx, 1 000cc 48 6b c9 00 imul rcx, rcx, 0 000d0 48 8b 95 50 01 00 00 mov rdx, QWORD PTR in_far$[rbp] 000d7 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 000db 03 c1 add eax, ecx 000dd 89 45 44 mov DWORD PTR t1$[rbp], eax ; 3427 : out[0] = stbi__div4(t1 + 2); 000e0 8b 45 44 mov eax, DWORD PTR t1$[rbp] 000e3 83 c0 02 add eax, 2 000e6 c1 f8 02 sar eax, 2 000e9 b9 01 00 00 00 mov ecx, 1 000ee 48 6b c9 00 imul rcx, rcx, 0 000f2 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 000f9 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3428 : for (i = 1; i < w; ++i) { 000fc c7 45 04 01 00 00 00 mov DWORD PTR i$[rbp], 1 00103 eb 08 jmp SHORT $LN4@stbi__resa $LN2@stbi__resa: 00105 8b 45 04 mov eax, DWORD PTR i$[rbp] 00108 ff c0 inc eax 0010a 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__resa: 0010d 8b 85 58 01 00 00 mov eax, DWORD PTR w$[rbp] 00113 39 45 04 cmp DWORD PTR i$[rbp], eax 00116 7d 73 jge SHORT $LN3@stbi__resa ; 3429 : t0 = t1; 00118 8b 45 44 mov eax, DWORD PTR t1$[rbp] 0011b 89 45 24 mov DWORD PTR t0$[rbp], eax ; 3430 : t1 = 3 * in_near[i] + in_far[i]; 0011e 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00122 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR in_near$[rbp] 00129 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0012d 6b c0 03 imul eax, eax, 3 00130 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 00134 48 8b 95 50 01 00 00 mov rdx, QWORD PTR in_far$[rbp] 0013b 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0013f 03 c1 add eax, ecx 00141 89 45 44 mov DWORD PTR t1$[rbp], eax ; 3431 : out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8); 00144 6b 45 24 03 imul eax, DWORD PTR t0$[rbp], 3 00148 8b 4d 44 mov ecx, DWORD PTR t1$[rbp] 0014b 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] 0014f c1 f8 04 sar eax, 4 00152 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 00155 8d 4c 09 ff lea ecx, DWORD PTR [rcx+rcx-1] 00159 48 63 c9 movsxd rcx, ecx 0015c 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 00163 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3432 : out[i * 2] = stbi__div16(3 * t1 + t0 + 8); 00166 6b 45 44 03 imul eax, DWORD PTR t1$[rbp], 3 0016a 8b 4d 24 mov ecx, DWORD PTR t0$[rbp] 0016d 8d 44 08 08 lea eax, DWORD PTR [rax+rcx+8] 00171 c1 f8 04 sar eax, 4 00174 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 00177 d1 e1 shl ecx, 1 00179 48 63 c9 movsxd rcx, ecx 0017c 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 00183 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3433 : } 00186 e9 7a ff ff ff jmp $LN2@stbi__resa $LN3@stbi__resa: ; 3434 : out[w * 2 - 1] = stbi__div4(t1 + 2); 0018b 8b 45 44 mov eax, DWORD PTR t1$[rbp] 0018e 83 c0 02 add eax, 2 00191 c1 f8 02 sar eax, 2 00194 8b 8d 58 01 00 00 mov ecx, DWORD PTR w$[rbp] 0019a 8d 4c 09 ff lea ecx, DWORD PTR [rcx+rcx-1] 0019e 48 63 c9 movsxd rcx, ecx 001a1 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 001a8 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3435 : ; 3436 : STBI_NOTUSED(hs); ; 3437 : ; 3438 : return out; 001ab 48 8b 85 40 01 00 00 mov rax, QWORD PTR out$[rbp] $LN1@stbi__resa: ; 3439 : } 001b2 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 001b9 5f pop rdi 001ba 5d pop rbp 001bb c3 ret 0 stbi__resample_row_hv_2 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__resample_row_h_2 _TEXT SEGMENT i$ = 4 input$ = 40 n$1 = 68 out$ = 320 in_near$ = 328 in_far$ = 336 w$ = 344 hs$ = 352 stbi__resample_row_h_2 PROC ; COMDAT ; 3387 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 3388 : // need to generate two samples horizontally for every one in input ; 3389 : int i; ; 3390 : stbi_uc *input = in_near; 0002f 48 8b 85 48 01 00 00 mov rax, QWORD PTR in_near$[rbp] 00036 48 89 45 28 mov QWORD PTR input$[rbp], rax ; 3391 : ; 3392 : if (w == 1) { 0003a 83 bd 58 01 00 00 01 cmp DWORD PTR w$[rbp], 1 00041 75 59 jne SHORT $LN5@stbi__resa ; 3393 : // if only one sample, can't do any interpolation ; 3394 : out[0] = out[1] = input[0]; 00043 b8 01 00 00 00 mov eax, 1 00048 48 6b c0 00 imul rax, rax, 0 0004c b9 01 00 00 00 mov ecx, 1 00051 48 6b c9 01 imul rcx, rcx, 1 00055 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 0005c 4c 8b 45 28 mov r8, QWORD PTR input$[rbp] 00060 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00065 88 04 0a mov BYTE PTR [rdx+rcx], al 00068 b8 01 00 00 00 mov eax, 1 0006d 48 6b c0 01 imul rax, rax, 1 00071 b9 01 00 00 00 mov ecx, 1 00076 48 6b c9 00 imul rcx, rcx, 0 0007a 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 00081 4c 8b 85 40 01 00 00 mov r8, QWORD PTR out$[rbp] 00088 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0008d 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3395 : return out; 00090 48 8b 85 40 01 00 00 mov rax, QWORD PTR out$[rbp] 00097 e9 64 01 00 00 jmp $LN1@stbi__resa $LN5@stbi__resa: ; 3396 : } ; 3397 : ; 3398 : out[0] = input[0]; 0009c b8 01 00 00 00 mov eax, 1 000a1 48 6b c0 00 imul rax, rax, 0 000a5 b9 01 00 00 00 mov ecx, 1 000aa 48 6b c9 00 imul rcx, rcx, 0 000ae 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 000b5 4c 8b 45 28 mov r8, QWORD PTR input$[rbp] 000b9 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 000be 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3399 : out[1] = stbi__div4(input[0] * 3 + input[1] + 2); 000c1 b8 01 00 00 00 mov eax, 1 000c6 48 6b c0 00 imul rax, rax, 0 000ca 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] 000ce 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 000d2 6b c0 03 imul eax, eax, 3 000d5 b9 01 00 00 00 mov ecx, 1 000da 48 6b c9 01 imul rcx, rcx, 1 000de 48 8b 55 28 mov rdx, QWORD PTR input$[rbp] 000e2 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 000e6 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] 000ea c1 f8 02 sar eax, 2 000ed b9 01 00 00 00 mov ecx, 1 000f2 48 6b c9 01 imul rcx, rcx, 1 000f6 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 000fd 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3400 : for (i = 1; i < w - 1; ++i) { 00100 c7 45 04 01 00 00 00 mov DWORD PTR i$[rbp], 1 00107 eb 08 jmp SHORT $LN4@stbi__resa $LN2@stbi__resa: 00109 8b 45 04 mov eax, DWORD PTR i$[rbp] 0010c ff c0 inc eax 0010e 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__resa: 00111 8b 85 58 01 00 00 mov eax, DWORD PTR w$[rbp] 00117 ff c8 dec eax 00119 39 45 04 cmp DWORD PTR i$[rbp], eax 0011c 7d 72 jge SHORT $LN3@stbi__resa ; 3401 : int n = 3 * input[i] + 2; 0011e 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00122 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] 00126 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0012a 6b c0 03 imul eax, eax, 3 0012d 83 c0 02 add eax, 2 00130 89 45 44 mov DWORD PTR n$1[rbp], eax ; 3402 : out[i * 2 + 0] = stbi__div4(n + input[i - 1]); 00133 8b 45 04 mov eax, DWORD PTR i$[rbp] 00136 ff c8 dec eax 00138 48 98 cdqe 0013a 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] 0013e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00142 8b 4d 44 mov ecx, DWORD PTR n$1[rbp] 00145 03 c8 add ecx, eax 00147 8b c1 mov eax, ecx 00149 c1 f8 02 sar eax, 2 0014c 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 0014f 03 c9 add ecx, ecx 00151 48 63 c9 movsxd rcx, ecx 00154 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 0015b 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3403 : out[i * 2 + 1] = stbi__div4(n + input[i + 1]); 0015e 8b 45 04 mov eax, DWORD PTR i$[rbp] 00161 ff c0 inc eax 00163 48 98 cdqe 00165 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] 00169 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0016d 8b 4d 44 mov ecx, DWORD PTR n$1[rbp] 00170 03 c8 add ecx, eax 00172 8b c1 mov eax, ecx 00174 c1 f8 02 sar eax, 2 00177 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 0017a 8d 4c 09 01 lea ecx, DWORD PTR [rcx+rcx+1] 0017e 48 63 c9 movsxd rcx, ecx 00181 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 00188 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3404 : } 0018b e9 79 ff ff ff jmp $LN2@stbi__resa $LN3@stbi__resa: ; 3405 : out[i * 2 + 0] = stbi__div4(input[w - 2] * 3 + input[w - 1] + 2); 00190 8b 85 58 01 00 00 mov eax, DWORD PTR w$[rbp] 00196 83 e8 02 sub eax, 2 00199 48 98 cdqe 0019b 48 8b 4d 28 mov rcx, QWORD PTR input$[rbp] 0019f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 001a3 6b c0 03 imul eax, eax, 3 001a6 8b 8d 58 01 00 00 mov ecx, DWORD PTR w$[rbp] 001ac ff c9 dec ecx 001ae 48 63 c9 movsxd rcx, ecx 001b1 48 8b 55 28 mov rdx, QWORD PTR input$[rbp] 001b5 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 001b9 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] 001bd c1 f8 02 sar eax, 2 001c0 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 001c3 03 c9 add ecx, ecx 001c5 48 63 c9 movsxd rcx, ecx 001c8 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 001cf 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3406 : out[i * 2 + 1] = input[w - 1]; 001d2 8b 85 58 01 00 00 mov eax, DWORD PTR w$[rbp] 001d8 ff c8 dec eax 001da 48 98 cdqe 001dc 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 001df 8d 4c 09 01 lea ecx, DWORD PTR [rcx+rcx+1] 001e3 48 63 c9 movsxd rcx, ecx 001e6 48 8b 95 40 01 00 00 mov rdx, QWORD PTR out$[rbp] 001ed 4c 8b 45 28 mov r8, QWORD PTR input$[rbp] 001f1 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 001f6 88 04 0a mov BYTE PTR [rdx+rcx], al ; 3407 : ; 3408 : STBI_NOTUSED(in_far); ; 3409 : STBI_NOTUSED(hs); ; 3410 : ; 3411 : return out; 001f9 48 8b 85 40 01 00 00 mov rax, QWORD PTR out$[rbp] $LN1@stbi__resa: ; 3412 : } 00200 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 00207 5f pop rdi 00208 5d pop rbp 00209 c3 ret 0 stbi__resample_row_h_2 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__resample_row_v_2 _TEXT SEGMENT i$ = 4 out$ = 256 in_near$ = 264 in_far$ = 272 w$ = 280 hs$ = 288 stbi__resample_row_v_2 PROC ; COMDAT ; 3376 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 3377 : // need to generate two samples vertically for every one in input ; 3378 : int i; ; 3379 : STBI_NOTUSED(hs); ; 3380 : for (i = 0; i < w; ++i) 0002f c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00036 eb 08 jmp SHORT $LN4@stbi__resa $LN2@stbi__resa: 00038 8b 45 04 mov eax, DWORD PTR i$[rbp] 0003b ff c0 inc eax 0003d 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__resa: 00040 8b 85 18 01 00 00 mov eax, DWORD PTR w$[rbp] 00046 39 45 04 cmp DWORD PTR i$[rbp], eax 00049 7d 38 jge SHORT $LN3@stbi__resa ; 3381 : out[i] = stbi__div4(3 * in_near[i] + in_far[i] + 2); 0004b 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0004f 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR in_near$[rbp] 00056 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0005a 6b c0 03 imul eax, eax, 3 0005d 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 00061 48 8b 95 10 01 00 00 mov rdx, QWORD PTR in_far$[rbp] 00068 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0006c 8d 44 08 02 lea eax, DWORD PTR [rax+rcx+2] 00070 c1 f8 02 sar eax, 2 00073 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 00077 48 8b 95 00 01 00 00 mov rdx, QWORD PTR out$[rbp] 0007e 88 04 0a mov BYTE PTR [rdx+rcx], al 00081 eb b5 jmp SHORT $LN2@stbi__resa $LN3@stbi__resa: ; 3382 : return out; 00083 48 8b 85 00 01 00 00 mov rax, QWORD PTR out$[rbp] ; 3383 : } 0008a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00091 5f pop rdi 00092 5d pop rbp 00093 c3 ret 0 stbi__resample_row_v_2 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT resample_row_1 _TEXT SEGMENT out$ = 224 in_near$ = 232 in_far$ = 240 w$ = 248 hs$ = 256 resample_row_1 PROC ; COMDAT ; 3366 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 3367 : STBI_NOTUSED(out); ; 3368 : STBI_NOTUSED(in_far); ; 3369 : STBI_NOTUSED(w); ; 3370 : STBI_NOTUSED(hs); ; 3371 : return in_near; 0002f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR in_near$[rbp] ; 3372 : } 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0003d 5f pop rdi 0003e 5d pop rbp 0003f c3 ret 0 resample_row_1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__decode_jpeg_image _TEXT SEGMENT m$ = 4 Ld$1 = 36 NL$2 = 68 j$ = 320 stbi__decode_jpeg_image PROC ; COMDAT ; 3317 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 3318 : int m; ; 3319 : for (m = 0; m < 4; m++) { 00020 c7 45 04 00 00 00 00 mov DWORD PTR m$[rbp], 0 00027 eb 08 jmp SHORT $LN4@stbi__deco $LN2@stbi__deco: 00029 8b 45 04 mov eax, DWORD PTR m$[rbp] 0002c ff c0 inc eax 0002e 89 45 04 mov DWORD PTR m$[rbp], eax $LN4@stbi__deco: 00031 83 7d 04 04 cmp DWORD PTR m$[rbp], 4 00035 7d 38 jge SHORT $LN3@stbi__deco ; 3320 : j->img_comp[m].raw_data = NULL; 00037 48 63 45 04 movsxd rax, DWORD PTR m$[rbp] 0003b 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0003f 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 00046 48 c7 84 01 d8 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18136], 0 ; 3321 : j->img_comp[m].raw_coeff = NULL; 00052 48 63 45 04 movsxd rax, DWORD PTR m$[rbp] 00056 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 00061 48 c7 84 01 e0 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18144], 0 ; 3322 : } 0006d eb ba jmp SHORT $LN2@stbi__deco $LN3@stbi__deco: ; 3323 : j->restart_interval = 0; 0006f 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 00076 c7 80 68 48 00 00 00 00 00 00 mov DWORD PTR [rax+18536], 0 ; 3324 : if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) 00080 33 d2 xor edx, edx 00082 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 00089 e8 00 00 00 00 call stbi__decode_jpeg_header 0008e 85 c0 test eax, eax 00090 75 07 jne SHORT $LN7@stbi__deco ; 3325 : return 0; 00092 33 c0 xor eax, eax 00094 e9 8e 01 00 00 jmp $LN1@stbi__deco $LN7@stbi__deco: ; 3326 : m = stbi__get_marker(j); 00099 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 000a0 e8 00 00 00 00 call stbi__get_marker 000a5 0f b6 c0 movzx eax, al 000a8 89 45 04 mov DWORD PTR m$[rbp], eax $LN5@stbi__deco: ; 3327 : while (!stbi__EOI(m)) { 000ab 81 7d 04 d9 00 00 00 cmp DWORD PTR m$[rbp], 217 ; 000000d9H 000b2 0f 84 4d 01 00 00 je $LN6@stbi__deco ; 3328 : if (stbi__SOS(m)) { 000b8 81 7d 04 da 00 00 00 cmp DWORD PTR m$[rbp], 218 ; 000000daH 000bf 0f 85 97 00 00 00 jne $LN8@stbi__deco ; 3329 : if (!stbi__process_scan_header(j)) 000c5 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 000cc e8 00 00 00 00 call stbi__process_scan_header 000d1 85 c0 test eax, eax 000d3 75 07 jne SHORT $LN10@stbi__deco ; 3330 : return 0; 000d5 33 c0 xor eax, eax 000d7 e9 4b 01 00 00 jmp $LN1@stbi__deco $LN10@stbi__deco: ; 3331 : if (!stbi__parse_entropy_coded_data(j)) 000dc 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 000e3 e8 00 00 00 00 call stbi__parse_entropy_coded_data 000e8 85 c0 test eax, eax 000ea 75 07 jne SHORT $LN11@stbi__deco ; 3332 : return 0; 000ec 33 c0 xor eax, eax 000ee e9 34 01 00 00 jmp $LN1@stbi__deco $LN11@stbi__deco: ; 3333 : if (j->marker == STBI__MARKER_none) { 000f3 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 000fa 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 00101 3d ff 00 00 00 cmp eax, 255 ; 000000ffH 00106 75 19 jne SHORT $LN12@stbi__deco ; 3334 : j->marker = stbi__skip_jpeg_junk_at_end(j); 00108 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 0010f e8 00 00 00 00 call stbi__skip_jpeg_junk_at_end 00114 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 0011b 88 81 28 48 00 00 mov BYTE PTR [rcx+18472], al $LN12@stbi__deco: ; 3335 : // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 ; 3336 : } ; 3337 : m = stbi__get_marker(j); 00121 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 00128 e8 00 00 00 00 call stbi__get_marker 0012d 0f b6 c0 movzx eax, al 00130 89 45 04 mov DWORD PTR m$[rbp], eax ; 3338 : if (STBI__RESTART(m)) 00133 81 7d 04 d0 00 00 00 cmp DWORD PTR m$[rbp], 208 ; 000000d0H 0013a 7c 1b jl SHORT $LN13@stbi__deco 0013c 81 7d 04 d7 00 00 00 cmp DWORD PTR m$[rbp], 215 ; 000000d7H 00143 7f 12 jg SHORT $LN13@stbi__deco ; 3339 : m = stbi__get_marker(j); 00145 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 0014c e8 00 00 00 00 call stbi__get_marker 00151 0f b6 c0 movzx eax, al 00154 89 45 04 mov DWORD PTR m$[rbp], eax $LN13@stbi__deco: ; 3340 : } else if (stbi__DNL(m)) { 00157 e9 a4 00 00 00 jmp $LN9@stbi__deco $LN8@stbi__deco: 0015c 81 7d 04 dc 00 00 00 cmp DWORD PTR m$[rbp], 220 ; 000000dcH 00163 75 6f jne SHORT $LN14@stbi__deco ; 3341 : int Ld = stbi__get16be(j->s); 00165 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 0016c 48 8b 08 mov rcx, QWORD PTR [rax] 0016f e8 00 00 00 00 call stbi__get16be 00174 89 45 24 mov DWORD PTR Ld$1[rbp], eax ; 3342 : stbi__uint32 NL = stbi__get16be(j->s); 00177 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 0017e 48 8b 08 mov rcx, QWORD PTR [rax] 00181 e8 00 00 00 00 call stbi__get16be 00186 89 45 44 mov DWORD PTR NL$2[rbp], eax ; 3343 : if (Ld != 4) 00189 83 7d 24 04 cmp DWORD PTR Ld$1[rbp], 4 0018d 74 11 je SHORT $LN16@stbi__deco ; 3344 : return stbi__err("bad DNL len", "Corrupt JPEG"); 0018f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@EPMOIECP@bad?5DNL?5len@ 00196 e8 00 00 00 00 call stbi__err 0019b e9 87 00 00 00 jmp $LN1@stbi__deco $LN16@stbi__deco: ; 3345 : if (NL != j->s->img_y) 001a0 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 001a7 48 8b 00 mov rax, QWORD PTR [rax] 001aa 8b 40 04 mov eax, DWORD PTR [rax+4] 001ad 39 45 44 cmp DWORD PTR NL$2[rbp], eax 001b0 74 0e je SHORT $LN17@stbi__deco ; 3346 : return stbi__err("bad DNL height", "Corrupt JPEG"); 001b2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@PNCLKCLJ@bad?5DNL?5height@ 001b9 e8 00 00 00 00 call stbi__err 001be eb 67 jmp SHORT $LN1@stbi__deco $LN17@stbi__deco: ; 3347 : m = stbi__get_marker(j); 001c0 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 001c7 e8 00 00 00 00 call stbi__get_marker 001cc 0f b6 c0 movzx eax, al 001cf 89 45 04 mov DWORD PTR m$[rbp], eax ; 3348 : } else { 001d2 eb 2c jmp SHORT $LN15@stbi__deco $LN14@stbi__deco: ; 3349 : if (!stbi__process_marker(j, m)) 001d4 8b 55 04 mov edx, DWORD PTR m$[rbp] 001d7 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 001de e8 00 00 00 00 call stbi__process_marker 001e3 85 c0 test eax, eax 001e5 75 07 jne SHORT $LN18@stbi__deco ; 3350 : return 1; 001e7 b8 01 00 00 00 mov eax, 1 001ec eb 39 jmp SHORT $LN1@stbi__deco $LN18@stbi__deco: ; 3351 : m = stbi__get_marker(j); 001ee 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 001f5 e8 00 00 00 00 call stbi__get_marker 001fa 0f b6 c0 movzx eax, al 001fd 89 45 04 mov DWORD PTR m$[rbp], eax $LN15@stbi__deco: $LN9@stbi__deco: ; 3352 : } ; 3353 : } 00200 e9 a6 fe ff ff jmp $LN5@stbi__deco $LN6@stbi__deco: ; 3354 : if (j->progressive) 00205 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 0020c 83 b8 30 48 00 00 00 cmp DWORD PTR [rax+18480], 0 00213 74 0d je SHORT $LN19@stbi__deco ; 3355 : stbi__jpeg_finish(j); 00215 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 0021c e8 00 00 00 00 call stbi__jpeg_finish 00221 90 npad 1 $LN19@stbi__deco: ; 3356 : return 1; 00222 b8 01 00 00 00 mov eax, 1 $LN1@stbi__deco: ; 3357 : } 00227 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 0022e 5f pop rdi 0022f 5d pop rbp 00230 c3 ret 0 stbi__decode_jpeg_image ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__skip_jpeg_junk_at_end _TEXT SEGMENT x$1 = 4 j$ = 256 stbi__skip_jpeg_junk_at_end PROC ; COMDAT ; 3293 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 $LN2@stbi__skip: ; 3294 : // some JPEGs have junk at end, skip over it but if we find what looks ; 3295 : // like a valid marker, resume there ; 3296 : while (!stbi__at_eof(j->s)) { 00020 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00027 48 8b 08 mov rcx, QWORD PTR [rax] 0002a e8 00 00 00 00 call stbi__at_eof 0002f 85 c0 test eax, eax 00031 75 65 jne SHORT $LN3@stbi__skip ; 3297 : int x = stbi__get8(j->s); 00033 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 0003a 48 8b 08 mov rcx, QWORD PTR [rax] 0003d e8 00 00 00 00 call stbi__get8 00042 0f b6 c0 movzx eax, al 00045 89 45 04 mov DWORD PTR x$1[rbp], eax $LN4@stbi__skip: ; 3298 : while (x == 255) { // might be a marker 00048 81 7d 04 ff 00 00 00 cmp DWORD PTR x$1[rbp], 255 ; 000000ffH 0004f 75 45 jne SHORT $LN5@stbi__skip ; 3299 : if (stbi__at_eof(j->s)) 00051 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00058 48 8b 08 mov rcx, QWORD PTR [rax] 0005b e8 00 00 00 00 call stbi__at_eof 00060 85 c0 test eax, eax 00062 74 07 je SHORT $LN6@stbi__skip ; 3300 : return STBI__MARKER_none; 00064 b8 ff 00 00 00 mov eax, 255 ; 000000ffH 00069 eb 32 jmp SHORT $LN1@stbi__skip $LN6@stbi__skip: ; 3301 : x = stbi__get8(j->s); 0006b 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00072 48 8b 08 mov rcx, QWORD PTR [rax] 00075 e8 00 00 00 00 call stbi__get8 0007a 0f b6 c0 movzx eax, al 0007d 89 45 04 mov DWORD PTR x$1[rbp], eax ; 3302 : if (x != 0x00 && x != 0xff) { 00080 83 7d 04 00 cmp DWORD PTR x$1[rbp], 0 00084 74 0e je SHORT $LN7@stbi__skip 00086 81 7d 04 ff 00 00 00 cmp DWORD PTR x$1[rbp], 255 ; 000000ffH 0008d 74 05 je SHORT $LN7@stbi__skip ; 3303 : // not a stuffed zero or lead-in to another marker, looks ; 3304 : // like an actual marker, return it ; 3305 : return x; 0008f 8b 45 04 mov eax, DWORD PTR x$1[rbp] 00092 eb 09 jmp SHORT $LN1@stbi__skip $LN7@stbi__skip: ; 3306 : } ; 3307 : // stuffed zero has x=0 now which ends the loop, meaning we go ; 3308 : // back to regular scan loop. ; 3309 : // repeated 0xff keeps trying to read the next byte of the marker. ; 3310 : } 00094 eb b2 jmp SHORT $LN4@stbi__skip $LN5@stbi__skip: ; 3311 : } 00096 eb 88 jmp SHORT $LN2@stbi__skip $LN3@stbi__skip: ; 3312 : return STBI__MARKER_none; 00098 b8 ff 00 00 00 mov eax, 255 ; 000000ffH $LN1@stbi__skip: ; 3313 : } 0009d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000a4 5f pop rdi 000a5 5d pop rbp 000a6 c3 ret 0 stbi__skip_jpeg_junk_at_end ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__decode_jpeg_header _TEXT SEGMENT m$ = 4 tv131 = 212 z$ = 256 scan$ = 264 stbi__decode_jpeg_header PROC ; COMDAT ; 3264 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 3265 : int m; ; 3266 : z->jfif = 0; 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR z$[rbp] 0002b c7 80 48 48 00 00 00 00 00 00 mov DWORD PTR [rax+18504], 0 ; 3267 : z->app14_color_transform = -1; // valid values are 0,1,2 00035 48 8b 85 00 01 00 00 mov rax, QWORD PTR z$[rbp] 0003c c7 80 4c 48 00 00 ff ff ff ff mov DWORD PTR [rax+18508], -1 ; 3268 : z->marker = STBI__MARKER_none; // initialize cached marker to empty 00046 48 8b 85 00 01 00 00 mov rax, QWORD PTR z$[rbp] 0004d c6 80 28 48 00 00 ff mov BYTE PTR [rax+18472], 255 ; 000000ffH ; 3269 : m = stbi__get_marker(z); 00054 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 0005b e8 00 00 00 00 call stbi__get_marker 00060 0f b6 c0 movzx eax, al 00063 89 45 04 mov DWORD PTR m$[rbp], eax ; 3270 : if (!stbi__SOI(m)) 00066 81 7d 04 d8 00 00 00 cmp DWORD PTR m$[rbp], 216 ; 000000d8H 0006d 74 11 je SHORT $LN6@stbi__deco ; 3271 : return stbi__err("no SOI", "Corrupt JPEG"); 0006f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_06CLMBLEP@no?5SOI@ 00076 e8 00 00 00 00 call stbi__err 0007b e9 04 01 00 00 jmp $LN1@stbi__deco $LN6@stbi__deco: ; 3272 : if (scan == STBI__SCAN_type) 00080 83 bd 08 01 00 00 01 cmp DWORD PTR scan$[rbp], 1 00087 75 0a jne SHORT $LN7@stbi__deco ; 3273 : return 1; 00089 b8 01 00 00 00 mov eax, 1 0008e e9 f1 00 00 00 jmp $LN1@stbi__deco $LN7@stbi__deco: ; 3274 : m = stbi__get_marker(z); 00093 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 0009a e8 00 00 00 00 call stbi__get_marker 0009f 0f b6 c0 movzx eax, al 000a2 89 45 04 mov DWORD PTR m$[rbp], eax $LN2@stbi__deco: ; 3275 : while (!stbi__SOF(m)) { 000a5 81 7d 04 c0 00 00 00 cmp DWORD PTR m$[rbp], 192 ; 000000c0H 000ac 0f 84 81 00 00 00 je $LN3@stbi__deco 000b2 81 7d 04 c1 00 00 00 cmp DWORD PTR m$[rbp], 193 ; 000000c1H 000b9 74 78 je SHORT $LN3@stbi__deco 000bb 81 7d 04 c2 00 00 00 cmp DWORD PTR m$[rbp], 194 ; 000000c2H 000c2 74 6f je SHORT $LN3@stbi__deco ; 3276 : if (!stbi__process_marker(z, m)) 000c4 8b 55 04 mov edx, DWORD PTR m$[rbp] 000c7 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 000ce e8 00 00 00 00 call stbi__process_marker 000d3 85 c0 test eax, eax 000d5 75 07 jne SHORT $LN8@stbi__deco ; 3277 : return 0; 000d7 33 c0 xor eax, eax 000d9 e9 a6 00 00 00 jmp $LN1@stbi__deco $LN8@stbi__deco: ; 3278 : m = stbi__get_marker(z); 000de 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 000e5 e8 00 00 00 00 call stbi__get_marker 000ea 0f b6 c0 movzx eax, al 000ed 89 45 04 mov DWORD PTR m$[rbp], eax $LN4@stbi__deco: ; 3279 : while (m == STBI__MARKER_none) { 000f0 81 7d 04 ff 00 00 00 cmp DWORD PTR m$[rbp], 255 ; 000000ffH 000f7 75 35 jne SHORT $LN5@stbi__deco ; 3280 : // some files have extra padding after their blocks, so ok, we'll scan ; 3281 : if (stbi__at_eof(z->s)) 000f9 48 8b 85 00 01 00 00 mov rax, QWORD PTR z$[rbp] 00100 48 8b 08 mov rcx, QWORD PTR [rax] 00103 e8 00 00 00 00 call stbi__at_eof 00108 85 c0 test eax, eax 0010a 74 0e je SHORT $LN9@stbi__deco ; 3282 : return stbi__err("no SOF", "Corrupt JPEG"); 0010c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_06IFCEAHIA@no?5SOF@ 00113 e8 00 00 00 00 call stbi__err 00118 eb 6a jmp SHORT $LN1@stbi__deco $LN9@stbi__deco: ; 3283 : m = stbi__get_marker(z); 0011a 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 00121 e8 00 00 00 00 call stbi__get_marker 00126 0f b6 c0 movzx eax, al 00129 89 45 04 mov DWORD PTR m$[rbp], eax ; 3284 : } 0012c eb c2 jmp SHORT $LN4@stbi__deco $LN5@stbi__deco: ; 3285 : } 0012e e9 72 ff ff ff jmp $LN2@stbi__deco $LN3@stbi__deco: ; 3286 : z->progressive = stbi__SOF_progressive(m); 00133 81 7d 04 c2 00 00 00 cmp DWORD PTR m$[rbp], 194 ; 000000c2H 0013a 75 0c jne SHORT $LN12@stbi__deco 0013c c7 85 d4 00 00 00 01 00 00 00 mov DWORD PTR tv131[rbp], 1 00146 eb 0a jmp SHORT $LN13@stbi__deco $LN12@stbi__deco: 00148 c7 85 d4 00 00 00 00 00 00 00 mov DWORD PTR tv131[rbp], 0 $LN13@stbi__deco: 00152 48 8b 85 00 01 00 00 mov rax, QWORD PTR z$[rbp] 00159 8b 8d d4 00 00 00 mov ecx, DWORD PTR tv131[rbp] 0015f 89 88 30 48 00 00 mov DWORD PTR [rax+18480], ecx ; 3287 : if (!stbi__process_frame_header(z, scan)) 00165 8b 95 08 01 00 00 mov edx, DWORD PTR scan$[rbp] 0016b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 00172 e8 00 00 00 00 call stbi__process_frame_header 00177 85 c0 test eax, eax 00179 75 04 jne SHORT $LN10@stbi__deco ; 3288 : return 0; 0017b 33 c0 xor eax, eax 0017d eb 05 jmp SHORT $LN1@stbi__deco $LN10@stbi__deco: ; 3289 : return 1; 0017f b8 01 00 00 00 mov eax, 1 $LN1@stbi__deco: ; 3290 : } 00184 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 0018b 5f pop rdi 0018c 5d pop rbp 0018d c3 ret 0 stbi__decode_jpeg_header ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__process_frame_header _TEXT SEGMENT s$ = 8 Lf$ = 36 p$ = 68 i$ = 100 q$ = 132 h_max$ = 164 v_max$ = 196 c$ = 228 tv285 = 440 tv294 = 440 z$ = 480 scan$ = 488 stbi__process_frame_header PROC ; COMDAT ; 3131 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 3132 : stbi__context *s = z->s; 00024 48 8b 85 e0 01 00 00 mov rax, QWORD PTR z$[rbp] 0002b 48 8b 00 mov rax, QWORD PTR [rax] 0002e 48 89 45 08 mov QWORD PTR s$[rbp], rax ; 3133 : int Lf, p, i, q, h_max = 1, v_max = 1, c; 00032 c7 85 a4 00 00 00 01 00 00 00 mov DWORD PTR h_max$[rbp], 1 0003c c7 85 c4 00 00 00 01 00 00 00 mov DWORD PTR v_max$[rbp], 1 ; 3134 : Lf = stbi__get16be(s); 00046 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 0004a e8 00 00 00 00 call stbi__get16be 0004f 89 45 24 mov DWORD PTR Lf$[rbp], eax ; 3135 : if (Lf < 11) 00052 83 7d 24 0b cmp DWORD PTR Lf$[rbp], 11 00056 7d 11 jge SHORT $LN17@stbi__proc ; 3136 : return stbi__err("bad SOF len", "Corrupt JPEG"); // JPEG 00058 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@DOFMJEMP@bad?5SOF?5len@ 0005f e8 00 00 00 00 call stbi__err 00064 e9 11 09 00 00 jmp $LN1@stbi__proc $LN17@stbi__proc: ; 3137 : p = stbi__get8(s); 00069 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 0006d e8 00 00 00 00 call stbi__get8 00072 0f b6 c0 movzx eax, al 00075 89 45 44 mov DWORD PTR p$[rbp], eax ; 3138 : if (p != 8) 00078 83 7d 44 08 cmp DWORD PTR p$[rbp], 8 0007c 74 11 je SHORT $LN18@stbi__proc ; 3139 : return stbi__err("only 8-bit", 0007e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@BCINMEBJ@only?58?9bit@ 00085 e8 00 00 00 00 call stbi__err 0008a e9 eb 08 00 00 jmp $LN1@stbi__proc $LN18@stbi__proc: ; 3140 : "JPEG format not supported: 8-bit only"); // JPEG baseline ; 3141 : s->img_y = stbi__get16be(s); 0008f 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00093 e8 00 00 00 00 call stbi__get16be 00098 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 0009c 89 41 04 mov DWORD PTR [rcx+4], eax ; 3142 : if (s->img_y == 0) 0009f 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 000a3 83 78 04 00 cmp DWORD PTR [rax+4], 0 000a7 75 11 jne SHORT $LN19@stbi__proc ; 3143 : return stbi__err( 000a9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@LNEGOMA@no?5header?5height@ 000b0 e8 00 00 00 00 call stbi__err 000b5 e9 c0 08 00 00 jmp $LN1@stbi__proc $LN19@stbi__proc: ; 3144 : "no header height", ; 3145 : "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG ; 3146 : s->img_x = stbi__get16be(s); 000ba 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 000be e8 00 00 00 00 call stbi__get16be 000c3 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 000c7 89 01 mov DWORD PTR [rcx], eax ; 3147 : if (s->img_x == 0) 000c9 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 000cd 83 38 00 cmp DWORD PTR [rax], 0 000d0 75 11 jne SHORT $LN20@stbi__proc ; 3148 : return stbi__err("0 width", "Corrupt JPEG"); // JPEG requires 000d2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07BIDACDEF@0?5width@ 000d9 e8 00 00 00 00 call stbi__err 000de e9 97 08 00 00 jmp $LN1@stbi__proc $LN20@stbi__proc: ; 3149 : if (s->img_y > STBI_MAX_DIMENSIONS) 000e3 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 000e7 81 78 04 00 00 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H 000ee 76 11 jbe SHORT $LN21@stbi__proc ; 3150 : return stbi__err("too large", "Very large image (corrupt?)"); 000f0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 000f7 e8 00 00 00 00 call stbi__err 000fc e9 79 08 00 00 jmp $LN1@stbi__proc $LN21@stbi__proc: ; 3151 : if (s->img_x > STBI_MAX_DIMENSIONS) 00101 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00105 81 38 00 00 00 01 cmp DWORD PTR [rax], 16777216 ; 01000000H 0010b 76 11 jbe SHORT $LN22@stbi__proc ; 3152 : return stbi__err("too large", "Very large image (corrupt?)"); 0010d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00114 e8 00 00 00 00 call stbi__err 00119 e9 5c 08 00 00 jmp $LN1@stbi__proc $LN22@stbi__proc: ; 3153 : c = stbi__get8(s); 0011e 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00122 e8 00 00 00 00 call stbi__get8 00127 0f b6 c0 movzx eax, al 0012a 89 85 e4 00 00 00 mov DWORD PTR c$[rbp], eax ; 3154 : if (c != 3 && c != 1 && c != 4) 00130 83 bd e4 00 00 00 03 cmp DWORD PTR c$[rbp], 3 00137 74 23 je SHORT $LN23@stbi__proc 00139 83 bd e4 00 00 00 01 cmp DWORD PTR c$[rbp], 1 00140 74 1a je SHORT $LN23@stbi__proc 00142 83 bd e4 00 00 00 04 cmp DWORD PTR c$[rbp], 4 00149 74 11 je SHORT $LN23@stbi__proc ; 3155 : return stbi__err("bad component count", "Corrupt JPEG"); 0014b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@DAPHADHL@bad?5component?5count@ 00152 e8 00 00 00 00 call stbi__err 00157 e9 1e 08 00 00 jmp $LN1@stbi__proc $LN23@stbi__proc: ; 3156 : s->img_n = c; 0015c 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00160 8b 8d e4 00 00 00 mov ecx, DWORD PTR c$[rbp] 00166 89 48 08 mov DWORD PTR [rax+8], ecx ; 3157 : for (i = 0; i < c; ++i) { 00169 c7 45 64 00 00 00 00 mov DWORD PTR i$[rbp], 0 00170 eb 08 jmp SHORT $LN4@stbi__proc $LN2@stbi__proc: 00172 8b 45 64 mov eax, DWORD PTR i$[rbp] 00175 ff c0 inc eax 00177 89 45 64 mov DWORD PTR i$[rbp], eax $LN4@stbi__proc: 0017a 8b 85 e4 00 00 00 mov eax, DWORD PTR c$[rbp] 00180 39 45 64 cmp DWORD PTR i$[rbp], eax 00183 7d 38 jge SHORT $LN3@stbi__proc ; 3158 : z->img_comp[i].data = NULL; 00185 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00189 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0018d 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00194 48 c7 84 01 d0 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18128], 0 ; 3159 : z->img_comp[i].linebuf = NULL; 001a0 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 001a4 48 6b c0 60 imul rax, rax, 96 ; 00000060H 001a8 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 001af 48 c7 84 01 e8 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18152], 0 ; 3160 : } 001bb eb b5 jmp SHORT $LN2@stbi__proc $LN3@stbi__proc: ; 3161 : ; 3162 : if (Lf != 8 + 3 * s->img_n) 001bd 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 001c1 6b 40 08 03 imul eax, DWORD PTR [rax+8], 3 001c5 83 c0 08 add eax, 8 001c8 39 45 24 cmp DWORD PTR Lf$[rbp], eax 001cb 74 11 je SHORT $LN24@stbi__proc ; 3163 : return stbi__err("bad SOF len", "Corrupt JPEG"); 001cd 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@DOFMJEMP@bad?5SOF?5len@ 001d4 e8 00 00 00 00 call stbi__err 001d9 e9 9c 07 00 00 jmp $LN1@stbi__proc $LN24@stbi__proc: ; 3164 : ; 3165 : z->rgb = 0; 001de 48 8b 85 e0 01 00 00 mov rax, QWORD PTR z$[rbp] 001e5 c7 80 50 48 00 00 00 00 00 00 mov DWORD PTR [rax+18512], 0 ; 3166 : for (i = 0; i < s->img_n; ++i) { 001ef c7 45 64 00 00 00 00 mov DWORD PTR i$[rbp], 0 001f6 eb 08 jmp SHORT $LN7@stbi__proc $LN5@stbi__proc: 001f8 8b 45 64 mov eax, DWORD PTR i$[rbp] 001fb ff c0 inc eax 001fd 89 45 64 mov DWORD PTR i$[rbp], eax $LN7@stbi__proc: 00200 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00204 8b 40 08 mov eax, DWORD PTR [rax+8] 00207 39 45 64 cmp DWORD PTR i$[rbp], eax 0020a 0f 8d 96 01 00 00 jge $LN6@stbi__proc ; 3167 : static const unsigned char rgb[3] = { 'R', 'G', 'B' }; ; 3168 : z->img_comp[i].id = stbi__get8(s); 00210 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00214 e8 00 00 00 00 call stbi__get8 00219 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 0021d 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00221 0f b6 c0 movzx eax, al 00224 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 0022b 89 84 0a a0 46 00 00 mov DWORD PTR [rdx+rcx+18080], eax ; 3169 : if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) 00232 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00236 83 78 08 03 cmp DWORD PTR [rax+8], 3 0023a 75 43 jne SHORT $LN25@stbi__proc 0023c 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00240 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00244 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00248 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?rgb@?5??stbi__process_frame_header@@9@9 0024f 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00253 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 0025a 39 8c 02 a0 46 00 00 cmp DWORD PTR [rdx+rax+18080], ecx 00261 75 1c jne SHORT $LN25@stbi__proc ; 3170 : ++z->rgb; 00263 48 8b 85 e0 01 00 00 mov rax, QWORD PTR z$[rbp] 0026a 8b 80 50 48 00 00 mov eax, DWORD PTR [rax+18512] 00270 ff c0 inc eax 00272 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00279 89 81 50 48 00 00 mov DWORD PTR [rcx+18512], eax $LN25@stbi__proc: ; 3171 : q = stbi__get8(s); 0027f 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00283 e8 00 00 00 00 call stbi__get8 00288 0f b6 c0 movzx eax, al 0028b 89 85 84 00 00 00 mov DWORD PTR q$[rbp], eax ; 3172 : z->img_comp[i].h = (q >> 4); 00291 8b 85 84 00 00 00 mov eax, DWORD PTR q$[rbp] 00297 c1 f8 04 sar eax, 4 0029a 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 0029e 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 002a2 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 002a9 89 84 0a a4 46 00 00 mov DWORD PTR [rdx+rcx+18084], eax ; 3173 : if (!z->img_comp[i].h || z->img_comp[i].h > 4) 002b0 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 002b4 48 6b c0 60 imul rax, rax, 96 ; 00000060H 002b8 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 002bf 83 bc 01 a4 46 00 00 00 cmp DWORD PTR [rcx+rax+18084], 0 002c7 74 19 je SHORT $LN27@stbi__proc 002c9 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 002cd 48 6b c0 60 imul rax, rax, 96 ; 00000060H 002d1 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 002d8 83 bc 01 a4 46 00 00 04 cmp DWORD PTR [rcx+rax+18084], 4 002e0 7e 11 jle SHORT $LN26@stbi__proc $LN27@stbi__proc: ; 3174 : return stbi__err("bad H", "Corrupt JPEG"); 002e2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05BLPKENEJ@bad?5H@ 002e9 e8 00 00 00 00 call stbi__err 002ee e9 87 06 00 00 jmp $LN1@stbi__proc $LN26@stbi__proc: ; 3175 : z->img_comp[i].v = q & 15; 002f3 8b 85 84 00 00 00 mov eax, DWORD PTR q$[rbp] 002f9 83 e0 0f and eax, 15 002fc 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00300 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00304 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 0030b 89 84 0a a8 46 00 00 mov DWORD PTR [rdx+rcx+18088], eax ; 3176 : if (!z->img_comp[i].v || z->img_comp[i].v > 4) 00312 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00316 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0031a 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00321 83 bc 01 a8 46 00 00 00 cmp DWORD PTR [rcx+rax+18088], 0 00329 74 19 je SHORT $LN29@stbi__proc 0032b 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 0032f 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00333 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0033a 83 bc 01 a8 46 00 00 04 cmp DWORD PTR [rcx+rax+18088], 4 00342 7e 11 jle SHORT $LN28@stbi__proc $LN29@stbi__proc: ; 3177 : return stbi__err("bad V", "Corrupt JPEG"); 00344 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05MPLLHCJG@bad?5V@ 0034b e8 00 00 00 00 call stbi__err 00350 e9 25 06 00 00 jmp $LN1@stbi__proc $LN28@stbi__proc: ; 3178 : z->img_comp[i].tq = stbi__get8(s); 00355 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00359 e8 00 00 00 00 call stbi__get8 0035e 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00362 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00366 0f b6 c0 movzx eax, al 00369 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 00370 89 84 0a ac 46 00 00 mov DWORD PTR [rdx+rcx+18092], eax ; 3179 : if (z->img_comp[i].tq > 3) 00377 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 0037b 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0037f 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00386 83 bc 01 ac 46 00 00 03 cmp DWORD PTR [rcx+rax+18092], 3 0038e 7e 11 jle SHORT $LN30@stbi__proc ; 3180 : return stbi__err("bad TQ", "Corrupt JPEG"); 00390 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_06LJIHDFHI@bad?5TQ@ 00397 e8 00 00 00 00 call stbi__err 0039c e9 d9 05 00 00 jmp $LN1@stbi__proc $LN30@stbi__proc: ; 3181 : } 003a1 e9 52 fe ff ff jmp $LN5@stbi__proc $LN6@stbi__proc: ; 3182 : ; 3183 : if (scan != STBI__SCAN_load) 003a6 83 bd e8 01 00 00 00 cmp DWORD PTR scan$[rbp], 0 003ad 74 0a je SHORT $LN31@stbi__proc ; 3184 : return 1; 003af b8 01 00 00 00 mov eax, 1 003b4 e9 c1 05 00 00 jmp $LN1@stbi__proc $LN31@stbi__proc: ; 3185 : ; 3186 : if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) 003b9 45 33 c9 xor r9d, r9d 003bc 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 003c0 44 8b 40 08 mov r8d, DWORD PTR [rax+8] 003c4 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 003c8 8b 50 04 mov edx, DWORD PTR [rax+4] 003cb 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 003cf 8b 08 mov ecx, DWORD PTR [rax] 003d1 e8 00 00 00 00 call stbi__mad3sizes_valid 003d6 85 c0 test eax, eax 003d8 75 11 jne SHORT $LN32@stbi__proc ; 3187 : return stbi__err("too large", "Image too large to decode"); 003da 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 003e1 e8 00 00 00 00 call stbi__err 003e6 e9 8f 05 00 00 jmp $LN1@stbi__proc $LN32@stbi__proc: ; 3188 : ; 3189 : for (i = 0; i < s->img_n; ++i) { 003eb c7 45 64 00 00 00 00 mov DWORD PTR i$[rbp], 0 003f2 eb 08 jmp SHORT $LN10@stbi__proc $LN8@stbi__proc: 003f4 8b 45 64 mov eax, DWORD PTR i$[rbp] 003f7 ff c0 inc eax 003f9 89 45 64 mov DWORD PTR i$[rbp], eax $LN10@stbi__proc: 003fc 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00400 8b 40 08 mov eax, DWORD PTR [rax+8] 00403 39 45 64 cmp DWORD PTR i$[rbp], eax 00406 7d 79 jge SHORT $LN9@stbi__proc ; 3190 : if (z->img_comp[i].h > h_max) 00408 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 0040c 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00410 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00417 8b 95 a4 00 00 00 mov edx, DWORD PTR h_max$[rbp] 0041d 39 94 01 a4 46 00 00 cmp DWORD PTR [rcx+rax+18084], edx 00424 7e 1c jle SHORT $LN33@stbi__proc ; 3191 : h_max = z->img_comp[i].h; 00426 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 0042a 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0042e 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00435 8b 84 01 a4 46 00 00 mov eax, DWORD PTR [rcx+rax+18084] 0043c 89 85 a4 00 00 00 mov DWORD PTR h_max$[rbp], eax $LN33@stbi__proc: ; 3192 : if (z->img_comp[i].v > v_max) 00442 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00446 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0044a 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00451 8b 95 c4 00 00 00 mov edx, DWORD PTR v_max$[rbp] 00457 39 94 01 a8 46 00 00 cmp DWORD PTR [rcx+rax+18088], edx 0045e 7e 1c jle SHORT $LN34@stbi__proc ; 3193 : v_max = z->img_comp[i].v; 00460 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00464 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00468 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0046f 8b 84 01 a8 46 00 00 mov eax, DWORD PTR [rcx+rax+18088] 00476 89 85 c4 00 00 00 mov DWORD PTR v_max$[rbp], eax $LN34@stbi__proc: ; 3194 : } 0047c e9 73 ff ff ff jmp $LN8@stbi__proc $LN9@stbi__proc: ; 3195 : ; 3196 : // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios ; 3197 : // and I've never seen a non-corrupted JPEG file actually use them ; 3198 : for (i = 0; i < s->img_n; ++i) { 00481 c7 45 64 00 00 00 00 mov DWORD PTR i$[rbp], 0 00488 eb 08 jmp SHORT $LN13@stbi__proc $LN11@stbi__proc: 0048a 8b 45 64 mov eax, DWORD PTR i$[rbp] 0048d ff c0 inc eax 0048f 89 45 64 mov DWORD PTR i$[rbp], eax $LN13@stbi__proc: 00492 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00496 8b 40 08 mov eax, DWORD PTR [rax+8] 00499 39 45 64 cmp DWORD PTR i$[rbp], eax 0049c 0f 8d 8b 00 00 00 jge $LN12@stbi__proc ; 3199 : if (h_max % z->img_comp[i].h != 0) 004a2 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 004a6 48 6b c0 60 imul rax, rax, 96 ; 00000060H 004aa 48 89 85 b8 01 00 00 mov QWORD PTR tv285[rbp], rax 004b1 8b 85 a4 00 00 00 mov eax, DWORD PTR h_max$[rbp] 004b7 99 cdq 004b8 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 004bf 4c 8b 85 b8 01 00 00 mov r8, QWORD PTR tv285[rbp] 004c6 42 f7 bc 01 a4 46 00 00 idiv DWORD PTR [rcx+r8+18084] 004ce 8b c2 mov eax, edx 004d0 85 c0 test eax, eax 004d2 74 11 je SHORT $LN35@stbi__proc ; 3200 : return stbi__err("bad H", "Corrupt JPEG"); 004d4 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05BLPKENEJ@bad?5H@ 004db e8 00 00 00 00 call stbi__err 004e0 e9 95 04 00 00 jmp $LN1@stbi__proc $LN35@stbi__proc: ; 3201 : if (v_max % z->img_comp[i].v != 0) 004e5 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 004e9 48 6b c0 60 imul rax, rax, 96 ; 00000060H 004ed 48 89 85 b8 01 00 00 mov QWORD PTR tv294[rbp], rax 004f4 8b 85 c4 00 00 00 mov eax, DWORD PTR v_max$[rbp] 004fa 99 cdq 004fb 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00502 4c 8b 85 b8 01 00 00 mov r8, QWORD PTR tv294[rbp] 00509 42 f7 bc 01 a8 46 00 00 idiv DWORD PTR [rcx+r8+18088] 00511 8b c2 mov eax, edx 00513 85 c0 test eax, eax 00515 74 11 je SHORT $LN36@stbi__proc ; 3202 : return stbi__err("bad V", "Corrupt JPEG"); 00517 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_05MPLLHCJG@bad?5V@ 0051e e8 00 00 00 00 call stbi__err 00523 e9 52 04 00 00 jmp $LN1@stbi__proc $LN36@stbi__proc: ; 3203 : } 00528 e9 5d ff ff ff jmp $LN11@stbi__proc $LN12@stbi__proc: ; 3204 : ; 3205 : // compute interleaved mcu info ; 3206 : z->img_h_max = h_max; 0052d 48 8b 85 e0 01 00 00 mov rax, QWORD PTR z$[rbp] 00534 8b 8d a4 00 00 00 mov ecx, DWORD PTR h_max$[rbp] 0053a 89 88 88 46 00 00 mov DWORD PTR [rax+18056], ecx ; 3207 : z->img_v_max = v_max; 00540 48 8b 85 e0 01 00 00 mov rax, QWORD PTR z$[rbp] 00547 8b 8d c4 00 00 00 mov ecx, DWORD PTR v_max$[rbp] 0054d 89 88 8c 46 00 00 mov DWORD PTR [rax+18060], ecx ; 3208 : z->img_mcu_w = h_max * 8; 00553 8b 85 a4 00 00 00 mov eax, DWORD PTR h_max$[rbp] 00559 c1 e0 03 shl eax, 3 0055c 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00563 89 81 98 46 00 00 mov DWORD PTR [rcx+18072], eax ; 3209 : z->img_mcu_h = v_max * 8; 00569 8b 85 c4 00 00 00 mov eax, DWORD PTR v_max$[rbp] 0056f c1 e0 03 shl eax, 3 00572 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00579 89 81 9c 46 00 00 mov DWORD PTR [rcx+18076], eax ; 3210 : // these sizes can't be more than 17 bits ; 3211 : z->img_mcu_x = (s->img_x + z->img_mcu_w - 1) / z->img_mcu_w; 0057f 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 00583 8b 00 mov eax, DWORD PTR [rax] 00585 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0058c 8b 89 98 46 00 00 mov ecx, DWORD PTR [rcx+18072] 00592 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] 00596 33 d2 xor edx, edx 00598 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0059f f7 b1 98 46 00 00 div DWORD PTR [rcx+18072] 005a5 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 005ac 89 81 90 46 00 00 mov DWORD PTR [rcx+18064], eax ; 3212 : z->img_mcu_y = (s->img_y + z->img_mcu_h - 1) / z->img_mcu_h; 005b2 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 005b6 8b 40 04 mov eax, DWORD PTR [rax+4] 005b9 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 005c0 8b 89 9c 46 00 00 mov ecx, DWORD PTR [rcx+18076] 005c6 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] 005ca 33 d2 xor edx, edx 005cc 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 005d3 f7 b1 9c 46 00 00 div DWORD PTR [rcx+18076] 005d9 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 005e0 89 81 94 46 00 00 mov DWORD PTR [rcx+18068], eax ; 3213 : ; 3214 : for (i = 0; i < s->img_n; ++i) { 005e6 c7 45 64 00 00 00 00 mov DWORD PTR i$[rbp], 0 005ed eb 08 jmp SHORT $LN16@stbi__proc $LN14@stbi__proc: 005ef 8b 45 64 mov eax, DWORD PTR i$[rbp] 005f2 ff c0 inc eax 005f4 89 45 64 mov DWORD PTR i$[rbp], eax $LN16@stbi__proc: 005f7 48 8b 45 08 mov rax, QWORD PTR s$[rbp] 005fb 8b 40 08 mov eax, DWORD PTR [rax+8] 005fe 39 45 64 cmp DWORD PTR i$[rbp], eax 00601 0f 8d 6e 03 00 00 jge $LN15@stbi__proc ; 3215 : // number of effective pixels (e.g. for non-interleaved MCU) ; 3216 : z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max - 1) / h_max; 00607 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 0060b 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0060f 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 00613 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 0061a 8b 09 mov ecx, DWORD PTR [rcx] 0061c 0f af 8c 02 a4 46 00 00 imul ecx, DWORD PTR [rdx+rax+18084] 00624 8b c1 mov eax, ecx 00626 8b 8d a4 00 00 00 mov ecx, DWORD PTR h_max$[rbp] 0062c 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] 00630 33 d2 xor edx, edx 00632 f7 b5 a4 00 00 00 div DWORD PTR h_max$[rbp] 00638 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 0063c 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00640 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 00647 89 84 0a bc 46 00 00 mov DWORD PTR [rdx+rcx+18108], eax ; 3217 : z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max - 1) / v_max; 0064e 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00652 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00656 48 8b 4d 08 mov rcx, QWORD PTR s$[rbp] 0065a 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 00661 8b 49 04 mov ecx, DWORD PTR [rcx+4] 00664 0f af 8c 02 a8 46 00 00 imul ecx, DWORD PTR [rdx+rax+18088] 0066c 8b c1 mov eax, ecx 0066e 8b 8d c4 00 00 00 mov ecx, DWORD PTR v_max$[rbp] 00674 8d 44 08 ff lea eax, DWORD PTR [rax+rcx-1] 00678 33 d2 xor edx, edx 0067a f7 b5 c4 00 00 00 div DWORD PTR v_max$[rbp] 00680 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00684 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00688 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 0068f 89 84 0a c0 46 00 00 mov DWORD PTR [rdx+rcx+18112], eax ; 3218 : // to simplify generation, we'll allocate enough memory to decode ; 3219 : // the bogus oversized data from using interleaved MCUs and their ; 3220 : // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't ; 3221 : // discard the extra data until colorspace conversion ; 3222 : // ; 3223 : // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) ; 3224 : // so these muls can't overflow with 32-bit ints (which we require) ; 3225 : z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; 00696 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 0069a 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0069e 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 006a5 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 006ac 8b 89 90 46 00 00 mov ecx, DWORD PTR [rcx+18064] 006b2 0f af 8c 02 a4 46 00 00 imul ecx, DWORD PTR [rdx+rax+18084] 006ba 8b c1 mov eax, ecx 006bc c1 e0 03 shl eax, 3 006bf 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 006c3 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 006c7 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 006ce 89 84 0a c4 46 00 00 mov DWORD PTR [rdx+rcx+18116], eax ; 3226 : z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; 006d5 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 006d9 48 6b c0 60 imul rax, rax, 96 ; 00000060H 006dd 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 006e4 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 006eb 8b 89 94 46 00 00 mov ecx, DWORD PTR [rcx+18068] 006f1 0f af 8c 02 a8 46 00 00 imul ecx, DWORD PTR [rdx+rax+18088] 006f9 8b c1 mov eax, ecx 006fb c1 e0 03 shl eax, 3 006fe 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00702 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00706 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 0070d 89 84 0a c8 46 00 00 mov DWORD PTR [rdx+rcx+18120], eax ; 3227 : z->img_comp[i].coeff = 0; 00714 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00718 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0071c 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00723 48 c7 84 01 f0 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18160], 0 ; 3228 : z->img_comp[i].raw_coeff = 0; 0072f 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00733 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00737 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0073e 48 c7 84 01 e0 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18144], 0 ; 3229 : z->img_comp[i].linebuf = NULL; 0074a 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 0074e 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00752 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00759 48 c7 84 01 e8 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18152], 0 ; 3230 : z->img_comp[i].raw_data = 00765 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00769 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0076d 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00771 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00775 41 b8 0f 00 00 00 mov r8d, 15 0077b 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 00782 8b 94 02 c8 46 00 00 mov edx, DWORD PTR [rdx+rax+18120] 00789 48 8b 85 e0 01 00 00 mov rax, QWORD PTR z$[rbp] 00790 8b 8c 08 c4 46 00 00 mov ecx, DWORD PTR [rax+rcx+18116] 00797 e8 00 00 00 00 call stbi__malloc_mad2 0079c 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 007a0 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 007a4 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 007ab 48 89 84 0a d8 46 00 00 mov QWORD PTR [rdx+rcx+18136], rax ; 3231 : stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); ; 3232 : if (z->img_comp[i].raw_data == NULL) 007b3 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 007b7 48 6b c0 60 imul rax, rax, 96 ; 00000060H 007bb 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 007c2 48 83 bc 01 d8 46 00 00 00 cmp QWORD PTR [rcx+rax+18136], 0 007cb 75 27 jne SHORT $LN37@stbi__proc ; 3233 : return stbi__free_jpeg_components(z, i + 1, 007cd 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 007d4 e8 00 00 00 00 call stbi__err 007d9 8b 4d 64 mov ecx, DWORD PTR i$[rbp] 007dc ff c1 inc ecx 007de 44 8b c0 mov r8d, eax 007e1 8b d1 mov edx, ecx 007e3 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 007ea e8 00 00 00 00 call stbi__free_jpeg_components 007ef e9 86 01 00 00 jmp $LN1@stbi__proc $LN37@stbi__proc: ; 3234 : stbi__err("outofmem", "Out of memory")); ; 3235 : // align blocks for idct using mmx/sse ; 3236 : z->img_comp[i].data = (stbi_uc *)(((size_t)z->img_comp[i].raw_data + 15) & ~15); 007f4 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 007f8 48 6b c0 60 imul rax, rax, 96 ; 00000060H 007fc 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00803 48 8b 84 01 d8 46 00 00 mov rax, QWORD PTR [rcx+rax+18136] 0080b 48 83 c0 0f add rax, 15 0080f 48 83 e0 f0 and rax, -16 00813 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00817 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 0081b 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 00822 48 89 84 0a d0 46 00 00 mov QWORD PTR [rdx+rcx+18128], rax ; 3237 : if (z->progressive) { 0082a 48 8b 85 e0 01 00 00 mov rax, QWORD PTR z$[rbp] 00831 83 b8 30 48 00 00 00 cmp DWORD PTR [rax+18480], 0 00838 0f 84 32 01 00 00 je $LN38@stbi__proc ; 3238 : // w2, h2 are multiples of 8 (see above) ; 3239 : z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; 0083e 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00842 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00846 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0084d 8b 84 01 c4 46 00 00 mov eax, DWORD PTR [rcx+rax+18116] 00854 99 cdq 00855 83 e2 07 and edx, 7 00858 03 c2 add eax, edx 0085a c1 f8 03 sar eax, 3 0085d 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00861 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00865 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 0086c 89 84 0a f8 46 00 00 mov DWORD PTR [rdx+rcx+18168], eax ; 3240 : z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; 00873 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00877 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0087b 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00882 8b 84 01 c8 46 00 00 mov eax, DWORD PTR [rcx+rax+18120] 00889 99 cdq 0088a 83 e2 07 and edx, 7 0088d 03 c2 add eax, edx 0088f c1 f8 03 sar eax, 3 00892 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 00896 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 0089a 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 008a1 89 84 0a fc 46 00 00 mov DWORD PTR [rdx+rcx+18172], eax ; 3241 : z->img_comp[i].raw_coeff = stbi__malloc_mad3( 008a8 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 008ac 48 6b c0 60 imul rax, rax, 96 ; 00000060H 008b0 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 008b4 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 008b8 41 b9 0f 00 00 00 mov r9d, 15 008be 41 b8 02 00 00 00 mov r8d, 2 008c4 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 008cb 8b 94 02 c8 46 00 00 mov edx, DWORD PTR [rdx+rax+18120] 008d2 48 8b 85 e0 01 00 00 mov rax, QWORD PTR z$[rbp] 008d9 8b 8c 08 c4 46 00 00 mov ecx, DWORD PTR [rax+rcx+18116] 008e0 e8 00 00 00 00 call stbi__malloc_mad3 008e5 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 008e9 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 008ed 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 008f4 48 89 84 0a e0 46 00 00 mov QWORD PTR [rdx+rcx+18144], rax ; 3242 : z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); ; 3243 : if (z->img_comp[i].raw_coeff == NULL) 008fc 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 00900 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00904 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0090b 48 83 bc 01 e0 46 00 00 00 cmp QWORD PTR [rcx+rax+18144], 0 00914 75 24 jne SHORT $LN39@stbi__proc ; 3244 : return stbi__free_jpeg_components( 00916 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0091d e8 00 00 00 00 call stbi__err 00922 8b 4d 64 mov ecx, DWORD PTR i$[rbp] 00925 ff c1 inc ecx 00927 44 8b c0 mov r8d, eax 0092a 8b d1 mov edx, ecx 0092c 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00933 e8 00 00 00 00 call stbi__free_jpeg_components 00938 eb 40 jmp SHORT $LN1@stbi__proc $LN39@stbi__proc: ; 3245 : z, i + 1, stbi__err("outofmem", "Out of memory")); ; 3246 : z->img_comp[i].coeff = 0093a 48 63 45 64 movsxd rax, DWORD PTR i$[rbp] 0093e 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00942 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00949 48 8b 84 01 e0 46 00 00 mov rax, QWORD PTR [rcx+rax+18144] 00951 48 83 c0 0f add rax, 15 00955 48 83 e0 f0 and rax, -16 00959 48 63 4d 64 movsxd rcx, DWORD PTR i$[rbp] 0095d 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00961 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR z$[rbp] 00968 48 89 84 0a f0 46 00 00 mov QWORD PTR [rdx+rcx+18160], rax $LN38@stbi__proc: ; 3247 : (short *)(((size_t)z->img_comp[i].raw_coeff + 15) & ~15); ; 3248 : } ; 3249 : } 00970 e9 7a fc ff ff jmp $LN14@stbi__proc $LN15@stbi__proc: ; 3250 : ; 3251 : return 1; 00975 b8 01 00 00 00 mov eax, 1 $LN1@stbi__proc: ; 3252 : } 0097a 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 00981 5f pop rdi 00982 5d pop rbp 00983 c3 ret 0 stbi__process_frame_header ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__free_jpeg_components _TEXT SEGMENT i$ = 4 z$ = 256 ncomp$ = 264 why$ = 272 stbi__free_jpeg_components PROC ; COMDAT ; 3109 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000e 55 push rbp 0000f 57 push rdi 00010 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00028 90 npad 1 ; 3110 : int i; ; 3111 : for (i = 0; i < ncomp; ++i) { 00029 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00030 eb 08 jmp SHORT $LN4@stbi__free $LN2@stbi__free: 00032 8b 45 04 mov eax, DWORD PTR i$[rbp] 00035 ff c0 inc eax 00037 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__free: 0003a 8b 85 08 01 00 00 mov eax, DWORD PTR ncomp$[rbp] 00040 39 45 04 cmp DWORD PTR i$[rbp], eax 00043 0f 8d 34 01 00 00 jge $LN3@stbi__free ; 3112 : if (z->img_comp[i].raw_data) { 00049 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0004d 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00051 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 00058 48 83 bc 01 d8 46 00 00 00 cmp QWORD PTR [rcx+rax+18136], 0 00061 74 54 je SHORT $LN5@stbi__free ; 3113 : STBI_FREE(z->img_comp[i].raw_data); 00063 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00067 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0006b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 00072 48 8b 8c 01 d8 46 00 00 mov rcx, QWORD PTR [rcx+rax+18136] 0007a ff 15 00 00 00 00 call QWORD PTR __imp_free 00080 90 npad 1 ; 3114 : z->img_comp[i].raw_data = NULL; 00081 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00085 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00089 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 00090 48 c7 84 01 d8 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18136], 0 ; 3115 : z->img_comp[i].data = NULL; 0009c 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000a0 48 6b c0 60 imul rax, rax, 96 ; 00000060H 000a4 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 000ab 48 c7 84 01 d0 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18128], 0 $LN5@stbi__free: ; 3116 : } ; 3117 : if (z->img_comp[i].raw_coeff) { 000b7 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000bb 48 6b c0 60 imul rax, rax, 96 ; 00000060H 000bf 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 000c6 48 83 bc 01 e0 46 00 00 00 cmp QWORD PTR [rcx+rax+18144], 0 000cf 74 54 je SHORT $LN6@stbi__free ; 3118 : STBI_FREE(z->img_comp[i].raw_coeff); 000d1 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000d5 48 6b c0 60 imul rax, rax, 96 ; 00000060H 000d9 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 000e0 48 8b 8c 01 e0 46 00 00 mov rcx, QWORD PTR [rcx+rax+18144] 000e8 ff 15 00 00 00 00 call QWORD PTR __imp_free 000ee 90 npad 1 ; 3119 : z->img_comp[i].raw_coeff = 0; 000ef 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000f3 48 6b c0 60 imul rax, rax, 96 ; 00000060H 000f7 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 000fe 48 c7 84 01 e0 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18144], 0 ; 3120 : z->img_comp[i].coeff = 0; 0010a 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0010e 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00112 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 00119 48 c7 84 01 f0 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18160], 0 $LN6@stbi__free: ; 3121 : } ; 3122 : if (z->img_comp[i].linebuf) { 00125 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00129 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0012d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 00134 48 83 bc 01 e8 46 00 00 00 cmp QWORD PTR [rcx+rax+18152], 0 0013d 74 39 je SHORT $LN7@stbi__free ; 3123 : STBI_FREE(z->img_comp[i].linebuf); 0013f 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00143 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00147 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 0014e 48 8b 8c 01 e8 46 00 00 mov rcx, QWORD PTR [rcx+rax+18152] 00156 ff 15 00 00 00 00 call QWORD PTR __imp_free 0015c 90 npad 1 ; 3124 : z->img_comp[i].linebuf = NULL; 0015d 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00161 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00165 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR z$[rbp] 0016c 48 c7 84 01 e8 46 00 00 00 00 00 00 mov QWORD PTR [rcx+rax+18152], 0 $LN7@stbi__free: ; 3125 : } ; 3126 : } 00178 e9 b5 fe ff ff jmp $LN2@stbi__free $LN3@stbi__free: ; 3127 : return why; 0017d 8b 85 10 01 00 00 mov eax, DWORD PTR why$[rbp] ; 3128 : } 00183 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 0018a 5f pop rdi 0018b 5d pop rbp 0018c c3 ret 0 stbi__free_jpeg_components ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__process_scan_header _TEXT SEGMENT i$ = 4 Ls$ = 36 id$1 = 68 which$2 = 100 q$3 = 132 aa$4 = 164 z$ = 416 stbi__process_scan_header PROC ; COMDAT ; 3060 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 3061 : int i; ; 3062 : int Ls = stbi__get16be(z->s); 00020 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00027 48 8b 08 mov rcx, QWORD PTR [rax] 0002a e8 00 00 00 00 call stbi__get16be 0002f 89 45 24 mov DWORD PTR Ls$[rbp], eax ; 3063 : z->scan_n = stbi__get8(z->s); 00032 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00039 48 8b 08 mov rcx, QWORD PTR [rax] 0003c e8 00 00 00 00 call stbi__get8 00041 0f b6 c0 movzx eax, al 00044 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0004b 89 81 54 48 00 00 mov DWORD PTR [rcx+18516], eax ; 3064 : if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int)z->s->img_n) 00051 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00058 83 b8 54 48 00 00 01 cmp DWORD PTR [rax+18516], 1 0005f 7c 2c jl SHORT $LN9@stbi__proc 00061 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00068 83 b8 54 48 00 00 04 cmp DWORD PTR [rax+18516], 4 0006f 7f 1c jg SHORT $LN9@stbi__proc 00071 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00078 48 8b 00 mov rax, QWORD PTR [rax] 0007b 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00082 8b 40 08 mov eax, DWORD PTR [rax+8] 00085 39 81 54 48 00 00 cmp DWORD PTR [rcx+18516], eax 0008b 7e 11 jle SHORT $LN8@stbi__proc $LN9@stbi__proc: ; 3065 : return stbi__err("bad SOS component count", "Corrupt JPEG"); 0008d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BI@DHFJCMBA@bad?5SOS?5component?5count@ 00094 e8 00 00 00 00 call stbi__err 00099 e9 e2 02 00 00 jmp $LN1@stbi__proc $LN8@stbi__proc: ; 3066 : if (Ls != 6 + 2 * z->scan_n) 0009e 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 000a5 8b 80 54 48 00 00 mov eax, DWORD PTR [rax+18516] 000ab 8d 44 00 06 lea eax, DWORD PTR [rax+rax+6] 000af 39 45 24 cmp DWORD PTR Ls$[rbp], eax 000b2 74 11 je SHORT $LN10@stbi__proc ; 3067 : return stbi__err("bad SOS len", "Corrupt JPEG"); 000b4 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@GNEHAHOH@bad?5SOS?5len@ 000bb e8 00 00 00 00 call stbi__err 000c0 e9 bb 02 00 00 jmp $LN1@stbi__proc $LN10@stbi__proc: ; 3068 : for (i = 0; i < z->scan_n; ++i) { 000c5 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 000cc eb 08 jmp SHORT $LN4@stbi__proc $LN2@stbi__proc: 000ce 8b 45 04 mov eax, DWORD PTR i$[rbp] 000d1 ff c0 inc eax 000d3 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__proc: 000d6 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 000dd 8b 80 54 48 00 00 mov eax, DWORD PTR [rax+18516] 000e3 39 45 04 cmp DWORD PTR i$[rbp], eax 000e6 0f 8d 34 01 00 00 jge $LN3@stbi__proc ; 3069 : int id = stbi__get8(z->s), which; 000ec 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 000f3 48 8b 08 mov rcx, QWORD PTR [rax] 000f6 e8 00 00 00 00 call stbi__get8 000fb 0f b6 c0 movzx eax, al 000fe 89 45 44 mov DWORD PTR id$1[rbp], eax ; 3070 : int q = stbi__get8(z->s); 00101 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00108 48 8b 08 mov rcx, QWORD PTR [rax] 0010b e8 00 00 00 00 call stbi__get8 00110 0f b6 c0 movzx eax, al 00113 89 85 84 00 00 00 mov DWORD PTR q$3[rbp], eax ; 3071 : for (which = 0; which < z->s->img_n; ++which) 00119 c7 45 64 00 00 00 00 mov DWORD PTR which$2[rbp], 0 00120 eb 08 jmp SHORT $LN7@stbi__proc $LN5@stbi__proc: 00122 8b 45 64 mov eax, DWORD PTR which$2[rbp] 00125 ff c0 inc eax 00127 89 45 64 mov DWORD PTR which$2[rbp], eax $LN7@stbi__proc: 0012a 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00131 48 8b 00 mov rax, QWORD PTR [rax] 00134 8b 40 08 mov eax, DWORD PTR [rax+8] 00137 39 45 64 cmp DWORD PTR which$2[rbp], eax 0013a 7d 1f jge SHORT $LN6@stbi__proc ; 3072 : if (z->img_comp[which].id == id) 0013c 48 63 45 64 movsxd rax, DWORD PTR which$2[rbp] 00140 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00144 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0014b 8b 55 44 mov edx, DWORD PTR id$1[rbp] 0014e 39 94 01 a0 46 00 00 cmp DWORD PTR [rcx+rax+18080], edx 00155 75 02 jne SHORT $LN11@stbi__proc ; 3073 : break; 00157 eb 02 jmp SHORT $LN6@stbi__proc $LN11@stbi__proc: 00159 eb c7 jmp SHORT $LN5@stbi__proc $LN6@stbi__proc: ; 3074 : if (which == z->s->img_n) 0015b 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00162 48 8b 00 mov rax, QWORD PTR [rax] 00165 8b 40 08 mov eax, DWORD PTR [rax+8] 00168 39 45 64 cmp DWORD PTR which$2[rbp], eax 0016b 75 07 jne SHORT $LN12@stbi__proc ; 3075 : return 0; // no match 0016d 33 c0 xor eax, eax 0016f e9 0c 02 00 00 jmp $LN1@stbi__proc $LN12@stbi__proc: ; 3076 : z->img_comp[which].hd = q >> 4; 00174 8b 85 84 00 00 00 mov eax, DWORD PTR q$3[rbp] 0017a c1 f8 04 sar eax, 4 0017d 48 63 4d 64 movsxd rcx, DWORD PTR which$2[rbp] 00181 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00185 48 8b 95 a0 01 00 00 mov rdx, QWORD PTR z$[rbp] 0018c 89 84 0a b0 46 00 00 mov DWORD PTR [rdx+rcx+18096], eax ; 3077 : if (z->img_comp[which].hd > 3) 00193 48 63 45 64 movsxd rax, DWORD PTR which$2[rbp] 00197 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0019b 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 001a2 83 bc 01 b0 46 00 00 03 cmp DWORD PTR [rcx+rax+18096], 3 001aa 7e 11 jle SHORT $LN13@stbi__proc ; 3078 : return stbi__err("bad DC huff", "Corrupt JPEG"); 001ac 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@NOCCBFAC@bad?5DC?5huff@ 001b3 e8 00 00 00 00 call stbi__err 001b8 e9 c3 01 00 00 jmp $LN1@stbi__proc $LN13@stbi__proc: ; 3079 : z->img_comp[which].ha = q & 15; 001bd 8b 85 84 00 00 00 mov eax, DWORD PTR q$3[rbp] 001c3 83 e0 0f and eax, 15 001c6 48 63 4d 64 movsxd rcx, DWORD PTR which$2[rbp] 001ca 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 001ce 48 8b 95 a0 01 00 00 mov rdx, QWORD PTR z$[rbp] 001d5 89 84 0a b4 46 00 00 mov DWORD PTR [rdx+rcx+18100], eax ; 3080 : if (z->img_comp[which].ha > 3) 001dc 48 63 45 64 movsxd rax, DWORD PTR which$2[rbp] 001e0 48 6b c0 60 imul rax, rax, 96 ; 00000060H 001e4 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 001eb 83 bc 01 b4 46 00 00 03 cmp DWORD PTR [rcx+rax+18100], 3 001f3 7e 11 jle SHORT $LN14@stbi__proc ; 3081 : return stbi__err("bad AC huff", "Corrupt JPEG"); 001f5 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JGMCBLGG@bad?5AC?5huff@ 001fc e8 00 00 00 00 call stbi__err 00201 e9 7a 01 00 00 jmp $LN1@stbi__proc $LN14@stbi__proc: ; 3082 : z->order[i] = which; 00206 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0020a 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00211 8b 55 64 mov edx, DWORD PTR which$2[rbp] 00214 89 94 81 58 48 00 00 mov DWORD PTR [rcx+rax*4+18520], edx ; 3083 : } 0021b e9 ae fe ff ff jmp $LN2@stbi__proc $LN3@stbi__proc: ; 3084 : ; 3085 : { ; 3086 : int aa; ; 3087 : z->spec_start = stbi__get8(z->s); 00220 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00227 48 8b 08 mov rcx, QWORD PTR [rax] 0022a e8 00 00 00 00 call stbi__get8 0022f 0f b6 c0 movzx eax, al 00232 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00239 89 81 34 48 00 00 mov DWORD PTR [rcx+18484], eax ; 3088 : z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 0023f 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00246 48 8b 08 mov rcx, QWORD PTR [rax] 00249 e8 00 00 00 00 call stbi__get8 0024e 0f b6 c0 movzx eax, al 00251 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00258 89 81 38 48 00 00 mov DWORD PTR [rcx+18488], eax ; 3089 : aa = stbi__get8(z->s); 0025e 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00265 48 8b 08 mov rcx, QWORD PTR [rax] 00268 e8 00 00 00 00 call stbi__get8 0026d 0f b6 c0 movzx eax, al 00270 89 85 a4 00 00 00 mov DWORD PTR aa$4[rbp], eax ; 3090 : z->succ_high = (aa >> 4); 00276 8b 85 a4 00 00 00 mov eax, DWORD PTR aa$4[rbp] 0027c c1 f8 04 sar eax, 4 0027f 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00286 89 81 3c 48 00 00 mov DWORD PTR [rcx+18492], eax ; 3091 : z->succ_low = (aa & 15); 0028c 8b 85 a4 00 00 00 mov eax, DWORD PTR aa$4[rbp] 00292 83 e0 0f and eax, 15 00295 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0029c 89 81 40 48 00 00 mov DWORD PTR [rcx+18496], eax ; 3092 : if (z->progressive) { 002a2 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 002a9 83 b8 30 48 00 00 00 cmp DWORD PTR [rax+18480], 0 002b0 74 6c je SHORT $LN15@stbi__proc ; 3093 : if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || ; 3094 : z->succ_high > 13 || z->succ_low > 13) 002b2 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 002b9 83 b8 34 48 00 00 3f cmp DWORD PTR [rax+18484], 63 ; 0000003fH 002c0 7f 4c jg SHORT $LN18@stbi__proc 002c2 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 002c9 83 b8 38 48 00 00 3f cmp DWORD PTR [rax+18488], 63 ; 0000003fH 002d0 7f 3c jg SHORT $LN18@stbi__proc 002d2 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 002d9 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 002e0 8b 89 38 48 00 00 mov ecx, DWORD PTR [rcx+18488] 002e6 39 88 34 48 00 00 cmp DWORD PTR [rax+18484], ecx 002ec 7f 20 jg SHORT $LN18@stbi__proc 002ee 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 002f5 83 b8 3c 48 00 00 0d cmp DWORD PTR [rax+18492], 13 002fc 7f 10 jg SHORT $LN18@stbi__proc 002fe 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00305 83 b8 40 48 00 00 0d cmp DWORD PTR [rax+18496], 13 0030c 7e 0e jle SHORT $LN17@stbi__proc $LN18@stbi__proc: ; 3095 : return stbi__err("bad SOS", "Corrupt JPEG"); 0030e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07EEJOMGGP@bad?5SOS@ 00315 e8 00 00 00 00 call stbi__err 0031a eb 64 jmp SHORT $LN1@stbi__proc $LN17@stbi__proc: ; 3096 : } else { 0031c eb 5d jmp SHORT $LN16@stbi__proc $LN15@stbi__proc: ; 3097 : if (z->spec_start != 0) 0031e 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00325 83 b8 34 48 00 00 00 cmp DWORD PTR [rax+18484], 0 0032c 74 0e je SHORT $LN19@stbi__proc ; 3098 : return stbi__err("bad SOS", "Corrupt JPEG"); 0032e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07EEJOMGGP@bad?5SOS@ 00335 e8 00 00 00 00 call stbi__err 0033a eb 44 jmp SHORT $LN1@stbi__proc $LN19@stbi__proc: ; 3099 : if (z->succ_high != 0 || z->succ_low != 0) 0033c 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00343 83 b8 3c 48 00 00 00 cmp DWORD PTR [rax+18492], 0 0034a 75 10 jne SHORT $LN21@stbi__proc 0034c 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00353 83 b8 40 48 00 00 00 cmp DWORD PTR [rax+18496], 0 0035a 74 0e je SHORT $LN20@stbi__proc $LN21@stbi__proc: ; 3100 : return stbi__err("bad SOS", "Corrupt JPEG"); 0035c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07EEJOMGGP@bad?5SOS@ 00363 e8 00 00 00 00 call stbi__err 00368 eb 16 jmp SHORT $LN1@stbi__proc $LN20@stbi__proc: ; 3101 : z->spec_end = 63; 0036a 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00371 c7 80 38 48 00 00 3f 00 00 00 mov DWORD PTR [rax+18488], 63 ; 0000003fH $LN16@stbi__proc: ; 3102 : } ; 3103 : } ; 3104 : ; 3105 : return 1; 0037b b8 01 00 00 00 mov eax, 1 $LN1@stbi__proc: ; 3106 : } 00380 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] 00387 5f pop rdi 00388 5d pop rbp 00389 c3 ret 0 stbi__process_scan_header ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__process_marker _TEXT SEGMENT L$ = 4 q$4 = 36 p$5 = 68 sixteen$6 = 100 t$7 = 132 i$8 = 164 v$9 = 200 sizes$10 = 240 i$11 = 324 n$12 = 356 q$13 = 388 tc$14 = 420 th$15 = 452 ok$16 = 484 i$17 = 516 ok$18 = 548 i$19 = 580 tv64 = 980 tv88 = 980 tv149 = 980 tv152 = 980 tv155 = 980 tv236 = 980 __$ArrayPad$ = 984 z$ = 1024 m$ = 1032 stbi__process_marker PROC ; COMDAT ; 2945 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec 08 04 00 00 sub rsp, 1032 ; 00000408H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001c b9 9a 00 00 00 mov ecx, 154 ; 0000009aH 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00026 f3 ab rep stosd 00028 48 8b 8c 24 28 04 00 00 mov rcx, QWORD PTR [rsp+1064] 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00037 48 33 c5 xor rax, rbp 0003a 48 89 85 d8 03 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00041 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0004d 90 npad 1 ; 2946 : int L; ; 2947 : switch (m) { 0004e 8b 85 08 04 00 00 mov eax, DWORD PTR m$[rbp] 00054 89 85 d4 03 00 00 mov DWORD PTR tv64[rbp], eax 0005a 81 bd d4 03 00 00 c4 00 00 00 cmp DWORD PTR tv64[rbp], 196 ; 000000c4H 00064 0f 84 19 02 00 00 je $LN29@stbi__proc 0006a 81 bd d4 03 00 00 db 00 00 00 cmp DWORD PTR tv64[rbp], 219 ; 000000dbH 00074 74 79 je SHORT $LN26@stbi__proc 00076 81 bd d4 03 00 00 dd 00 00 00 cmp DWORD PTR tv64[rbp], 221 ; 000000ddH 00080 74 22 je SHORT $LN24@stbi__proc 00082 81 bd d4 03 00 00 ff 00 00 00 cmp DWORD PTR tv64[rbp], 255 ; 000000ffH 0008c 74 05 je SHORT $LN23@stbi__proc 0008e e9 8b 04 00 00 jmp $LN2@stbi__proc $LN23@stbi__proc: ; 2948 : case STBI__MARKER_none: // no marker found ; 2949 : return stbi__err("expected marker", "Corrupt JPEG"); 00093 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@KLNDOKJD@expected?5marker@ 0009a e8 00 00 00 00 call stbi__err 0009f e9 a1 06 00 00 jmp $LN1@stbi__proc $LN24@stbi__proc: ; 2950 : ; 2951 : case 0xDD: // DRI - specify restart interval ; 2952 : if (stbi__get16be(z->s) != 4) 000a4 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 000ab 48 8b 08 mov rcx, QWORD PTR [rax] 000ae e8 00 00 00 00 call stbi__get16be 000b3 83 f8 04 cmp eax, 4 000b6 74 11 je SHORT $LN25@stbi__proc ; 2953 : return stbi__err("bad DRI len", "Corrupt JPEG"); 000b8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@LPHNODCG@bad?5DRI?5len@ 000bf e8 00 00 00 00 call stbi__err 000c4 e9 7c 06 00 00 jmp $LN1@stbi__proc $LN25@stbi__proc: ; 2954 : z->restart_interval = stbi__get16be(z->s); 000c9 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 000d0 48 8b 08 mov rcx, QWORD PTR [rax] 000d3 e8 00 00 00 00 call stbi__get16be 000d8 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR z$[rbp] 000df 89 81 68 48 00 00 mov DWORD PTR [rcx+18536], eax ; 2955 : return 1; 000e5 b8 01 00 00 00 mov eax, 1 000ea e9 56 06 00 00 jmp $LN1@stbi__proc $LN26@stbi__proc: ; 2956 : ; 2957 : case 0xDB: // DQT - define quantization table ; 2958 : L = stbi__get16be(z->s) - 2; 000ef 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 000f6 48 8b 08 mov rcx, QWORD PTR [rax] 000f9 e8 00 00 00 00 call stbi__get16be 000fe 83 e8 02 sub eax, 2 00101 89 45 04 mov DWORD PTR L$[rbp], eax $LN4@stbi__proc: ; 2959 : while (L > 0) { 00104 83 7d 04 00 cmp DWORD PTR L$[rbp], 0 00108 0f 8e 4e 01 00 00 jle $LN5@stbi__proc ; 2960 : int q = stbi__get8(z->s); 0010e 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 00115 48 8b 08 mov rcx, QWORD PTR [rax] 00118 e8 00 00 00 00 call stbi__get8 0011d 0f b6 c0 movzx eax, al 00120 89 45 24 mov DWORD PTR q$4[rbp], eax ; 2961 : int p = q >> 4, sixteen = (p != 0); 00123 8b 45 24 mov eax, DWORD PTR q$4[rbp] 00126 c1 f8 04 sar eax, 4 00129 89 45 44 mov DWORD PTR p$5[rbp], eax 0012c 83 7d 44 00 cmp DWORD PTR p$5[rbp], 0 00130 74 0c je SHORT $LN52@stbi__proc 00132 c7 85 d4 03 00 00 01 00 00 00 mov DWORD PTR tv88[rbp], 1 0013c eb 0a jmp SHORT $LN53@stbi__proc $LN52@stbi__proc: 0013e c7 85 d4 03 00 00 00 00 00 00 mov DWORD PTR tv88[rbp], 0 $LN53@stbi__proc: 00148 8b 85 d4 03 00 00 mov eax, DWORD PTR tv88[rbp] 0014e 89 45 64 mov DWORD PTR sixteen$6[rbp], eax ; 2962 : int t = q & 15, i; 00151 8b 45 24 mov eax, DWORD PTR q$4[rbp] 00154 83 e0 0f and eax, 15 00157 89 85 84 00 00 00 mov DWORD PTR t$7[rbp], eax ; 2963 : if (p != 0 && p != 1) 0015d 83 7d 44 00 cmp DWORD PTR p$5[rbp], 0 00161 74 17 je SHORT $LN27@stbi__proc 00163 83 7d 44 01 cmp DWORD PTR p$5[rbp], 1 00167 74 11 je SHORT $LN27@stbi__proc ; 2964 : return stbi__err("bad DQT type", "Corrupt JPEG"); 00169 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@BOFJCHAP@bad?5DQT?5type@ 00170 e8 00 00 00 00 call stbi__err 00175 e9 cb 05 00 00 jmp $LN1@stbi__proc $LN27@stbi__proc: ; 2965 : if (t > 3) 0017a 83 bd 84 00 00 00 03 cmp DWORD PTR t$7[rbp], 3 00181 7e 11 jle SHORT $LN28@stbi__proc ; 2966 : return stbi__err("bad DQT table", "Corrupt JPEG"); 00183 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@CNHKKDIM@bad?5DQT?5table@ 0018a e8 00 00 00 00 call stbi__err 0018f e9 b1 05 00 00 jmp $LN1@stbi__proc $LN28@stbi__proc: ; 2967 : ; 2968 : for (i = 0; i < 64; ++i) 00194 c7 85 a4 00 00 00 00 00 00 00 mov DWORD PTR i$8[rbp], 0 0019e eb 0e jmp SHORT $LN8@stbi__proc $LN6@stbi__proc: 001a0 8b 85 a4 00 00 00 mov eax, DWORD PTR i$8[rbp] 001a6 ff c0 inc eax 001a8 89 85 a4 00 00 00 mov DWORD PTR i$8[rbp], eax $LN8@stbi__proc: 001ae 83 bd a4 00 00 00 40 cmp DWORD PTR i$8[rbp], 64 ; 00000040H 001b5 7d 74 jge SHORT $LN7@stbi__proc ; 2969 : z->dequant[t][stbi__jpeg_dezigzag[i]] = 001b7 83 7d 64 00 cmp DWORD PTR sixteen$6[rbp], 0 001bb 74 17 je SHORT $LN54@stbi__proc 001bd 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 001c4 48 8b 08 mov rcx, QWORD PTR [rax] 001c7 e8 00 00 00 00 call stbi__get16be 001cc 89 85 d4 03 00 00 mov DWORD PTR tv149[rbp], eax 001d2 eb 18 jmp SHORT $LN55@stbi__proc $LN54@stbi__proc: 001d4 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 001db 48 8b 08 mov rcx, QWORD PTR [rax] 001de e8 00 00 00 00 call stbi__get8 001e3 0f b6 c0 movzx eax, al 001e6 89 85 d4 03 00 00 mov DWORD PTR tv149[rbp], eax $LN55@stbi__proc: 001ec 48 63 85 84 00 00 00 movsxd rax, DWORD PTR t$7[rbp] 001f3 48 69 c0 80 00 00 00 imul rax, rax, 128 ; 00000080H 001fa 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR z$[rbp] 00201 48 8d 84 01 88 34 00 00 lea rax, QWORD PTR [rcx+rax+13448] 00209 48 63 8d a4 00 00 00 movsxd rcx, DWORD PTR i$8[rbp] 00210 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__jpeg_dezigzag 00217 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 0021b 0f b7 95 d4 03 00 00 movzx edx, WORD PTR tv149[rbp] 00222 66 89 14 48 mov WORD PTR [rax+rcx*2], dx 00226 e9 75 ff ff ff jmp $LN6@stbi__proc $LN7@stbi__proc: ; 2970 : (stbi__uint16)(sixteen ? stbi__get16be(z->s) : ; 2971 : stbi__get8(z->s)); ; 2972 : L -= (sixteen ? 129 : 65); 0022b 83 7d 64 00 cmp DWORD PTR sixteen$6[rbp], 0 0022f 74 0c je SHORT $LN56@stbi__proc 00231 c7 85 d4 03 00 00 81 00 00 00 mov DWORD PTR tv152[rbp], 129 ; 00000081H 0023b eb 0a jmp SHORT $LN57@stbi__proc $LN56@stbi__proc: 0023d c7 85 d4 03 00 00 41 00 00 00 mov DWORD PTR tv152[rbp], 65 ; 00000041H $LN57@stbi__proc: 00247 8b 85 d4 03 00 00 mov eax, DWORD PTR tv152[rbp] 0024d 8b 4d 04 mov ecx, DWORD PTR L$[rbp] 00250 2b c8 sub ecx, eax 00252 8b c1 mov eax, ecx 00254 89 45 04 mov DWORD PTR L$[rbp], eax ; 2973 : } 00257 e9 a8 fe ff ff jmp $LN4@stbi__proc $LN5@stbi__proc: ; 2974 : return L == 0; 0025c 83 7d 04 00 cmp DWORD PTR L$[rbp], 0 00260 75 0c jne SHORT $LN58@stbi__proc 00262 c7 85 d4 03 00 00 01 00 00 00 mov DWORD PTR tv155[rbp], 1 0026c eb 0a jmp SHORT $LN59@stbi__proc $LN58@stbi__proc: 0026e c7 85 d4 03 00 00 00 00 00 00 mov DWORD PTR tv155[rbp], 0 $LN59@stbi__proc: 00278 8b 85 d4 03 00 00 mov eax, DWORD PTR tv155[rbp] 0027e e9 c2 04 00 00 jmp $LN1@stbi__proc $LN29@stbi__proc: ; 2975 : ; 2976 : case 0xC4: // DHT - define huffman table ; 2977 : L = stbi__get16be(z->s) - 2; 00283 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 0028a 48 8b 08 mov rcx, QWORD PTR [rax] 0028d e8 00 00 00 00 call stbi__get16be 00292 83 e8 02 sub eax, 2 00295 89 45 04 mov DWORD PTR L$[rbp], eax $LN9@stbi__proc: ; 2978 : while (L > 0) { 00298 83 7d 04 00 cmp DWORD PTR L$[rbp], 0 0029c 0f 8e 55 02 00 00 jle $LN10@stbi__proc ; 2979 : stbi_uc *v; ; 2980 : int sizes[16], i, n = 0; 002a2 c7 85 64 01 00 00 00 00 00 00 mov DWORD PTR n$12[rbp], 0 ; 2981 : int q = stbi__get8(z->s); 002ac 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 002b3 48 8b 08 mov rcx, QWORD PTR [rax] 002b6 e8 00 00 00 00 call stbi__get8 002bb 0f b6 c0 movzx eax, al 002be 89 85 84 01 00 00 mov DWORD PTR q$13[rbp], eax ; 2982 : int tc = q >> 4; 002c4 8b 85 84 01 00 00 mov eax, DWORD PTR q$13[rbp] 002ca c1 f8 04 sar eax, 4 002cd 89 85 a4 01 00 00 mov DWORD PTR tc$14[rbp], eax ; 2983 : int th = q & 15; 002d3 8b 85 84 01 00 00 mov eax, DWORD PTR q$13[rbp] 002d9 83 e0 0f and eax, 15 002dc 89 85 c4 01 00 00 mov DWORD PTR th$15[rbp], eax ; 2984 : if (tc > 1 || th > 3) 002e2 83 bd a4 01 00 00 01 cmp DWORD PTR tc$14[rbp], 1 002e9 7f 09 jg SHORT $LN31@stbi__proc 002eb 83 bd c4 01 00 00 03 cmp DWORD PTR th$15[rbp], 3 002f2 7e 11 jle SHORT $LN30@stbi__proc $LN31@stbi__proc: ; 2985 : return stbi__err("bad DHT header", "Corrupt JPEG"); 002f4 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JLGKOCGN@bad?5DHT?5header@ 002fb e8 00 00 00 00 call stbi__err 00300 e9 40 04 00 00 jmp $LN1@stbi__proc $LN30@stbi__proc: ; 2986 : for (i = 0; i < 16; ++i) { 00305 c7 85 44 01 00 00 00 00 00 00 mov DWORD PTR i$11[rbp], 0 0030f eb 0e jmp SHORT $LN13@stbi__proc $LN11@stbi__proc: 00311 8b 85 44 01 00 00 mov eax, DWORD PTR i$11[rbp] 00317 ff c0 inc eax 00319 89 85 44 01 00 00 mov DWORD PTR i$11[rbp], eax $LN13@stbi__proc: 0031f 83 bd 44 01 00 00 10 cmp DWORD PTR i$11[rbp], 16 00326 7d 40 jge SHORT $LN12@stbi__proc ; 2987 : sizes[i] = stbi__get8(z->s); 00328 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 0032f 48 8b 08 mov rcx, QWORD PTR [rax] 00332 e8 00 00 00 00 call stbi__get8 00337 48 63 8d 44 01 00 00 movsxd rcx, DWORD PTR i$11[rbp] 0033e 0f b6 c0 movzx eax, al 00341 89 84 8d f0 00 00 00 mov DWORD PTR sizes$10[rbp+rcx*4], eax ; 2988 : n += sizes[i]; 00348 48 63 85 44 01 00 00 movsxd rax, DWORD PTR i$11[rbp] 0034f 8b 84 85 f0 00 00 00 mov eax, DWORD PTR sizes$10[rbp+rax*4] 00356 8b 8d 64 01 00 00 mov ecx, DWORD PTR n$12[rbp] 0035c 03 c8 add ecx, eax 0035e 8b c1 mov eax, ecx 00360 89 85 64 01 00 00 mov DWORD PTR n$12[rbp], eax ; 2989 : } 00366 eb a9 jmp SHORT $LN11@stbi__proc $LN12@stbi__proc: ; 2990 : if (n > 256) 00368 81 bd 64 01 00 00 00 01 00 00 cmp DWORD PTR n$12[rbp], 256 ; 00000100H 00372 7e 11 jle SHORT $LN32@stbi__proc ; 2991 : return stbi__err( 00374 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@JLGKOCGN@bad?5DHT?5header@ 0037b e8 00 00 00 00 call stbi__err 00380 e9 c0 03 00 00 jmp $LN1@stbi__proc $LN32@stbi__proc: ; 2992 : "bad DHT header", ; 2993 : "Corrupt JPEG"); // Loop over i < n would write past end of values! ; 2994 : L -= 17; 00385 8b 45 04 mov eax, DWORD PTR L$[rbp] 00388 83 e8 11 sub eax, 17 0038b 89 45 04 mov DWORD PTR L$[rbp], eax ; 2995 : if (tc == 0) { 0038e 83 bd a4 01 00 00 00 cmp DWORD PTR tc$14[rbp], 0 00395 75 5a jne SHORT $LN33@stbi__proc ; 2996 : if (!stbi__build_huffman(z->huff_dc + th, sizes)) 00397 48 63 85 c4 01 00 00 movsxd rax, DWORD PTR th$15[rbp] 0039e 48 69 c0 90 06 00 00 imul rax, rax, 1680 ; 00000690H 003a5 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR z$[rbp] 003ac 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] 003b1 48 8d 95 f0 00 00 00 lea rdx, QWORD PTR sizes$10[rbp] 003b8 48 8b c8 mov rcx, rax 003bb e8 00 00 00 00 call stbi__build_huffman 003c0 85 c0 test eax, eax 003c2 75 07 jne SHORT $LN35@stbi__proc ; 2997 : return 0; 003c4 33 c0 xor eax, eax 003c6 e9 7a 03 00 00 jmp $LN1@stbi__proc $LN35@stbi__proc: ; 2998 : v = z->huff_dc[th].values; 003cb 48 63 85 c4 01 00 00 movsxd rax, DWORD PTR th$15[rbp] 003d2 48 69 c0 90 06 00 00 imul rax, rax, 1680 ; 00000690H 003d9 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR z$[rbp] 003e0 48 8d 84 01 08 04 00 00 lea rax, QWORD PTR [rcx+rax+1032] 003e8 48 89 85 c8 00 00 00 mov QWORD PTR v$9[rbp], rax ; 2999 : } else { 003ef eb 5b jmp SHORT $LN34@stbi__proc $LN33@stbi__proc: ; 3000 : if (!stbi__build_huffman(z->huff_ac + th, sizes)) 003f1 48 63 85 c4 01 00 00 movsxd rax, DWORD PTR th$15[rbp] 003f8 48 69 c0 90 06 00 00 imul rax, rax, 1680 ; 00000690H 003ff 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR z$[rbp] 00406 48 8d 84 01 48 1a 00 00 lea rax, QWORD PTR [rcx+rax+6728] 0040e 48 8d 95 f0 00 00 00 lea rdx, QWORD PTR sizes$10[rbp] 00415 48 8b c8 mov rcx, rax 00418 e8 00 00 00 00 call stbi__build_huffman 0041d 85 c0 test eax, eax 0041f 75 07 jne SHORT $LN36@stbi__proc ; 3001 : return 0; 00421 33 c0 xor eax, eax 00423 e9 1d 03 00 00 jmp $LN1@stbi__proc $LN36@stbi__proc: ; 3002 : v = z->huff_ac[th].values; 00428 48 63 85 c4 01 00 00 movsxd rax, DWORD PTR th$15[rbp] 0042f 48 69 c0 90 06 00 00 imul rax, rax, 1680 ; 00000690H 00436 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR z$[rbp] 0043d 48 8d 84 01 48 1e 00 00 lea rax, QWORD PTR [rcx+rax+7752] 00445 48 89 85 c8 00 00 00 mov QWORD PTR v$9[rbp], rax $LN34@stbi__proc: ; 3003 : } ; 3004 : for (i = 0; i < n; ++i) 0044c c7 85 44 01 00 00 00 00 00 00 mov DWORD PTR i$11[rbp], 0 00456 eb 0e jmp SHORT $LN16@stbi__proc $LN14@stbi__proc: 00458 8b 85 44 01 00 00 mov eax, DWORD PTR i$11[rbp] 0045e ff c0 inc eax 00460 89 85 44 01 00 00 mov DWORD PTR i$11[rbp], eax $LN16@stbi__proc: 00466 8b 85 64 01 00 00 mov eax, DWORD PTR n$12[rbp] 0046c 39 85 44 01 00 00 cmp DWORD PTR i$11[rbp], eax 00472 7d 22 jge SHORT $LN15@stbi__proc ; 3005 : v[i] = stbi__get8(z->s); 00474 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 0047b 48 8b 08 mov rcx, QWORD PTR [rax] 0047e e8 00 00 00 00 call stbi__get8 00483 48 63 8d 44 01 00 00 movsxd rcx, DWORD PTR i$11[rbp] 0048a 48 8b 95 c8 00 00 00 mov rdx, QWORD PTR v$9[rbp] 00491 88 04 0a mov BYTE PTR [rdx+rcx], al 00494 eb c2 jmp SHORT $LN14@stbi__proc $LN15@stbi__proc: ; 3006 : if (tc != 0) 00496 83 bd a4 01 00 00 00 cmp DWORD PTR tc$14[rbp], 0 0049d 74 43 je SHORT $LN37@stbi__proc ; 3007 : stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); 0049f 48 63 85 c4 01 00 00 movsxd rax, DWORD PTR th$15[rbp] 004a6 48 69 c0 90 06 00 00 imul rax, rax, 1680 ; 00000690H 004ad 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR z$[rbp] 004b4 48 8d 84 01 48 1a 00 00 lea rax, QWORD PTR [rcx+rax+6728] 004bc 48 63 8d c4 01 00 00 movsxd rcx, DWORD PTR th$15[rbp] 004c3 48 69 c9 00 04 00 00 imul rcx, rcx, 1024 ; 00000400H 004ca 48 8b 95 00 04 00 00 mov rdx, QWORD PTR z$[rbp] 004d1 48 8d 8c 0a 88 36 00 00 lea rcx, QWORD PTR [rdx+rcx+13960] 004d9 48 8b d0 mov rdx, rax 004dc e8 00 00 00 00 call stbi__build_fast_ac 004e1 90 npad 1 $LN37@stbi__proc: ; 3008 : L -= n; 004e2 8b 85 64 01 00 00 mov eax, DWORD PTR n$12[rbp] 004e8 8b 4d 04 mov ecx, DWORD PTR L$[rbp] 004eb 2b c8 sub ecx, eax 004ed 8b c1 mov eax, ecx 004ef 89 45 04 mov DWORD PTR L$[rbp], eax ; 3009 : } 004f2 e9 a1 fd ff ff jmp $LN9@stbi__proc $LN10@stbi__proc: ; 3010 : return L == 0; 004f7 83 7d 04 00 cmp DWORD PTR L$[rbp], 0 004fb 75 0c jne SHORT $LN60@stbi__proc 004fd c7 85 d4 03 00 00 01 00 00 00 mov DWORD PTR tv236[rbp], 1 00507 eb 0a jmp SHORT $LN61@stbi__proc $LN60@stbi__proc: 00509 c7 85 d4 03 00 00 00 00 00 00 mov DWORD PTR tv236[rbp], 0 $LN61@stbi__proc: 00513 8b 85 d4 03 00 00 mov eax, DWORD PTR tv236[rbp] 00519 e9 27 02 00 00 jmp $LN1@stbi__proc $LN2@stbi__proc: ; 3011 : } ; 3012 : ; 3013 : // check for comment block or APP blocks ; 3014 : if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { 0051e 81 bd 08 04 00 00 e0 00 00 00 cmp DWORD PTR m$[rbp], 224 ; 000000e0H 00528 7c 0c jl SHORT $LN40@stbi__proc 0052a 81 bd 08 04 00 00 ef 00 00 00 cmp DWORD PTR m$[rbp], 239 ; 000000efH 00534 7e 10 jle SHORT $LN39@stbi__proc $LN40@stbi__proc: 00536 81 bd 08 04 00 00 fe 00 00 00 cmp DWORD PTR m$[rbp], 254 ; 000000feH 00540 0f 85 f3 01 00 00 jne $LN38@stbi__proc $LN39@stbi__proc: ; 3015 : L = stbi__get16be(z->s); 00546 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 0054d 48 8b 08 mov rcx, QWORD PTR [rax] 00550 e8 00 00 00 00 call stbi__get16be 00555 89 45 04 mov DWORD PTR L$[rbp], eax ; 3016 : if (L < 2) { 00558 83 7d 04 02 cmp DWORD PTR L$[rbp], 2 0055c 7d 30 jge SHORT $LN41@stbi__proc ; 3017 : if (m == 0xFE) 0055e 81 bd 08 04 00 00 fe 00 00 00 cmp DWORD PTR m$[rbp], 254 ; 000000feH 00568 75 13 jne SHORT $LN42@stbi__proc ; 3018 : return stbi__err("bad COM len", "Corrupt JPEG"); 0056a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@CICAFFCH@bad?5COM?5len@ 00571 e8 00 00 00 00 call stbi__err 00576 e9 ca 01 00 00 jmp $LN1@stbi__proc 0057b eb 11 jmp SHORT $LN43@stbi__proc $LN42@stbi__proc: ; 3019 : else ; 3020 : return stbi__err("bad APP len", "Corrupt JPEG"); 0057d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@EENLKPDI@bad?5APP?5len@ 00584 e8 00 00 00 00 call stbi__err 00589 e9 b7 01 00 00 jmp $LN1@stbi__proc $LN43@stbi__proc: $LN41@stbi__proc: ; 3021 : } ; 3022 : L -= 2; 0058e 8b 45 04 mov eax, DWORD PTR L$[rbp] 00591 83 e8 02 sub eax, 2 00594 89 45 04 mov DWORD PTR L$[rbp], eax ; 3023 : ; 3024 : if (m == 0xE0 && L >= 5) { // JFIF APP0 segment 00597 81 bd 08 04 00 00 e0 00 00 00 cmp DWORD PTR m$[rbp], 224 ; 000000e0H 005a1 0f 85 93 00 00 00 jne $LN44@stbi__proc 005a7 83 7d 04 05 cmp DWORD PTR L$[rbp], 5 005ab 0f 8c 89 00 00 00 jl $LN44@stbi__proc ; 3025 : static const unsigned char tag[5] = { 'J', 'F', 'I', 'F', '\0' }; ; 3026 : int ok = 1; 005b1 c7 85 e4 01 00 00 01 00 00 00 mov DWORD PTR ok$16[rbp], 1 ; 3027 : int i; ; 3028 : for (i = 0; i < 5; ++i) 005bb c7 85 04 02 00 00 00 00 00 00 mov DWORD PTR i$17[rbp], 0 005c5 eb 0e jmp SHORT $LN19@stbi__proc $LN17@stbi__proc: 005c7 8b 85 04 02 00 00 mov eax, DWORD PTR i$17[rbp] 005cd ff c0 inc eax 005cf 89 85 04 02 00 00 mov DWORD PTR i$17[rbp], eax $LN19@stbi__proc: 005d5 83 bd 04 02 00 00 05 cmp DWORD PTR i$17[rbp], 5 005dc 7d 34 jge SHORT $LN18@stbi__proc ; 3029 : if (stbi__get8(z->s) != tag[i]) 005de 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 005e5 48 8b 08 mov rcx, QWORD PTR [rax] 005e8 e8 00 00 00 00 call stbi__get8 005ed 0f b6 c0 movzx eax, al 005f0 48 63 8d 04 02 00 00 movsxd rcx, DWORD PTR i$17[rbp] 005f7 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?tag@?O@??stbi__process_marker@@9@9 005fe 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00602 3b c1 cmp eax, ecx 00604 74 0a je SHORT $LN46@stbi__proc ; 3030 : ok = 0; 00606 c7 85 e4 01 00 00 00 00 00 00 mov DWORD PTR ok$16[rbp], 0 $LN46@stbi__proc: 00610 eb b5 jmp SHORT $LN17@stbi__proc $LN18@stbi__proc: ; 3031 : L -= 5; 00612 8b 45 04 mov eax, DWORD PTR L$[rbp] 00615 83 e8 05 sub eax, 5 00618 89 45 04 mov DWORD PTR L$[rbp], eax ; 3032 : if (ok) 0061b 83 bd e4 01 00 00 00 cmp DWORD PTR ok$16[rbp], 0 00622 74 11 je SHORT $LN47@stbi__proc ; 3033 : z->jfif = 1; 00624 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 0062b c7 80 48 48 00 00 01 00 00 00 mov DWORD PTR [rax+18504], 1 $LN47@stbi__proc: ; 3034 : } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment 00635 e9 e5 00 00 00 jmp $LN45@stbi__proc $LN44@stbi__proc: 0063a 81 bd 08 04 00 00 ee 00 00 00 cmp DWORD PTR m$[rbp], 238 ; 000000eeH 00644 0f 85 d5 00 00 00 jne $LN48@stbi__proc 0064a 83 7d 04 0c cmp DWORD PTR L$[rbp], 12 0064e 0f 8c cb 00 00 00 jl $LN48@stbi__proc ; 3035 : static const unsigned char tag[6] = { 'A', 'd', 'o', 'b', 'e', '\0' }; ; 3036 : int ok = 1; 00654 c7 85 24 02 00 00 01 00 00 00 mov DWORD PTR ok$18[rbp], 1 ; 3037 : int i; ; 3038 : for (i = 0; i < 6; ++i) 0065e c7 85 44 02 00 00 00 00 00 00 mov DWORD PTR i$19[rbp], 0 00668 eb 0e jmp SHORT $LN22@stbi__proc $LN20@stbi__proc: 0066a 8b 85 44 02 00 00 mov eax, DWORD PTR i$19[rbp] 00670 ff c0 inc eax 00672 89 85 44 02 00 00 mov DWORD PTR i$19[rbp], eax $LN22@stbi__proc: 00678 83 bd 44 02 00 00 06 cmp DWORD PTR i$19[rbp], 6 0067f 7d 34 jge SHORT $LN21@stbi__proc ; 3039 : if (stbi__get8(z->s) != tag[i]) 00681 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 00688 48 8b 08 mov rcx, QWORD PTR [rax] 0068b e8 00 00 00 00 call stbi__get8 00690 0f b6 c0 movzx eax, al 00693 48 63 8d 44 02 00 00 movsxd rcx, DWORD PTR i$19[rbp] 0069a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?tag@?BA@??stbi__process_marker@@9@9 006a1 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 006a5 3b c1 cmp eax, ecx 006a7 74 0a je SHORT $LN49@stbi__proc ; 3040 : ok = 0; 006a9 c7 85 24 02 00 00 00 00 00 00 mov DWORD PTR ok$18[rbp], 0 $LN49@stbi__proc: 006b3 eb b5 jmp SHORT $LN20@stbi__proc $LN21@stbi__proc: ; 3041 : L -= 6; 006b5 8b 45 04 mov eax, DWORD PTR L$[rbp] 006b8 83 e8 06 sub eax, 6 006bb 89 45 04 mov DWORD PTR L$[rbp], eax ; 3042 : if (ok) { 006be 83 bd 24 02 00 00 00 cmp DWORD PTR ok$18[rbp], 0 006c5 74 58 je SHORT $LN50@stbi__proc ; 3043 : stbi__get8(z->s); // version 006c7 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 006ce 48 8b 08 mov rcx, QWORD PTR [rax] 006d1 e8 00 00 00 00 call stbi__get8 006d6 90 npad 1 ; 3044 : stbi__get16be(z->s); // flags0 006d7 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 006de 48 8b 08 mov rcx, QWORD PTR [rax] 006e1 e8 00 00 00 00 call stbi__get16be 006e6 90 npad 1 ; 3045 : stbi__get16be(z->s); // flags1 006e7 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 006ee 48 8b 08 mov rcx, QWORD PTR [rax] 006f1 e8 00 00 00 00 call stbi__get16be 006f6 90 npad 1 ; 3046 : z->app14_color_transform = stbi__get8(z->s); // color transform 006f7 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 006fe 48 8b 08 mov rcx, QWORD PTR [rax] 00701 e8 00 00 00 00 call stbi__get8 00706 0f b6 c0 movzx eax, al 00709 48 8b 8d 00 04 00 00 mov rcx, QWORD PTR z$[rbp] 00710 89 81 4c 48 00 00 mov DWORD PTR [rcx+18508], eax ; 3047 : L -= 6; 00716 8b 45 04 mov eax, DWORD PTR L$[rbp] 00719 83 e8 06 sub eax, 6 0071c 89 45 04 mov DWORD PTR L$[rbp], eax $LN50@stbi__proc: $LN48@stbi__proc: $LN45@stbi__proc: ; 3048 : } ; 3049 : } ; 3050 : ; 3051 : stbi__skip(z->s, L); 0071f 8b 55 04 mov edx, DWORD PTR L$[rbp] 00722 48 8b 85 00 04 00 00 mov rax, QWORD PTR z$[rbp] 00729 48 8b 08 mov rcx, QWORD PTR [rax] 0072c e8 00 00 00 00 call stbi__skip 00731 90 npad 1 ; 3052 : return 1; 00732 b8 01 00 00 00 mov eax, 1 00737 eb 0c jmp SHORT $LN1@stbi__proc $LN38@stbi__proc: ; 3053 : } ; 3054 : ; 3055 : return stbi__err("unknown marker", "Corrupt JPEG"); 00739 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0P@NNGPHMMK@unknown?5marker@ 00740 e8 00 00 00 00 call stbi__err $LN1@stbi__proc: ; 3056 : } 00745 48 8b f8 mov rdi, rax 00748 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0074c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__process_marker$rtcFrameData 00753 e8 00 00 00 00 call _RTC_CheckStackVars 00758 48 8b c7 mov rax, rdi 0075b 48 8b 8d d8 03 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00762 48 33 cd xor rcx, rbp 00765 e8 00 00 00 00 call __security_check_cookie 0076a 48 8d a5 e8 03 00 00 lea rsp, QWORD PTR [rbp+1000] 00771 5f pop rdi 00772 5d pop rbp 00773 c3 ret 0 stbi__process_marker ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_finish _TEXT SEGMENT i$1 = 4 j$2 = 36 n$3 = 68 w$4 = 100 h$5 = 132 data$6 = 168 z$ = 416 stbi__jpeg_finish PROC ; COMDAT ; 2922 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 2923 : if (z->progressive) { 00020 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 00027 83 b8 30 48 00 00 00 cmp DWORD PTR [rax+18480], 0 0002e 0f 84 b1 01 00 00 je $LN11@stbi__jpeg ; 2924 : // dequantize and idct the data ; 2925 : int i, j, n; ; 2926 : for (n = 0; n < z->s->img_n; ++n) { 00034 c7 45 44 00 00 00 00 mov DWORD PTR n$3[rbp], 0 0003b eb 08 jmp SHORT $LN4@stbi__jpeg $LN2@stbi__jpeg: 0003d 8b 45 44 mov eax, DWORD PTR n$3[rbp] 00040 ff c0 inc eax 00042 89 45 44 mov DWORD PTR n$3[rbp], eax $LN4@stbi__jpeg: 00045 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 0004c 48 8b 00 mov rax, QWORD PTR [rax] 0004f 8b 40 08 mov eax, DWORD PTR [rax+8] 00052 39 45 44 cmp DWORD PTR n$3[rbp], eax 00055 0f 8d 8a 01 00 00 jge $LN3@stbi__jpeg ; 2927 : int w = (z->img_comp[n].x + 7) >> 3; 0005b 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] 0005f 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00063 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0006a 8b 84 01 bc 46 00 00 mov eax, DWORD PTR [rcx+rax+18108] 00071 83 c0 07 add eax, 7 00074 c1 f8 03 sar eax, 3 00077 89 45 64 mov DWORD PTR w$4[rbp], eax ; 2928 : int h = (z->img_comp[n].y + 7) >> 3; 0007a 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] 0007e 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00082 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00089 8b 84 01 c0 46 00 00 mov eax, DWORD PTR [rcx+rax+18112] 00090 83 c0 07 add eax, 7 00093 c1 f8 03 sar eax, 3 00096 89 85 84 00 00 00 mov DWORD PTR h$5[rbp], eax ; 2929 : for (j = 0; j < h; ++j) { 0009c c7 45 24 00 00 00 00 mov DWORD PTR j$2[rbp], 0 000a3 eb 08 jmp SHORT $LN7@stbi__jpeg $LN5@stbi__jpeg: 000a5 8b 45 24 mov eax, DWORD PTR j$2[rbp] 000a8 ff c0 inc eax 000aa 89 45 24 mov DWORD PTR j$2[rbp], eax $LN7@stbi__jpeg: 000ad 8b 85 84 00 00 00 mov eax, DWORD PTR h$5[rbp] 000b3 39 45 24 cmp DWORD PTR j$2[rbp], eax 000b6 0f 8d 24 01 00 00 jge $LN6@stbi__jpeg ; 2930 : for (i = 0; i < w; ++i) { 000bc c7 45 04 00 00 00 00 mov DWORD PTR i$1[rbp], 0 000c3 eb 08 jmp SHORT $LN10@stbi__jpeg $LN8@stbi__jpeg: 000c5 8b 45 04 mov eax, DWORD PTR i$1[rbp] 000c8 ff c0 inc eax 000ca 89 45 04 mov DWORD PTR i$1[rbp], eax $LN10@stbi__jpeg: 000cd 8b 45 64 mov eax, DWORD PTR w$4[rbp] 000d0 39 45 04 cmp DWORD PTR i$1[rbp], eax 000d3 0f 8d 02 01 00 00 jge $LN9@stbi__jpeg ; 2931 : short *data = z->img_comp[n].coeff + 000d9 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] 000dd 48 6b c0 60 imul rax, rax, 96 ; 00000060H 000e1 48 63 4d 44 movsxd rcx, DWORD PTR n$3[rbp] 000e5 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 000e9 48 8b 95 a0 01 00 00 mov rdx, QWORD PTR z$[rbp] 000f0 44 8b 45 24 mov r8d, DWORD PTR j$2[rbp] 000f4 44 0f af 84 0a f8 46 00 00 imul r8d, DWORD PTR [rdx+rcx+18168] 000fd 41 8b c8 mov ecx, r8d 00100 8b 55 04 mov edx, DWORD PTR i$1[rbp] 00103 03 d1 add edx, ecx 00105 8b ca mov ecx, edx 00107 6b c9 40 imul ecx, ecx, 64 ; 00000040H 0010a 48 63 c9 movsxd rcx, ecx 0010d 48 8b 95 a0 01 00 00 mov rdx, QWORD PTR z$[rbp] 00114 48 8b 84 02 f0 46 00 00 mov rax, QWORD PTR [rdx+rax+18160] 0011c 48 8d 04 48 lea rax, QWORD PTR [rax+rcx*2] 00120 48 89 85 a8 00 00 00 mov QWORD PTR data$6[rbp], rax ; 2932 : 64 * (i + j * z->img_comp[n].coeff_w); ; 2933 : stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); 00127 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] 0012b 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0012f 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 00136 48 63 84 01 ac 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18092] 0013e 48 69 c0 80 00 00 00 imul rax, rax, 128 ; 00000080H 00145 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR z$[rbp] 0014c 48 8d 84 01 88 34 00 00 lea rax, QWORD PTR [rcx+rax+13448] 00154 48 8b d0 mov rdx, rax 00157 48 8b 8d a8 00 00 00 mov rcx, QWORD PTR data$6[rbp] 0015e e8 00 00 00 00 call stbi__jpeg_dequantize 00163 90 npad 1 ; 2934 : z->idct_block_kernel(z->img_comp[n].data + 00164 48 63 45 44 movsxd rax, DWORD PTR n$3[rbp] 00168 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0016c 48 63 4d 44 movsxd rcx, DWORD PTR n$3[rbp] 00170 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00174 48 63 55 44 movsxd rdx, DWORD PTR n$3[rbp] 00178 48 6b d2 60 imul rdx, rdx, 96 ; 00000060H 0017c 4c 8b 85 a0 01 00 00 mov r8, QWORD PTR z$[rbp] 00183 41 8b 94 10 c4 46 00 00 mov edx, DWORD PTR [r8+rdx+18116] 0018b 0f af 55 24 imul edx, DWORD PTR j$2[rbp] 0018f c1 e2 03 shl edx, 3 00192 48 63 d2 movsxd rdx, edx 00195 4c 8b 85 a0 01 00 00 mov r8, QWORD PTR z$[rbp] 0019c 49 8b 8c 08 d0 46 00 00 mov rcx, QWORD PTR [r8+rcx+18128] 001a4 48 03 ca add rcx, rdx 001a7 8b 55 04 mov edx, DWORD PTR i$1[rbp] 001aa c1 e2 03 shl edx, 3 001ad 48 63 d2 movsxd rdx, edx 001b0 48 03 ca add rcx, rdx 001b3 4c 8b 85 a8 00 00 00 mov r8, QWORD PTR data$6[rbp] 001ba 48 8b 95 a0 01 00 00 mov rdx, QWORD PTR z$[rbp] 001c1 8b 94 02 c4 46 00 00 mov edx, DWORD PTR [rdx+rax+18116] 001c8 48 8b 85 a0 01 00 00 mov rax, QWORD PTR z$[rbp] 001cf ff 90 70 48 00 00 call QWORD PTR [rax+18544] 001d5 90 npad 1 ; 2935 : z->img_comp[n].w2 * j * 8 + ; 2936 : i * 8, ; 2937 : z->img_comp[n].w2, data); ; 2938 : } 001d6 e9 ea fe ff ff jmp $LN8@stbi__jpeg $LN9@stbi__jpeg: ; 2939 : } 001db e9 c5 fe ff ff jmp $LN5@stbi__jpeg $LN6@stbi__jpeg: ; 2940 : } 001e0 e9 58 fe ff ff jmp $LN2@stbi__jpeg $LN3@stbi__jpeg: $LN11@stbi__jpeg: ; 2941 : } ; 2942 : } 001e5 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] 001ec 5f pop rdi 001ed 5d pop rbp 001ee c3 ret 0 stbi__jpeg_finish ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_dequantize _TEXT SEGMENT i$ = 4 data$ = 256 dequant$ = 264 stbi__jpeg_dequantize PROC ; COMDAT ; 2915 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 2916 : int i; ; 2917 : for (i = 0; i < 64; ++i) 00025 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 0002c eb 08 jmp SHORT $LN4@stbi__jpeg $LN2@stbi__jpeg: 0002e 8b 45 04 mov eax, DWORD PTR i$[rbp] 00031 ff c0 inc eax 00033 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__jpeg: 00036 83 7d 04 40 cmp DWORD PTR i$[rbp], 64 ; 00000040H 0003a 7d 32 jge SHORT $LN3@stbi__jpeg ; 2918 : data[i] *= dequant[i]; 0003c 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00040 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 00044 48 8b 95 08 01 00 00 mov rdx, QWORD PTR dequant$[rbp] 0004b 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2] 0004f 48 8b 95 00 01 00 00 mov rdx, QWORD PTR data$[rbp] 00056 0f bf 04 42 movsx eax, WORD PTR [rdx+rax*2] 0005a 0f af c1 imul eax, ecx 0005d 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 00061 48 8b 95 00 01 00 00 mov rdx, QWORD PTR data$[rbp] 00068 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax 0006c eb c0 jmp SHORT $LN2@stbi__jpeg $LN3@stbi__jpeg: ; 2919 : } 0006e 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00075 5f pop rdi 00076 5d pop rbp 00077 c3 ret 0 stbi__jpeg_dequantize ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__parse_entropy_coded_data _TEXT SEGMENT i$5 = 4 j$6 = 36 data$7 = 80 n$8 = 228 w$9 = 260 h$10 = 292 ha$11 = 324 i$12 = 356 j$13 = 388 k$14 = 420 x$15 = 452 y$16 = 484 data$17 = 528 n$18 = 676 x2$19 = 708 y2$20 = 740 ha$21 = 772 i$22 = 804 j$23 = 836 n$24 = 868 w$25 = 900 h$26 = 932 data$27 = 968 ha$28 = 996 i$29 = 1028 j$30 = 1060 k$31 = 1092 x$32 = 1124 y$33 = 1156 n$34 = 1188 x2$35 = 1220 y2$36 = 1252 data$37 = 1288 tv518 = 1876 tv190 = 1876 tv311 = 1876 tv400 = 1876 __$ArrayPad$ = 1880 z$ = 1920 stbi__parse_entropy_coded_data PROC ; COMDAT ; 2745 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec a8 07 00 00 sub rsp, 1960 ; 000007a8H 0000e 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] 00013 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] 00018 b9 4a 01 00 00 mov ecx, 330 ; 0000014aH 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00022 f3 ab rep stosd 00024 48 8b 8c 24 c8 07 00 00 mov rcx, QWORD PTR [rsp+1992] 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00033 48 33 c5 xor rax, rbp 00036 48 89 85 58 07 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00049 90 npad 1 ; 2746 : stbi__jpeg_reset(z); 0004a 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00051 e8 00 00 00 00 call stbi__jpeg_reset 00056 90 npad 1 ; 2747 : if (!z->progressive) { 00057 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0005e 83 b8 30 48 00 00 00 cmp DWORD PTR [rax+18480], 0 00065 0f 85 72 06 00 00 jne $LN44@stbi__pars ; 2748 : if (z->scan_n == 1) { 0006b 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00072 83 b8 54 48 00 00 01 cmp DWORD PTR [rax+18516], 1 00079 0f 85 af 02 00 00 jne $LN46@stbi__pars ; 2749 : int i, j; ; 2750 : STBI_SIMD_ALIGN(short, data[64]); ; 2751 : int n = z->order[0]; 0007f b8 04 00 00 00 mov eax, 4 00084 48 6b c0 00 imul rax, rax, 0 00088 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0008f 8b 84 01 58 48 00 00 mov eax, DWORD PTR [rcx+rax+18520] 00096 89 85 e4 00 00 00 mov DWORD PTR n$8[rbp], eax ; 2752 : // non-interleaved data, we just need to process one block at a time, ; 2753 : // in trivial scanline order ; 2754 : // number of blocks to do just depends on how many actual "pixels" this ; 2755 : // component has, independent of interleaved MCU blocking and such ; 2756 : int w = (z->img_comp[n].x + 7) >> 3; 0009c 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR n$8[rbp] 000a3 48 6b c0 60 imul rax, rax, 96 ; 00000060H 000a7 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 000ae 8b 84 01 bc 46 00 00 mov eax, DWORD PTR [rcx+rax+18108] 000b5 83 c0 07 add eax, 7 000b8 c1 f8 03 sar eax, 3 000bb 89 85 04 01 00 00 mov DWORD PTR w$9[rbp], eax ; 2757 : int h = (z->img_comp[n].y + 7) >> 3; 000c1 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR n$8[rbp] 000c8 48 6b c0 60 imul rax, rax, 96 ; 00000060H 000cc 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 000d3 8b 84 01 c0 46 00 00 mov eax, DWORD PTR [rcx+rax+18112] 000da 83 c0 07 add eax, 7 000dd c1 f8 03 sar eax, 3 000e0 89 85 24 01 00 00 mov DWORD PTR h$10[rbp], eax ; 2758 : for (j = 0; j < h; ++j) { 000e6 c7 45 24 00 00 00 00 mov DWORD PTR j$6[rbp], 0 000ed eb 08 jmp SHORT $LN4@stbi__pars $LN2@stbi__pars: 000ef 8b 45 24 mov eax, DWORD PTR j$6[rbp] 000f2 ff c0 inc eax 000f4 89 45 24 mov DWORD PTR j$6[rbp], eax $LN4@stbi__pars: 000f7 8b 85 24 01 00 00 mov eax, DWORD PTR h$10[rbp] 000fd 39 45 24 cmp DWORD PTR j$6[rbp], eax 00100 0f 8d 19 02 00 00 jge $LN3@stbi__pars ; 2759 : for (i = 0; i < w; ++i) { 00106 c7 45 04 00 00 00 00 mov DWORD PTR i$5[rbp], 0 0010d eb 08 jmp SHORT $LN7@stbi__pars $LN5@stbi__pars: 0010f 8b 45 04 mov eax, DWORD PTR i$5[rbp] 00112 ff c0 inc eax 00114 89 45 04 mov DWORD PTR i$5[rbp], eax $LN7@stbi__pars: 00117 8b 85 04 01 00 00 mov eax, DWORD PTR w$9[rbp] 0011d 39 45 04 cmp DWORD PTR i$5[rbp], eax 00120 0f 8d f4 01 00 00 jge $LN6@stbi__pars ; 2760 : int ha = z->img_comp[n].ha; 00126 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR n$8[rbp] 0012d 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00131 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00138 8b 84 01 b4 46 00 00 mov eax, DWORD PTR [rcx+rax+18100] 0013f 89 85 44 01 00 00 mov DWORD PTR ha$11[rbp], eax ; 2761 : if (!stbi__jpeg_decode_block( 00145 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR n$8[rbp] 0014c 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00150 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00157 48 63 84 01 ac 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18092] 0015f 48 69 c0 80 00 00 00 imul rax, rax, 128 ; 00000080H 00166 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0016d 48 8d 84 01 88 34 00 00 lea rax, QWORD PTR [rcx+rax+13448] 00175 48 63 8d 44 01 00 00 movsxd rcx, DWORD PTR ha$11[rbp] 0017c 48 69 c9 00 04 00 00 imul rcx, rcx, 1024 ; 00000400H 00183 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 0018a 48 8d 8c 0a 88 36 00 00 lea rcx, QWORD PTR [rdx+rcx+13960] 00192 48 63 95 44 01 00 00 movsxd rdx, DWORD PTR ha$11[rbp] 00199 48 69 d2 90 06 00 00 imul rdx, rdx, 1680 ; 00000690H 001a0 4c 8b 85 80 07 00 00 mov r8, QWORD PTR z$[rbp] 001a7 49 8d 94 10 48 1a 00 00 lea rdx, QWORD PTR [r8+rdx+6728] 001af 4c 63 85 e4 00 00 00 movsxd r8, DWORD PTR n$8[rbp] 001b6 4d 6b c0 60 imul r8, r8, 96 ; 00000060H 001ba 4c 8b 8d 80 07 00 00 mov r9, QWORD PTR z$[rbp] 001c1 4f 63 84 01 b0 46 00 00 movsxd r8, DWORD PTR [r9+r8+18096] 001c9 4d 69 c0 90 06 00 00 imul r8, r8, 1680 ; 00000690H 001d0 4c 8b 8d 80 07 00 00 mov r9, QWORD PTR z$[rbp] 001d7 4f 8d 44 01 08 lea r8, QWORD PTR [r9+r8+8] 001dc 48 89 44 24 30 mov QWORD PTR [rsp+48], rax 001e1 8b 85 e4 00 00 00 mov eax, DWORD PTR n$8[rbp] 001e7 89 44 24 28 mov DWORD PTR [rsp+40], eax 001eb 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx 001f0 4c 8b ca mov r9, rdx 001f3 48 8d 55 50 lea rdx, QWORD PTR data$7[rbp] 001f7 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 001fe e8 00 00 00 00 call stbi__jpeg_decode_block 00203 85 c0 test eax, eax 00205 75 07 jne SHORT $LN48@stbi__pars ; 2762 : z, data, z->huff_dc + z->img_comp[n].hd, ; 2763 : z->huff_ac + ha, z->fast_ac[ha], n, ; 2764 : z->dequant[z->img_comp[n].tq])) ; 2765 : return 0; 00207 33 c0 xor eax, eax 00209 e9 6f 0a 00 00 jmp $LN1@stbi__pars $LN48@stbi__pars: ; 2766 : z->idct_block_kernel(z->img_comp[n].data + 0020e 48 63 85 e4 00 00 00 movsxd rax, DWORD PTR n$8[rbp] 00215 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00219 48 63 8d e4 00 00 00 movsxd rcx, DWORD PTR n$8[rbp] 00220 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00224 48 63 95 e4 00 00 00 movsxd rdx, DWORD PTR n$8[rbp] 0022b 48 6b d2 60 imul rdx, rdx, 96 ; 00000060H 0022f 4c 8b 85 80 07 00 00 mov r8, QWORD PTR z$[rbp] 00236 41 8b 94 10 c4 46 00 00 mov edx, DWORD PTR [r8+rdx+18116] 0023e 0f af 55 24 imul edx, DWORD PTR j$6[rbp] 00242 c1 e2 03 shl edx, 3 00245 48 63 d2 movsxd rdx, edx 00248 4c 8b 85 80 07 00 00 mov r8, QWORD PTR z$[rbp] 0024f 49 8b 8c 08 d0 46 00 00 mov rcx, QWORD PTR [r8+rcx+18128] 00257 48 03 ca add rcx, rdx 0025a 8b 55 04 mov edx, DWORD PTR i$5[rbp] 0025d c1 e2 03 shl edx, 3 00260 48 63 d2 movsxd rdx, edx 00263 48 03 ca add rcx, rdx 00266 4c 8d 45 50 lea r8, QWORD PTR data$7[rbp] 0026a 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 00271 8b 94 02 c4 46 00 00 mov edx, DWORD PTR [rdx+rax+18116] 00278 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0027f ff 90 70 48 00 00 call QWORD PTR [rax+18544] 00285 90 npad 1 ; 2767 : z->img_comp[n].w2 * j * 8 + ; 2768 : i * 8, ; 2769 : z->img_comp[n].w2, data); ; 2770 : // every data block is an MCU, so countdown the restart interval ; 2771 : if (--z->todo <= 0) { 00286 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0028d 8b 80 6c 48 00 00 mov eax, DWORD PTR [rax+18540] 00293 ff c8 dec eax 00295 89 85 54 07 00 00 mov DWORD PTR tv190[rbp], eax 0029b 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 002a2 8b 8d 54 07 00 00 mov ecx, DWORD PTR tv190[rbp] 002a8 89 88 6c 48 00 00 mov DWORD PTR [rax+18540], ecx 002ae 83 bd 54 07 00 00 00 cmp DWORD PTR tv190[rbp], 0 002b5 7f 5e jg SHORT $LN49@stbi__pars ; 2772 : if (z->code_bits < 24) 002b7 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 002be 83 b8 24 48 00 00 18 cmp DWORD PTR [rax+18468], 24 002c5 7d 0d jge SHORT $LN50@stbi__pars ; 2773 : stbi__grow_buffer_unsafe(z); 002c7 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 002ce e8 00 00 00 00 call stbi__grow_buffer_unsafe 002d3 90 npad 1 $LN50@stbi__pars: ; 2774 : // if it's NOT a restart, then just bail, so we get corrupt data ; 2775 : // rather than no data ; 2776 : if (!STBI__RESTART(z->marker)) 002d4 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 002db 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 002e2 3d d0 00 00 00 cmp eax, 208 ; 000000d0H 002e7 7c 15 jl SHORT $LN52@stbi__pars 002e9 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 002f0 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 002f7 3d d7 00 00 00 cmp eax, 215 ; 000000d7H 002fc 7e 0a jle SHORT $LN51@stbi__pars $LN52@stbi__pars: ; 2777 : return 1; 002fe b8 01 00 00 00 mov eax, 1 00303 e9 75 09 00 00 jmp $LN1@stbi__pars $LN51@stbi__pars: ; 2778 : stbi__jpeg_reset(z); 00308 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0030f e8 00 00 00 00 call stbi__jpeg_reset 00314 90 npad 1 $LN49@stbi__pars: ; 2779 : } ; 2780 : } 00315 e9 f5 fd ff ff jmp $LN5@stbi__pars $LN6@stbi__pars: ; 2781 : } 0031a e9 d0 fd ff ff jmp $LN2@stbi__pars $LN3@stbi__pars: ; 2782 : return 1; 0031f b8 01 00 00 00 mov eax, 1 00324 e9 54 09 00 00 jmp $LN1@stbi__pars ; 2783 : } else { // interleaved 00329 e9 aa 03 00 00 jmp $LN47@stbi__pars $LN46@stbi__pars: ; 2784 : int i, j, k, x, y; ; 2785 : STBI_SIMD_ALIGN(short, data[64]); ; 2786 : for (j = 0; j < z->img_mcu_y; ++j) { 0032e c7 85 84 01 00 00 00 00 00 00 mov DWORD PTR j$13[rbp], 0 00338 eb 0e jmp SHORT $LN10@stbi__pars $LN8@stbi__pars: 0033a 8b 85 84 01 00 00 mov eax, DWORD PTR j$13[rbp] 00340 ff c0 inc eax 00342 89 85 84 01 00 00 mov DWORD PTR j$13[rbp], eax $LN10@stbi__pars: 00348 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0034f 8b 80 94 46 00 00 mov eax, DWORD PTR [rax+18068] 00355 39 85 84 01 00 00 cmp DWORD PTR j$13[rbp], eax 0035b 0f 8d 6d 03 00 00 jge $LN9@stbi__pars ; 2787 : for (i = 0; i < z->img_mcu_x; ++i) { 00361 c7 85 64 01 00 00 00 00 00 00 mov DWORD PTR i$12[rbp], 0 0036b eb 0e jmp SHORT $LN13@stbi__pars $LN11@stbi__pars: 0036d 8b 85 64 01 00 00 mov eax, DWORD PTR i$12[rbp] 00373 ff c0 inc eax 00375 89 85 64 01 00 00 mov DWORD PTR i$12[rbp], eax $LN13@stbi__pars: 0037b 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00382 8b 80 90 46 00 00 mov eax, DWORD PTR [rax+18064] 00388 39 85 64 01 00 00 cmp DWORD PTR i$12[rbp], eax 0038e 0f 8d 35 03 00 00 jge $LN12@stbi__pars ; 2788 : // scan an interleaved mcu... process scan_n components in order ; 2789 : for (k = 0; k < z->scan_n; ++k) { 00394 c7 85 a4 01 00 00 00 00 00 00 mov DWORD PTR k$14[rbp], 0 0039e eb 0e jmp SHORT $LN16@stbi__pars $LN14@stbi__pars: 003a0 8b 85 a4 01 00 00 mov eax, DWORD PTR k$14[rbp] 003a6 ff c0 inc eax 003a8 89 85 a4 01 00 00 mov DWORD PTR k$14[rbp], eax $LN16@stbi__pars: 003ae 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 003b5 8b 80 54 48 00 00 mov eax, DWORD PTR [rax+18516] 003bb 39 85 a4 01 00 00 cmp DWORD PTR k$14[rbp], eax 003c1 0f 8d 6e 02 00 00 jge $LN15@stbi__pars ; 2790 : int n = z->order[k]; 003c7 48 63 85 a4 01 00 00 movsxd rax, DWORD PTR k$14[rbp] 003ce 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 003d5 8b 84 81 58 48 00 00 mov eax, DWORD PTR [rcx+rax*4+18520] 003dc 89 85 a4 02 00 00 mov DWORD PTR n$18[rbp], eax ; 2791 : // scan out an mcu's worth of this component; that's just determined ; 2792 : // by the basic H and V specified for the component ; 2793 : for (y = 0; y < z->img_comp[n].v; ++y) { 003e2 c7 85 e4 01 00 00 00 00 00 00 mov DWORD PTR y$16[rbp], 0 003ec eb 0e jmp SHORT $LN19@stbi__pars $LN17@stbi__pars: 003ee 8b 85 e4 01 00 00 mov eax, DWORD PTR y$16[rbp] 003f4 ff c0 inc eax 003f6 89 85 e4 01 00 00 mov DWORD PTR y$16[rbp], eax $LN19@stbi__pars: 003fc 48 63 85 a4 02 00 00 movsxd rax, DWORD PTR n$18[rbp] 00403 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00407 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0040e 8b 84 01 a8 46 00 00 mov eax, DWORD PTR [rcx+rax+18088] 00415 39 85 e4 01 00 00 cmp DWORD PTR y$16[rbp], eax 0041b 0f 8d 0f 02 00 00 jge $LN18@stbi__pars ; 2794 : for (x = 0; x < z->img_comp[n].h; ++x) { 00421 c7 85 c4 01 00 00 00 00 00 00 mov DWORD PTR x$15[rbp], 0 0042b eb 0e jmp SHORT $LN22@stbi__pars $LN20@stbi__pars: 0042d 8b 85 c4 01 00 00 mov eax, DWORD PTR x$15[rbp] 00433 ff c0 inc eax 00435 89 85 c4 01 00 00 mov DWORD PTR x$15[rbp], eax $LN22@stbi__pars: 0043b 48 63 85 a4 02 00 00 movsxd rax, DWORD PTR n$18[rbp] 00442 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00446 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0044d 8b 84 01 a4 46 00 00 mov eax, DWORD PTR [rcx+rax+18084] 00454 39 85 c4 01 00 00 cmp DWORD PTR x$15[rbp], eax 0045a 0f 8d cb 01 00 00 jge $LN21@stbi__pars ; 2795 : int x2 = 00460 48 63 85 a4 02 00 00 movsxd rax, DWORD PTR n$18[rbp] 00467 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0046b 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00472 8b 95 64 01 00 00 mov edx, DWORD PTR i$12[rbp] 00478 0f af 94 01 a4 46 00 00 imul edx, DWORD PTR [rcx+rax+18084] 00480 8b c2 mov eax, edx 00482 03 85 c4 01 00 00 add eax, DWORD PTR x$15[rbp] 00488 c1 e0 03 shl eax, 3 0048b 89 85 c4 02 00 00 mov DWORD PTR x2$19[rbp], eax ; 2796 : (i * z->img_comp[n].h + x) * ; 2797 : 8; ; 2798 : int y2 = 00491 48 63 85 a4 02 00 00 movsxd rax, DWORD PTR n$18[rbp] 00498 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0049c 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 004a3 8b 95 84 01 00 00 mov edx, DWORD PTR j$13[rbp] 004a9 0f af 94 01 a8 46 00 00 imul edx, DWORD PTR [rcx+rax+18088] 004b1 8b c2 mov eax, edx 004b3 03 85 e4 01 00 00 add eax, DWORD PTR y$16[rbp] 004b9 c1 e0 03 shl eax, 3 004bc 89 85 e4 02 00 00 mov DWORD PTR y2$20[rbp], eax ; 2799 : (j * z->img_comp[n].v + y) * ; 2800 : 8; ; 2801 : int ha = z->img_comp[n].ha; 004c2 48 63 85 a4 02 00 00 movsxd rax, DWORD PTR n$18[rbp] 004c9 48 6b c0 60 imul rax, rax, 96 ; 00000060H 004cd 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 004d4 8b 84 01 b4 46 00 00 mov eax, DWORD PTR [rcx+rax+18100] 004db 89 85 04 03 00 00 mov DWORD PTR ha$21[rbp], eax ; 2802 : if (!stbi__jpeg_decode_block( 004e1 48 63 85 a4 02 00 00 movsxd rax, DWORD PTR n$18[rbp] 004e8 48 6b c0 60 imul rax, rax, 96 ; 00000060H 004ec 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 004f3 48 63 84 01 ac 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18092] 004fb 48 69 c0 80 00 00 00 imul rax, rax, 128 ; 00000080H 00502 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00509 48 8d 84 01 88 34 00 00 lea rax, QWORD PTR [rcx+rax+13448] 00511 48 63 8d 04 03 00 00 movsxd rcx, DWORD PTR ha$21[rbp] 00518 48 69 c9 00 04 00 00 imul rcx, rcx, 1024 ; 00000400H 0051f 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 00526 48 8d 8c 0a 88 36 00 00 lea rcx, QWORD PTR [rdx+rcx+13960] 0052e 48 63 95 04 03 00 00 movsxd rdx, DWORD PTR ha$21[rbp] 00535 48 69 d2 90 06 00 00 imul rdx, rdx, 1680 ; 00000690H 0053c 4c 8b 85 80 07 00 00 mov r8, QWORD PTR z$[rbp] 00543 49 8d 94 10 48 1a 00 00 lea rdx, QWORD PTR [r8+rdx+6728] 0054b 4c 63 85 a4 02 00 00 movsxd r8, DWORD PTR n$18[rbp] 00552 4d 6b c0 60 imul r8, r8, 96 ; 00000060H 00556 4c 8b 8d 80 07 00 00 mov r9, QWORD PTR z$[rbp] 0055d 4f 63 84 01 b0 46 00 00 movsxd r8, DWORD PTR [r9+r8+18096] 00565 4d 69 c0 90 06 00 00 imul r8, r8, 1680 ; 00000690H 0056c 4c 8b 8d 80 07 00 00 mov r9, QWORD PTR z$[rbp] 00573 4f 8d 44 01 08 lea r8, QWORD PTR [r9+r8+8] 00578 48 89 44 24 30 mov QWORD PTR [rsp+48], rax 0057d 8b 85 a4 02 00 00 mov eax, DWORD PTR n$18[rbp] 00583 89 44 24 28 mov DWORD PTR [rsp+40], eax 00587 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx 0058c 4c 8b ca mov r9, rdx 0058f 48 8d 95 10 02 00 00 lea rdx, QWORD PTR data$17[rbp] 00596 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0059d e8 00 00 00 00 call stbi__jpeg_decode_block 005a2 85 c0 test eax, eax 005a4 75 07 jne SHORT $LN53@stbi__pars ; 2803 : z, data, ; 2804 : z->huff_dc + ; 2805 : z->img_comp[n] ; 2806 : .hd, ; 2807 : z->huff_ac + ha, ; 2808 : z->fast_ac[ha], n, ; 2809 : z->dequant[z->img_comp[n] ; 2810 : .tq])) ; 2811 : return 0; 005a6 33 c0 xor eax, eax 005a8 e9 d0 06 00 00 jmp $LN1@stbi__pars $LN53@stbi__pars: ; 2812 : z->idct_block_kernel( 005ad 48 63 85 a4 02 00 00 movsxd rax, DWORD PTR n$18[rbp] 005b4 48 6b c0 60 imul rax, rax, 96 ; 00000060H 005b8 48 63 8d a4 02 00 00 movsxd rcx, DWORD PTR n$18[rbp] 005bf 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 005c3 48 63 95 a4 02 00 00 movsxd rdx, DWORD PTR n$18[rbp] 005ca 48 6b d2 60 imul rdx, rdx, 96 ; 00000060H 005ce 4c 8b 85 80 07 00 00 mov r8, QWORD PTR z$[rbp] 005d5 41 8b 94 10 c4 46 00 00 mov edx, DWORD PTR [r8+rdx+18116] 005dd 0f af 95 e4 02 00 00 imul edx, DWORD PTR y2$20[rbp] 005e4 48 63 d2 movsxd rdx, edx 005e7 4c 8b 85 80 07 00 00 mov r8, QWORD PTR z$[rbp] 005ee 49 8b 8c 08 d0 46 00 00 mov rcx, QWORD PTR [r8+rcx+18128] 005f6 48 03 ca add rcx, rdx 005f9 48 63 95 c4 02 00 00 movsxd rdx, DWORD PTR x2$19[rbp] 00600 48 03 ca add rcx, rdx 00603 4c 8d 85 10 02 00 00 lea r8, QWORD PTR data$17[rbp] 0060a 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 00611 8b 94 02 c4 46 00 00 mov edx, DWORD PTR [rdx+rax+18116] 00618 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0061f ff 90 70 48 00 00 call QWORD PTR [rax+18544] 00625 90 npad 1 ; 2813 : z->img_comp[n].data + ; 2814 : z->img_comp[n].w2 * ; 2815 : y2 + ; 2816 : x2, ; 2817 : z->img_comp[n].w2, data); ; 2818 : } 00626 e9 02 fe ff ff jmp $LN20@stbi__pars $LN21@stbi__pars: ; 2819 : } 0062b e9 be fd ff ff jmp $LN17@stbi__pars $LN18@stbi__pars: ; 2820 : } 00630 e9 6b fd ff ff jmp $LN14@stbi__pars $LN15@stbi__pars: ; 2821 : // after all interleaved components, that's an interleaved MCU, ; 2822 : // so now count down the restart interval ; 2823 : if (--z->todo <= 0) { 00635 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0063c 8b 80 6c 48 00 00 mov eax, DWORD PTR [rax+18540] 00642 ff c8 dec eax 00644 89 85 54 07 00 00 mov DWORD PTR tv311[rbp], eax 0064a 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00651 8b 8d 54 07 00 00 mov ecx, DWORD PTR tv311[rbp] 00657 89 88 6c 48 00 00 mov DWORD PTR [rax+18540], ecx 0065d 83 bd 54 07 00 00 00 cmp DWORD PTR tv311[rbp], 0 00664 7f 5e jg SHORT $LN54@stbi__pars ; 2824 : if (z->code_bits < 24) 00666 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0066d 83 b8 24 48 00 00 18 cmp DWORD PTR [rax+18468], 24 00674 7d 0d jge SHORT $LN55@stbi__pars ; 2825 : stbi__grow_buffer_unsafe(z); 00676 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0067d e8 00 00 00 00 call stbi__grow_buffer_unsafe 00682 90 npad 1 $LN55@stbi__pars: ; 2826 : if (!STBI__RESTART(z->marker)) 00683 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0068a 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 00691 3d d0 00 00 00 cmp eax, 208 ; 000000d0H 00696 7c 15 jl SHORT $LN57@stbi__pars 00698 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0069f 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 006a6 3d d7 00 00 00 cmp eax, 215 ; 000000d7H 006ab 7e 0a jle SHORT $LN56@stbi__pars $LN57@stbi__pars: ; 2827 : return 1; 006ad b8 01 00 00 00 mov eax, 1 006b2 e9 c6 05 00 00 jmp $LN1@stbi__pars $LN56@stbi__pars: ; 2828 : stbi__jpeg_reset(z); 006b7 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 006be e8 00 00 00 00 call stbi__jpeg_reset 006c3 90 npad 1 $LN54@stbi__pars: ; 2829 : } ; 2830 : } 006c4 e9 a4 fc ff ff jmp $LN11@stbi__pars $LN12@stbi__pars: ; 2831 : } 006c9 e9 6c fc ff ff jmp $LN8@stbi__pars $LN9@stbi__pars: ; 2832 : return 1; 006ce b8 01 00 00 00 mov eax, 1 006d3 e9 a5 05 00 00 jmp $LN1@stbi__pars $LN47@stbi__pars: ; 2833 : } ; 2834 : } else { 006d8 e9 a0 05 00 00 jmp $LN45@stbi__pars $LN44@stbi__pars: ; 2835 : if (z->scan_n == 1) { 006dd 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 006e4 83 b8 54 48 00 00 01 cmp DWORD PTR [rax+18516], 1 006eb 0f 85 a5 02 00 00 jne $LN58@stbi__pars ; 2836 : int i, j; ; 2837 : int n = z->order[0]; 006f1 b8 04 00 00 00 mov eax, 4 006f6 48 6b c0 00 imul rax, rax, 0 006fa 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00701 8b 84 01 58 48 00 00 mov eax, DWORD PTR [rcx+rax+18520] 00708 89 85 64 03 00 00 mov DWORD PTR n$24[rbp], eax ; 2838 : // non-interleaved data, we just need to process one block at a time, ; 2839 : // in trivial scanline order ; 2840 : // number of blocks to do just depends on how many actual "pixels" this ; 2841 : // component has, independent of interleaved MCU blocking and such ; 2842 : int w = (z->img_comp[n].x + 7) >> 3; 0070e 48 63 85 64 03 00 00 movsxd rax, DWORD PTR n$24[rbp] 00715 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00719 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00720 8b 84 01 bc 46 00 00 mov eax, DWORD PTR [rcx+rax+18108] 00727 83 c0 07 add eax, 7 0072a c1 f8 03 sar eax, 3 0072d 89 85 84 03 00 00 mov DWORD PTR w$25[rbp], eax ; 2843 : int h = (z->img_comp[n].y + 7) >> 3; 00733 48 63 85 64 03 00 00 movsxd rax, DWORD PTR n$24[rbp] 0073a 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0073e 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00745 8b 84 01 c0 46 00 00 mov eax, DWORD PTR [rcx+rax+18112] 0074c 83 c0 07 add eax, 7 0074f c1 f8 03 sar eax, 3 00752 89 85 a4 03 00 00 mov DWORD PTR h$26[rbp], eax ; 2844 : for (j = 0; j < h; ++j) { 00758 c7 85 44 03 00 00 00 00 00 00 mov DWORD PTR j$23[rbp], 0 00762 eb 0e jmp SHORT $LN25@stbi__pars $LN23@stbi__pars: 00764 8b 85 44 03 00 00 mov eax, DWORD PTR j$23[rbp] 0076a ff c0 inc eax 0076c 89 85 44 03 00 00 mov DWORD PTR j$23[rbp], eax $LN25@stbi__pars: 00772 8b 85 a4 03 00 00 mov eax, DWORD PTR h$26[rbp] 00778 39 85 44 03 00 00 cmp DWORD PTR j$23[rbp], eax 0077e 0f 8d 03 02 00 00 jge $LN24@stbi__pars ; 2845 : for (i = 0; i < w; ++i) { 00784 c7 85 24 03 00 00 00 00 00 00 mov DWORD PTR i$22[rbp], 0 0078e eb 0e jmp SHORT $LN28@stbi__pars $LN26@stbi__pars: 00790 8b 85 24 03 00 00 mov eax, DWORD PTR i$22[rbp] 00796 ff c0 inc eax 00798 89 85 24 03 00 00 mov DWORD PTR i$22[rbp], eax $LN28@stbi__pars: 0079e 8b 85 84 03 00 00 mov eax, DWORD PTR w$25[rbp] 007a4 39 85 24 03 00 00 cmp DWORD PTR i$22[rbp], eax 007aa 0f 8d d2 01 00 00 jge $LN27@stbi__pars ; 2846 : short *data = z->img_comp[n].coeff + 007b0 48 63 85 64 03 00 00 movsxd rax, DWORD PTR n$24[rbp] 007b7 48 6b c0 60 imul rax, rax, 96 ; 00000060H 007bb 48 63 8d 64 03 00 00 movsxd rcx, DWORD PTR n$24[rbp] 007c2 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 007c6 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 007cd 44 8b 85 44 03 00 00 mov r8d, DWORD PTR j$23[rbp] 007d4 44 0f af 84 0a f8 46 00 00 imul r8d, DWORD PTR [rdx+rcx+18168] 007dd 41 8b c8 mov ecx, r8d 007e0 8b 95 24 03 00 00 mov edx, DWORD PTR i$22[rbp] 007e6 03 d1 add edx, ecx 007e8 8b ca mov ecx, edx 007ea 6b c9 40 imul ecx, ecx, 64 ; 00000040H 007ed 48 63 c9 movsxd rcx, ecx 007f0 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 007f7 48 8b 84 02 f0 46 00 00 mov rax, QWORD PTR [rdx+rax+18160] 007ff 48 8d 04 48 lea rax, QWORD PTR [rax+rcx*2] 00803 48 89 85 c8 03 00 00 mov QWORD PTR data$27[rbp], rax ; 2847 : 64 * (i + j * z->img_comp[n].coeff_w); ; 2848 : if (z->spec_start == 0) { 0080a 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00811 83 b8 34 48 00 00 00 cmp DWORD PTR [rax+18484], 0 00818 75 57 jne SHORT $LN60@stbi__pars ; 2849 : if (!stbi__jpeg_decode_block_prog_dc( 0081a 48 63 85 64 03 00 00 movsxd rax, DWORD PTR n$24[rbp] 00821 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00825 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0082c 48 63 84 01 b0 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18096] 00834 48 69 c0 90 06 00 00 imul rax, rax, 1680 ; 00000690H 0083b 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00842 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] 00847 44 8b 8d 64 03 00 00 mov r9d, DWORD PTR n$24[rbp] 0084e 4c 8b c0 mov r8, rax 00851 48 8b 95 c8 03 00 00 mov rdx, QWORD PTR data$27[rbp] 00858 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 0085f e8 00 00 00 00 call stbi__jpeg_decode_block_prog_dc 00864 85 c0 test eax, eax 00866 75 07 jne SHORT $LN62@stbi__pars ; 2850 : z, data, &z->huff_dc[z->img_comp[n].hd], ; 2851 : n)) ; 2852 : return 0; 00868 33 c0 xor eax, eax 0086a e9 0e 04 00 00 jmp $LN1@stbi__pars $LN62@stbi__pars: ; 2853 : } else { 0086f eb 7d jmp SHORT $LN61@stbi__pars $LN60@stbi__pars: ; 2854 : int ha = z->img_comp[n].ha; 00871 48 63 85 64 03 00 00 movsxd rax, DWORD PTR n$24[rbp] 00878 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0087c 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00883 8b 84 01 b4 46 00 00 mov eax, DWORD PTR [rcx+rax+18100] 0088a 89 85 e4 03 00 00 mov DWORD PTR ha$28[rbp], eax ; 2855 : if (!stbi__jpeg_decode_block_prog_ac( 00890 48 63 85 e4 03 00 00 movsxd rax, DWORD PTR ha$28[rbp] 00897 48 69 c0 00 04 00 00 imul rax, rax, 1024 ; 00000400H 0089e 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 008a5 48 8d 84 01 88 36 00 00 lea rax, QWORD PTR [rcx+rax+13960] 008ad 48 63 8d e4 03 00 00 movsxd rcx, DWORD PTR ha$28[rbp] 008b4 48 69 c9 90 06 00 00 imul rcx, rcx, 1680 ; 00000690H 008bb 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 008c2 48 8d 8c 0a 48 1a 00 00 lea rcx, QWORD PTR [rdx+rcx+6728] 008ca 4c 8b c8 mov r9, rax 008cd 4c 8b c1 mov r8, rcx 008d0 48 8b 95 c8 03 00 00 mov rdx, QWORD PTR data$27[rbp] 008d7 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 008de e8 00 00 00 00 call stbi__jpeg_decode_block_prog_ac 008e3 85 c0 test eax, eax 008e5 75 07 jne SHORT $LN63@stbi__pars ; 2856 : z, data, &z->huff_ac[ha], ; 2857 : z->fast_ac[ha])) ; 2858 : return 0; 008e7 33 c0 xor eax, eax 008e9 e9 8f 03 00 00 jmp $LN1@stbi__pars $LN63@stbi__pars: $LN61@stbi__pars: ; 2859 : } ; 2860 : // every data block is an MCU, so countdown the restart interval ; 2861 : if (--z->todo <= 0) { 008ee 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 008f5 8b 80 6c 48 00 00 mov eax, DWORD PTR [rax+18540] 008fb ff c8 dec eax 008fd 89 85 54 07 00 00 mov DWORD PTR tv400[rbp], eax 00903 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 0090a 8b 8d 54 07 00 00 mov ecx, DWORD PTR tv400[rbp] 00910 89 88 6c 48 00 00 mov DWORD PTR [rax+18540], ecx 00916 83 bd 54 07 00 00 00 cmp DWORD PTR tv400[rbp], 0 0091d 7f 5e jg SHORT $LN64@stbi__pars ; 2862 : if (z->code_bits < 24) 0091f 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00926 83 b8 24 48 00 00 18 cmp DWORD PTR [rax+18468], 24 0092d 7d 0d jge SHORT $LN65@stbi__pars ; 2863 : stbi__grow_buffer_unsafe(z); 0092f 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00936 e8 00 00 00 00 call stbi__grow_buffer_unsafe 0093b 90 npad 1 $LN65@stbi__pars: ; 2864 : if (!STBI__RESTART(z->marker)) 0093c 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00943 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 0094a 3d d0 00 00 00 cmp eax, 208 ; 000000d0H 0094f 7c 15 jl SHORT $LN67@stbi__pars 00951 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00958 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 0095f 3d d7 00 00 00 cmp eax, 215 ; 000000d7H 00964 7e 0a jle SHORT $LN66@stbi__pars $LN67@stbi__pars: ; 2865 : return 1; 00966 b8 01 00 00 00 mov eax, 1 0096b e9 0d 03 00 00 jmp $LN1@stbi__pars $LN66@stbi__pars: ; 2866 : stbi__jpeg_reset(z); 00970 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00977 e8 00 00 00 00 call stbi__jpeg_reset 0097c 90 npad 1 $LN64@stbi__pars: ; 2867 : } ; 2868 : } 0097d e9 0e fe ff ff jmp $LN26@stbi__pars $LN27@stbi__pars: ; 2869 : } 00982 e9 dd fd ff ff jmp $LN23@stbi__pars $LN24@stbi__pars: ; 2870 : return 1; 00987 b8 01 00 00 00 mov eax, 1 0098c e9 ec 02 00 00 jmp $LN1@stbi__pars ; 2871 : } else { // interleaved 00991 e9 e7 02 00 00 jmp $LN59@stbi__pars $LN58@stbi__pars: ; 2872 : int i, j, k, x, y; ; 2873 : for (j = 0; j < z->img_mcu_y; ++j) { 00996 c7 85 24 04 00 00 00 00 00 00 mov DWORD PTR j$30[rbp], 0 009a0 eb 0e jmp SHORT $LN31@stbi__pars $LN29@stbi__pars: 009a2 8b 85 24 04 00 00 mov eax, DWORD PTR j$30[rbp] 009a8 ff c0 inc eax 009aa 89 85 24 04 00 00 mov DWORD PTR j$30[rbp], eax $LN31@stbi__pars: 009b0 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 009b7 8b 80 94 46 00 00 mov eax, DWORD PTR [rax+18068] 009bd 39 85 24 04 00 00 cmp DWORD PTR j$30[rbp], eax 009c3 0f 8d af 02 00 00 jge $LN30@stbi__pars ; 2874 : for (i = 0; i < z->img_mcu_x; ++i) { 009c9 c7 85 04 04 00 00 00 00 00 00 mov DWORD PTR i$29[rbp], 0 009d3 eb 0e jmp SHORT $LN34@stbi__pars $LN32@stbi__pars: 009d5 8b 85 04 04 00 00 mov eax, DWORD PTR i$29[rbp] 009db ff c0 inc eax 009dd 89 85 04 04 00 00 mov DWORD PTR i$29[rbp], eax $LN34@stbi__pars: 009e3 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 009ea 8b 80 90 46 00 00 mov eax, DWORD PTR [rax+18064] 009f0 39 85 04 04 00 00 cmp DWORD PTR i$29[rbp], eax 009f6 0f 8d 77 02 00 00 jge $LN33@stbi__pars ; 2875 : // scan an interleaved mcu... process scan_n components in order ; 2876 : for (k = 0; k < z->scan_n; ++k) { 009fc c7 85 44 04 00 00 00 00 00 00 mov DWORD PTR k$31[rbp], 0 00a06 eb 0e jmp SHORT $LN37@stbi__pars $LN35@stbi__pars: 00a08 8b 85 44 04 00 00 mov eax, DWORD PTR k$31[rbp] 00a0e ff c0 inc eax 00a10 89 85 44 04 00 00 mov DWORD PTR k$31[rbp], eax $LN37@stbi__pars: 00a16 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00a1d 8b 80 54 48 00 00 mov eax, DWORD PTR [rax+18516] 00a23 39 85 44 04 00 00 cmp DWORD PTR k$31[rbp], eax 00a29 0f 8d b3 01 00 00 jge $LN36@stbi__pars ; 2877 : int n = z->order[k]; 00a2f 48 63 85 44 04 00 00 movsxd rax, DWORD PTR k$31[rbp] 00a36 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00a3d 8b 84 81 58 48 00 00 mov eax, DWORD PTR [rcx+rax*4+18520] 00a44 89 85 a4 04 00 00 mov DWORD PTR n$34[rbp], eax ; 2878 : // scan out an mcu's worth of this component; that's just determined ; 2879 : // by the basic H and V specified for the component ; 2880 : for (y = 0; y < z->img_comp[n].v; ++y) { 00a4a c7 85 84 04 00 00 00 00 00 00 mov DWORD PTR y$33[rbp], 0 00a54 eb 0e jmp SHORT $LN40@stbi__pars $LN38@stbi__pars: 00a56 8b 85 84 04 00 00 mov eax, DWORD PTR y$33[rbp] 00a5c ff c0 inc eax 00a5e 89 85 84 04 00 00 mov DWORD PTR y$33[rbp], eax $LN40@stbi__pars: 00a64 48 63 85 a4 04 00 00 movsxd rax, DWORD PTR n$34[rbp] 00a6b 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00a6f 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00a76 8b 84 01 a8 46 00 00 mov eax, DWORD PTR [rcx+rax+18088] 00a7d 39 85 84 04 00 00 cmp DWORD PTR y$33[rbp], eax 00a83 0f 8d 54 01 00 00 jge $LN39@stbi__pars ; 2881 : for (x = 0; x < z->img_comp[n].h; ++x) { 00a89 c7 85 64 04 00 00 00 00 00 00 mov DWORD PTR x$32[rbp], 0 00a93 eb 0e jmp SHORT $LN43@stbi__pars $LN41@stbi__pars: 00a95 8b 85 64 04 00 00 mov eax, DWORD PTR x$32[rbp] 00a9b ff c0 inc eax 00a9d 89 85 64 04 00 00 mov DWORD PTR x$32[rbp], eax $LN43@stbi__pars: 00aa3 48 63 85 a4 04 00 00 movsxd rax, DWORD PTR n$34[rbp] 00aaa 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00aae 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00ab5 8b 84 01 a4 46 00 00 mov eax, DWORD PTR [rcx+rax+18084] 00abc 39 85 64 04 00 00 cmp DWORD PTR x$32[rbp], eax 00ac2 0f 8d 10 01 00 00 jge $LN42@stbi__pars ; 2882 : int x2 = (i * z->img_comp[n].h + x); 00ac8 48 63 85 a4 04 00 00 movsxd rax, DWORD PTR n$34[rbp] 00acf 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00ad3 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00ada 8b 95 04 04 00 00 mov edx, DWORD PTR i$29[rbp] 00ae0 0f af 94 01 a4 46 00 00 imul edx, DWORD PTR [rcx+rax+18084] 00ae8 8b c2 mov eax, edx 00aea 03 85 64 04 00 00 add eax, DWORD PTR x$32[rbp] 00af0 89 85 c4 04 00 00 mov DWORD PTR x2$35[rbp], eax ; 2883 : int y2 = (j * z->img_comp[n].v + y); 00af6 48 63 85 a4 04 00 00 movsxd rax, DWORD PTR n$34[rbp] 00afd 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00b01 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00b08 8b 95 24 04 00 00 mov edx, DWORD PTR j$30[rbp] 00b0e 0f af 94 01 a8 46 00 00 imul edx, DWORD PTR [rcx+rax+18088] 00b16 8b c2 mov eax, edx 00b18 03 85 84 04 00 00 add eax, DWORD PTR y$33[rbp] 00b1e 89 85 e4 04 00 00 mov DWORD PTR y2$36[rbp], eax ; 2884 : short *data = 00b24 48 63 85 a4 04 00 00 movsxd rax, DWORD PTR n$34[rbp] 00b2b 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00b2f 48 63 8d a4 04 00 00 movsxd rcx, DWORD PTR n$34[rbp] 00b36 48 6b c9 60 imul rcx, rcx, 96 ; 00000060H 00b3a 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 00b41 44 8b 85 e4 04 00 00 mov r8d, DWORD PTR y2$36[rbp] 00b48 44 0f af 84 0a f8 46 00 00 imul r8d, DWORD PTR [rdx+rcx+18168] 00b51 41 8b c8 mov ecx, r8d 00b54 8b 95 c4 04 00 00 mov edx, DWORD PTR x2$35[rbp] 00b5a 03 d1 add edx, ecx 00b5c 8b ca mov ecx, edx 00b5e 6b c9 40 imul ecx, ecx, 64 ; 00000040H 00b61 48 63 c9 movsxd rcx, ecx 00b64 48 8b 95 80 07 00 00 mov rdx, QWORD PTR z$[rbp] 00b6b 48 8b 84 02 f0 46 00 00 mov rax, QWORD PTR [rdx+rax+18160] 00b73 48 8d 04 48 lea rax, QWORD PTR [rax+rcx*2] 00b77 48 89 85 08 05 00 00 mov QWORD PTR data$37[rbp], rax ; 2885 : z->img_comp[n].coeff + ; 2886 : 64 * (x2 + ; 2887 : y2 * z->img_comp[n] ; 2888 : .coeff_w); ; 2889 : if (!stbi__jpeg_decode_block_prog_dc( 00b7e 48 63 85 a4 04 00 00 movsxd rax, DWORD PTR n$34[rbp] 00b85 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00b89 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00b90 48 63 84 01 b0 46 00 00 movsxd rax, DWORD PTR [rcx+rax+18096] 00b98 48 69 c0 90 06 00 00 imul rax, rax, 1680 ; 00000690H 00b9f 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00ba6 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] 00bab 44 8b 8d a4 04 00 00 mov r9d, DWORD PTR n$34[rbp] 00bb2 4c 8b c0 mov r8, rax 00bb5 48 8b 95 08 05 00 00 mov rdx, QWORD PTR data$37[rbp] 00bbc 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00bc3 e8 00 00 00 00 call stbi__jpeg_decode_block_prog_dc 00bc8 85 c0 test eax, eax 00bca 75 07 jne SHORT $LN68@stbi__pars ; 2890 : z, data, ; 2891 : &z->huff_dc[z->img_comp[n] ; 2892 : .hd], ; 2893 : n)) ; 2894 : return 0; 00bcc 33 c0 xor eax, eax 00bce e9 aa 00 00 00 jmp $LN1@stbi__pars $LN68@stbi__pars: ; 2895 : } 00bd3 e9 bd fe ff ff jmp $LN41@stbi__pars $LN42@stbi__pars: ; 2896 : } 00bd8 e9 79 fe ff ff jmp $LN38@stbi__pars $LN39@stbi__pars: ; 2897 : } 00bdd e9 26 fe ff ff jmp $LN35@stbi__pars $LN36@stbi__pars: ; 2898 : // after all interleaved components, that's an interleaved MCU, ; 2899 : // so now count down the restart interval ; 2900 : if (--z->todo <= 0) { 00be2 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00be9 8b 80 6c 48 00 00 mov eax, DWORD PTR [rax+18540] 00bef ff c8 dec eax 00bf1 89 85 54 07 00 00 mov DWORD PTR tv518[rbp], eax 00bf7 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00bfe 8b 8d 54 07 00 00 mov ecx, DWORD PTR tv518[rbp] 00c04 89 88 6c 48 00 00 mov DWORD PTR [rax+18540], ecx 00c0a 83 bd 54 07 00 00 00 cmp DWORD PTR tv518[rbp], 0 00c11 7f 5b jg SHORT $LN69@stbi__pars ; 2901 : if (z->code_bits < 24) 00c13 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00c1a 83 b8 24 48 00 00 18 cmp DWORD PTR [rax+18468], 24 00c21 7d 0d jge SHORT $LN70@stbi__pars ; 2902 : stbi__grow_buffer_unsafe(z); 00c23 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00c2a e8 00 00 00 00 call stbi__grow_buffer_unsafe 00c2f 90 npad 1 $LN70@stbi__pars: ; 2903 : if (!STBI__RESTART(z->marker)) 00c30 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00c37 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 00c3e 3d d0 00 00 00 cmp eax, 208 ; 000000d0H 00c43 7c 15 jl SHORT $LN72@stbi__pars 00c45 48 8b 85 80 07 00 00 mov rax, QWORD PTR z$[rbp] 00c4c 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 00c53 3d d7 00 00 00 cmp eax, 215 ; 000000d7H 00c58 7e 07 jle SHORT $LN71@stbi__pars $LN72@stbi__pars: ; 2904 : return 1; 00c5a b8 01 00 00 00 mov eax, 1 00c5f eb 1c jmp SHORT $LN1@stbi__pars $LN71@stbi__pars: ; 2905 : stbi__jpeg_reset(z); 00c61 48 8b 8d 80 07 00 00 mov rcx, QWORD PTR z$[rbp] 00c68 e8 00 00 00 00 call stbi__jpeg_reset 00c6d 90 npad 1 $LN69@stbi__pars: ; 2906 : } ; 2907 : } 00c6e e9 62 fd ff ff jmp $LN32@stbi__pars $LN33@stbi__pars: ; 2908 : } 00c73 e9 2a fd ff ff jmp $LN29@stbi__pars $LN30@stbi__pars: ; 2909 : return 1; 00c78 b8 01 00 00 00 mov eax, 1 $LN59@stbi__pars: $LN45@stbi__pars: $LN1@stbi__pars: ; 2910 : } ; 2911 : } ; 2912 : } 00c7d 48 8b f8 mov rdi, rax 00c80 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] 00c84 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__parse_entropy_coded_data$rtcFrameData 00c8b e8 00 00 00 00 call _RTC_CheckStackVars 00c90 48 8b c7 mov rax, rdi 00c93 48 8b 8d 58 07 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00c9a 48 33 cd xor rcx, rbp 00c9d e8 00 00 00 00 call __security_check_cookie 00ca2 48 8d a5 68 07 00 00 lea rsp, QWORD PTR [rbp+1896] 00ca9 5f pop rdi 00caa 5d pop rbp 00cab c3 ret 0 stbi__parse_entropy_coded_data ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_reset _TEXT SEGMENT tv88 = 192 j$ = 240 stbi__jpeg_reset PROC ; COMDAT ; 2731 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 2732 : j->code_bits = 0; 00020 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 00027 c7 80 24 48 00 00 00 00 00 00 mov DWORD PTR [rax+18468], 0 ; 2733 : j->code_buffer = 0; 00031 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 00038 c7 80 20 48 00 00 00 00 00 00 mov DWORD PTR [rax+18464], 0 ; 2734 : j->nomore = 0; 00042 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 00049 c7 80 2c 48 00 00 00 00 00 00 mov DWORD PTR [rax+18476], 0 ; 2735 : j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = 00053 b8 60 00 00 00 mov eax, 96 ; 00000060H 00058 48 6b c0 03 imul rax, rax, 3 0005c 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR j$[rbp] 00063 c7 84 01 b8 46 00 00 00 00 00 00 mov DWORD PTR [rcx+rax+18104], 0 0006e b8 60 00 00 00 mov eax, 96 ; 00000060H 00073 48 6b c0 02 imul rax, rax, 2 00077 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR j$[rbp] 0007e c7 84 01 b8 46 00 00 00 00 00 00 mov DWORD PTR [rcx+rax+18104], 0 00089 b8 60 00 00 00 mov eax, 96 ; 00000060H 0008e 48 6b c0 01 imul rax, rax, 1 00092 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR j$[rbp] 00099 c7 84 01 b8 46 00 00 00 00 00 00 mov DWORD PTR [rcx+rax+18104], 0 000a4 b8 60 00 00 00 mov eax, 96 ; 00000060H 000a9 48 6b c0 00 imul rax, rax, 0 000ad 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR j$[rbp] 000b4 c7 84 01 b8 46 00 00 00 00 00 00 mov DWORD PTR [rcx+rax+18104], 0 ; 2736 : j->img_comp[3].dc_pred = 0; ; 2737 : j->marker = STBI__MARKER_none; 000bf 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 000c6 c6 80 28 48 00 00 ff mov BYTE PTR [rax+18472], 255 ; 000000ffH ; 2738 : j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; 000cd 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 000d4 83 b8 68 48 00 00 00 cmp DWORD PTR [rax+18536], 0 000db 74 15 je SHORT $LN3@stbi__jpeg 000dd 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 000e4 8b 80 68 48 00 00 mov eax, DWORD PTR [rax+18536] 000ea 89 85 c0 00 00 00 mov DWORD PTR tv88[rbp], eax 000f0 eb 0a jmp SHORT $LN4@stbi__jpeg $LN3@stbi__jpeg: 000f2 c7 85 c0 00 00 00 ff ff ff 7f mov DWORD PTR tv88[rbp], 2147483647 ; 7fffffffH $LN4@stbi__jpeg: 000fc 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 00103 8b 8d c0 00 00 00 mov ecx, DWORD PTR tv88[rbp] 00109 89 88 6c 48 00 00 mov DWORD PTR [rax+18540], ecx ; 2739 : j->eob_run = 0; 0010f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR j$[rbp] 00116 c7 80 44 48 00 00 00 00 00 00 mov DWORD PTR [rax+18500], 0 ; 2740 : // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, ; 2741 : // since we don't even allow 1<<30 pixels ; 2742 : } 00120 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 00127 5f pop rdi 00128 5d pop rbp 00129 c3 ret 0 stbi__jpeg_reset ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__get_marker _TEXT SEGMENT x$ = 4 j$ = 256 stbi__get_marker PROC ; COMDAT ; 2709 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 2710 : stbi_uc x; ; 2711 : if (j->marker != STBI__MARKER_none) { 00020 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00027 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 0002e 3d ff 00 00 00 cmp eax, 255 ; 000000ffH 00033 74 25 je SHORT $LN4@stbi__get_ ; 2712 : x = j->marker; 00035 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 0003c 0f b6 80 28 48 00 00 movzx eax, BYTE PTR [rax+18472] 00043 88 45 04 mov BYTE PTR x$[rbp], al ; 2713 : j->marker = STBI__MARKER_none; 00046 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 0004d c6 80 28 48 00 00 ff mov BYTE PTR [rax+18472], 255 ; 000000ffH ; 2714 : return x; 00054 0f b6 45 04 movzx eax, BYTE PTR x$[rbp] 00058 eb 44 jmp SHORT $LN1@stbi__get_ $LN4@stbi__get_: ; 2715 : } ; 2716 : x = stbi__get8(j->s); 0005a 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00061 48 8b 08 mov rcx, QWORD PTR [rax] 00064 e8 00 00 00 00 call stbi__get8 00069 88 45 04 mov BYTE PTR x$[rbp], al ; 2717 : if (x != 0xff) 0006c 0f b6 45 04 movzx eax, BYTE PTR x$[rbp] 00070 3d ff 00 00 00 cmp eax, 255 ; 000000ffH 00075 74 04 je SHORT $LN5@stbi__get_ ; 2718 : return STBI__MARKER_none; 00077 b0 ff mov al, 255 ; 000000ffH 00079 eb 23 jmp SHORT $LN1@stbi__get_ $LN5@stbi__get_: $LN2@stbi__get_: ; 2719 : while (x == 0xff) 0007b 0f b6 45 04 movzx eax, BYTE PTR x$[rbp] 0007f 3d ff 00 00 00 cmp eax, 255 ; 000000ffH 00084 75 14 jne SHORT $LN3@stbi__get_ ; 2720 : x = stbi__get8(j->s); // consume repeated 0xff fill bytes 00086 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 0008d 48 8b 08 mov rcx, QWORD PTR [rax] 00090 e8 00 00 00 00 call stbi__get8 00095 88 45 04 mov BYTE PTR x$[rbp], al 00098 eb e1 jmp SHORT $LN2@stbi__get_ $LN3@stbi__get_: ; 2721 : return x; 0009a 0f b6 45 04 movzx eax, BYTE PTR x$[rbp] $LN1@stbi__get_: ; 2722 : } 0009e 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000a5 5f pop rdi 000a6 5d pop rbp 000a7 c3 ret 0 stbi__get_marker ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__idct_simd _TEXT SEGMENT row0$ = 16 row1$ = 64 row2$ = 112 row3$ = 160 row4$ = 208 row5$ = 256 row6$ = 304 row7$ = 352 tmp$ = 400 rot0_0$ = 448 rot0_1$ = 496 rot1_0$ = 544 rot1_1$ = 592 rot2_0$ = 640 rot2_1$ = 688 rot3_0$ = 736 rot3_1$ = 784 bias_0$ = 832 bias_1$ = 880 rot0_0lo$1 = 928 rot0_0hi$2 = 976 t2e_l$3 = 1024 t2e_h$4 = 1072 t3e_l$5 = 1120 t3e_h$6 = 1168 sum04$7 = 1216 dif04$8 = 1264 t0e_l$9 = 1312 t0e_h$10 = 1360 t1e_l$11 = 1408 t1e_h$12 = 1456 x0_l$13 = 1504 x0_h$14 = 1552 x3_l$15 = 1600 x3_h$16 = 1648 x1_l$17 = 1696 x1_h$18 = 1744 x2_l$19 = 1792 x2_h$20 = 1840 rot2_0lo$21 = 1888 rot2_0hi$22 = 1936 y0o_l$23 = 1984 y0o_h$24 = 2032 y2o_l$25 = 2080 y2o_h$26 = 2128 rot3_0lo$27 = 2176 rot3_0hi$28 = 2224 y1o_l$29 = 2272 y1o_h$30 = 2320 y3o_l$31 = 2368 y3o_h$32 = 2416 sum17$33 = 2464 sum35$34 = 2512 rot1_0lo$35 = 2560 rot1_0hi$36 = 2608 y4o_l$37 = 2656 y4o_h$38 = 2704 y5o_l$39 = 2752 y5o_h$40 = 2800 x4_l$41 = 2848 x4_h$42 = 2896 x5_l$43 = 2944 x5_h$44 = 2992 x6_l$45 = 3040 x6_h$46 = 3088 x7_l$47 = 3136 x7_h$48 = 3184 abiased_l$49 = 3232 abiased_h$50 = 3280 sum_l$51 = 3328 sum_h$52 = 3376 dif_l$53 = 3424 dif_h$54 = 3472 abiased_l$55 = 3520 abiased_h$56 = 3568 sum_l$57 = 3616 sum_h$58 = 3664 dif_l$59 = 3712 dif_h$60 = 3760 abiased_l$61 = 3808 abiased_h$62 = 3856 sum_l$63 = 3904 sum_h$64 = 3952 dif_l$65 = 4000 dif_h$66 = 4048 abiased_l$67 = 4096 abiased_h$68 = 4144 sum_l$69 = 4192 sum_h$70 = 4240 dif_l$71 = 4288 dif_h$72 = 4336 rot0_0lo$73 = 4384 rot0_0hi$74 = 4432 t2e_l$75 = 4480 t2e_h$76 = 4528 t3e_l$77 = 4576 t3e_h$78 = 4624 sum04$79 = 4672 dif04$80 = 4720 t0e_l$81 = 4768 t0e_h$82 = 4816 t1e_l$83 = 4864 t1e_h$84 = 4912 x0_l$85 = 4960 x0_h$86 = 5008 x3_l$87 = 5056 x3_h$88 = 5104 x1_l$89 = 5152 x1_h$90 = 5200 x2_l$91 = 5248 x2_h$92 = 5296 rot2_0lo$93 = 5344 rot2_0hi$94 = 5392 y0o_l$95 = 5440 y0o_h$96 = 5488 y2o_l$97 = 5536 y2o_h$98 = 5584 rot3_0lo$99 = 5632 rot3_0hi$100 = 5680 y1o_l$101 = 5728 y1o_h$102 = 5776 y3o_l$103 = 5824 y3o_h$104 = 5872 sum17$105 = 5920 sum35$106 = 5968 rot1_0lo$107 = 6016 rot1_0hi$108 = 6064 y4o_l$109 = 6112 y4o_h$110 = 6160 y5o_l$111 = 6208 y5o_h$112 = 6256 x4_l$113 = 6304 x4_h$114 = 6352 x5_l$115 = 6400 x5_h$116 = 6448 x6_l$117 = 6496 x6_h$118 = 6544 x7_l$119 = 6592 x7_h$120 = 6640 abiased_l$121 = 6688 abiased_h$122 = 6736 sum_l$123 = 6784 sum_h$124 = 6832 dif_l$125 = 6880 dif_h$126 = 6928 abiased_l$127 = 6976 abiased_h$128 = 7024 sum_l$129 = 7072 sum_h$130 = 7120 dif_l$131 = 7168 dif_h$132 = 7216 abiased_l$133 = 7264 abiased_h$134 = 7312 sum_l$135 = 7360 sum_h$136 = 7408 dif_l$137 = 7456 dif_h$138 = 7504 abiased_l$139 = 7552 abiased_h$140 = 7600 sum_l$141 = 7648 sum_h$142 = 7696 dif_l$143 = 7744 dif_h$144 = 7792 p0$145 = 7840 p1$146 = 7888 p2$147 = 7936 p3$148 = 7984 out$ = 9584 out_stride$ = 9592 data$ = 9600 stbi__idct_simd PROC ; COMDAT ; 2267 : { 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000e 55 push rbp 0000f 57 push rdi 00010 b8 78 25 00 00 mov eax, 9592 ; 00002578H 00015 e8 00 00 00 00 call __chkstk 0001a 48 2b e0 sub rsp, rax 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 2268 : // This is constructed to match our regular (generic) integer IDCT exactly. ; 2269 : __m128i row0, row1, row2, row3, row4, row5, row6, row7; ; 2270 : __m128i tmp; ; 2271 : ; 2272 : // dot product constant: even elems=x, odd elems=y ; 2273 : #define dct_const(x, y) _mm_setr_epi16((x), (y), (x), (y), (x), (y), (x), (y)) ; 2274 : ; 2275 : // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) ; 2276 : // out(1) = c1[even]*x + c1[odd]*y ; 2277 : #define dct_rot(out0, out1, x, y, c0, c1) \ ; 2278 : __m128i c0##lo = _mm_unpacklo_epi16((x), (y)); \ ; 2279 : __m128i c0##hi = _mm_unpackhi_epi16((x), (y)); \ ; 2280 : __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ ; 2281 : __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ ; 2282 : __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ ; 2283 : __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) ; 2284 : ; 2285 : // out = in << 12 (in 16-bit, out 32-bit) ; 2286 : #define dct_widen(out, in) \ ; 2287 : __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ ; 2288 : __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) ; 2289 : ; 2290 : // wide add ; 2291 : #define dct_wadd(out, a, b) \ ; 2292 : __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ ; 2293 : __m128i out##_h = _mm_add_epi32(a##_h, b##_h) ; 2294 : ; 2295 : // wide sub ; 2296 : #define dct_wsub(out, a, b) \ ; 2297 : __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ ; 2298 : __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) ; 2299 : ; 2300 : // butterfly a/b, add bias, then shift by "s" and pack ; 2301 : #define dct_bfly32o(out0, out1, a, b, bias, s) \ ; 2302 : { \ ; 2303 : __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ ; 2304 : __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ ; 2305 : dct_wadd(sum, abiased, b); \ ; 2306 : dct_wsub(dif, abiased, b); \ ; 2307 : out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ ; 2308 : out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ ; 2309 : } ; 2310 : ; 2311 : // 8-bit interleave step (for transposes) ; 2312 : #define dct_interleave8(a, b) \ ; 2313 : tmp = a; \ ; 2314 : a = _mm_unpacklo_epi8(a, b); \ ; 2315 : b = _mm_unpackhi_epi8(tmp, b) ; 2316 : ; 2317 : // 16-bit interleave step (for transposes) ; 2318 : #define dct_interleave16(a, b) \ ; 2319 : tmp = a; \ ; 2320 : a = _mm_unpacklo_epi16(a, b); \ ; 2321 : b = _mm_unpackhi_epi16(tmp, b) ; 2322 : ; 2323 : #define dct_pass(bias, shift) \ ; 2324 : { \ ; 2325 : /* even part */ \ ; 2326 : dct_rot(t2e, t3e, row2, row6, rot0_0, rot0_1); \ ; 2327 : __m128i sum04 = _mm_add_epi16(row0, row4); \ ; 2328 : __m128i dif04 = _mm_sub_epi16(row0, row4); \ ; 2329 : dct_widen(t0e, sum04); \ ; 2330 : dct_widen(t1e, dif04); \ ; 2331 : dct_wadd(x0, t0e, t3e); \ ; 2332 : dct_wsub(x3, t0e, t3e); \ ; 2333 : dct_wadd(x1, t1e, t2e); \ ; 2334 : dct_wsub(x2, t1e, t2e); \ ; 2335 : /* odd part */ \ ; 2336 : dct_rot(y0o, y2o, row7, row3, rot2_0, rot2_1); \ ; 2337 : dct_rot(y1o, y3o, row5, row1, rot3_0, rot3_1); \ ; 2338 : __m128i sum17 = _mm_add_epi16(row1, row7); \ ; 2339 : __m128i sum35 = _mm_add_epi16(row3, row5); \ ; 2340 : dct_rot(y4o, y5o, sum17, sum35, rot1_0, rot1_1); \ ; 2341 : dct_wadd(x4, y0o, y4o); \ ; 2342 : dct_wadd(x5, y1o, y5o); \ ; 2343 : dct_wadd(x6, y2o, y5o); \ ; 2344 : dct_wadd(x7, y3o, y4o); \ ; 2345 : dct_bfly32o(row0, row7, x0, x7, bias, shift); \ ; 2346 : dct_bfly32o(row1, row6, x1, x6, bias, shift); \ ; 2347 : dct_bfly32o(row2, row5, x2, x5, bias, shift); \ ; 2348 : dct_bfly32o(row3, row4, x3, x4, bias, shift); \ ; 2349 : } ; 2350 : ; 2351 : __m128i rot0_0 = 0002f 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@eb1a08a9eb1a08a9eb1a08a9eb1a08a9 00037 66 0f 7f 85 c0 01 00 00 movdqa XMMWORD PTR rot0_0$[rbp], xmm0 ; 2352 : dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); ; 2353 : __m128i rot0_1 = 0003f 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@08a914e808a914e808a914e808a914e8 00047 66 0f 7f 85 f0 01 00 00 movdqa XMMWORD PTR rot0_1$[rbp], xmm0 ; 2354 : dct_const(stbi__f2f(0.5411961f) + stbi__f2f(0.765366865f), stbi__f2f(0.5411961f)); ; 2355 : __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), 0004f 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@12d0046b12d0046b12d0046b12d0046b 00057 66 0f 7f 85 20 02 00 00 movdqa XMMWORD PTR rot1_0$[rbp], xmm0 ; 2356 : stbi__f2f(1.175875602f)); ; 2357 : __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), 0005f 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@e9cf12d0e9cf12d0e9cf12d0e9cf12d0 00067 66 0f 7f 85 50 02 00 00 movdqa XMMWORD PTR rot1_1$[rbp], xmm0 ; 2358 : stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); ; 2359 : __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f(0.298631336f), 0006f 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@e09ee565e09ee565e09ee565e09ee565 00077 66 0f 7f 85 80 02 00 00 movdqa XMMWORD PTR rot2_0$[rbp], xmm0 ; 2360 : stbi__f2f(-1.961570560f)); ; 2361 : __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), 0007f 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@11c8e09e11c8e09e11c8e09e11c8e09e 00087 66 0f 7f 85 b0 02 00 00 movdqa XMMWORD PTR rot2_1$[rbp], xmm0 ; 2362 : stbi__f2f(-1.961570560f) + stbi__f2f(3.072711026f)); ; 2363 : __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f(2.053119869f), 0008f 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@f9c31a9df9c31a9df9c31a9df9c31a9d 00097 66 0f 7f 85 e0 02 00 00 movdqa XMMWORD PTR rot3_0$[rbp], xmm0 ; 2364 : stbi__f2f(-0.390180644f)); ; 2365 : __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), 0009f 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@11c8f9c311c8f9c311c8f9c311c8f9c3 000a7 66 0f 7f 85 10 03 00 00 movdqa XMMWORD PTR rot3_1$[rbp], xmm0 ; 2366 : stbi__f2f(-0.390180644f) + stbi__f2f(1.501321110f)); ; 2367 : ; 2368 : // rounding biases in column/row passes, see stbi__idct_block for explanation. ; 2369 : __m128i bias_0 = _mm_set1_epi32(512); 000af 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@00000200000002000000020000000200 000b7 66 0f 7f 85 40 03 00 00 movdqa XMMWORD PTR bias_0$[rbp], xmm0 ; 2370 : __m128i bias_1 = _mm_set1_epi32(65536 + (128 << 17)); 000bf 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@01010000010100000101000001010000 000c7 66 0f 7f 85 70 03 00 00 movdqa XMMWORD PTR bias_1$[rbp], xmm0 ; 2371 : ; 2372 : // load ; 2373 : row0 = _mm_load_si128((const __m128i *)(data + 0 * 8)); 000cf 48 8b 85 80 25 00 00 mov rax, QWORD PTR data$[rbp] 000d6 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] 000da 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 ; 2374 : row1 = _mm_load_si128((const __m128i *)(data + 1 * 8)); 000df 48 8b 85 80 25 00 00 mov rax, QWORD PTR data$[rbp] 000e6 48 83 c0 10 add rax, 16 000ea f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] 000ee 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 ; 2375 : row2 = _mm_load_si128((const __m128i *)(data + 2 * 8)); 000f3 48 8b 85 80 25 00 00 mov rax, QWORD PTR data$[rbp] 000fa 48 83 c0 20 add rax, 32 ; 00000020H 000fe f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] 00102 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 ; 2376 : row3 = _mm_load_si128((const __m128i *)(data + 3 * 8)); 00107 48 8b 85 80 25 00 00 mov rax, QWORD PTR data$[rbp] 0010e 48 83 c0 30 add rax, 48 ; 00000030H 00112 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] 00116 66 0f 7f 85 a0 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 ; 2377 : row4 = _mm_load_si128((const __m128i *)(data + 4 * 8)); 0011e 48 8b 85 80 25 00 00 mov rax, QWORD PTR data$[rbp] 00125 48 83 c0 40 add rax, 64 ; 00000040H 00129 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] 0012d 66 0f 7f 85 d0 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 ; 2378 : row5 = _mm_load_si128((const __m128i *)(data + 5 * 8)); 00135 48 8b 85 80 25 00 00 mov rax, QWORD PTR data$[rbp] 0013c 48 83 c0 50 add rax, 80 ; 00000050H 00140 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] 00144 66 0f 7f 85 00 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 ; 2379 : row6 = _mm_load_si128((const __m128i *)(data + 6 * 8)); 0014c 48 8b 85 80 25 00 00 mov rax, QWORD PTR data$[rbp] 00153 48 83 c0 60 add rax, 96 ; 00000060H 00157 f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] 0015b 66 0f 7f 85 30 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 ; 2380 : row7 = _mm_load_si128((const __m128i *)(data + 7 * 8)); 00163 48 8b 85 80 25 00 00 mov rax, QWORD PTR data$[rbp] 0016a 48 83 c0 70 add rax, 112 ; 00000070H 0016e f3 0f 6f 00 movdqu xmm0, XMMWORD PTR [rax] 00172 66 0f 7f 85 60 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 ; 2381 : ; 2382 : // column pass ; 2383 : dct_pass(bias_0, 10); 0017a 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 0017f 66 0f 61 85 30 01 00 00 punpcklwd xmm0, XMMWORD PTR row6$[rbp] 00187 66 0f 7f 85 a0 03 00 00 movdqa XMMWORD PTR rot0_0lo$1[rbp], xmm0 0018f 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 00194 66 0f 69 85 30 01 00 00 punpckhwd xmm0, XMMWORD PTR row6$[rbp] 0019c 66 0f 7f 85 d0 03 00 00 movdqa XMMWORD PTR rot0_0hi$2[rbp], xmm0 001a4 66 0f 6f 85 a0 03 00 00 movdqa xmm0, XMMWORD PTR rot0_0lo$1[rbp] 001ac 66 0f f5 85 c0 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_0$[rbp] 001b4 66 0f 7f 85 00 04 00 00 movdqa XMMWORD PTR t2e_l$3[rbp], xmm0 001bc 66 0f 6f 85 d0 03 00 00 movdqa xmm0, XMMWORD PTR rot0_0hi$2[rbp] 001c4 66 0f f5 85 c0 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_0$[rbp] 001cc 66 0f 7f 85 30 04 00 00 movdqa XMMWORD PTR t2e_h$4[rbp], xmm0 001d4 66 0f 6f 85 a0 03 00 00 movdqa xmm0, XMMWORD PTR rot0_0lo$1[rbp] 001dc 66 0f f5 85 f0 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_1$[rbp] 001e4 66 0f 7f 85 60 04 00 00 movdqa XMMWORD PTR t3e_l$5[rbp], xmm0 001ec 66 0f 6f 85 d0 03 00 00 movdqa xmm0, XMMWORD PTR rot0_0hi$2[rbp] 001f4 66 0f f5 85 f0 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_1$[rbp] 001fc 66 0f 7f 85 90 04 00 00 movdqa XMMWORD PTR t3e_h$6[rbp], xmm0 00204 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00209 66 0f fd 85 d0 00 00 00 paddw xmm0, XMMWORD PTR row4$[rbp] 00211 66 0f 7f 85 c0 04 00 00 movdqa XMMWORD PTR sum04$7[rbp], xmm0 00219 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 0021e 66 0f f9 85 d0 00 00 00 psubw xmm0, XMMWORD PTR row4$[rbp] 00226 66 0f 7f 85 f0 04 00 00 movdqa XMMWORD PTR dif04$8[rbp], xmm0 0022e 66 0f ef c0 pxor xmm0, xmm0 00232 66 0f 61 85 c0 04 00 00 punpcklwd xmm0, XMMWORD PTR sum04$7[rbp] 0023a 66 0f 72 e0 04 psrad xmm0, 4 0023f 66 0f 7f 85 20 05 00 00 movdqa XMMWORD PTR t0e_l$9[rbp], xmm0 00247 66 0f ef c0 pxor xmm0, xmm0 0024b 66 0f 69 85 c0 04 00 00 punpckhwd xmm0, XMMWORD PTR sum04$7[rbp] 00253 66 0f 72 e0 04 psrad xmm0, 4 00258 66 0f 7f 85 50 05 00 00 movdqa XMMWORD PTR t0e_h$10[rbp], xmm0 00260 66 0f ef c0 pxor xmm0, xmm0 00264 66 0f 61 85 f0 04 00 00 punpcklwd xmm0, XMMWORD PTR dif04$8[rbp] 0026c 66 0f 72 e0 04 psrad xmm0, 4 00271 66 0f 7f 85 80 05 00 00 movdqa XMMWORD PTR t1e_l$11[rbp], xmm0 00279 66 0f ef c0 pxor xmm0, xmm0 0027d 66 0f 69 85 f0 04 00 00 punpckhwd xmm0, XMMWORD PTR dif04$8[rbp] 00285 66 0f 72 e0 04 psrad xmm0, 4 0028a 66 0f 7f 85 b0 05 00 00 movdqa XMMWORD PTR t1e_h$12[rbp], xmm0 00292 66 0f 6f 85 20 05 00 00 movdqa xmm0, XMMWORD PTR t0e_l$9[rbp] 0029a 66 0f fe 85 60 04 00 00 paddd xmm0, XMMWORD PTR t3e_l$5[rbp] 002a2 66 0f 7f 85 e0 05 00 00 movdqa XMMWORD PTR x0_l$13[rbp], xmm0 002aa 66 0f 6f 85 50 05 00 00 movdqa xmm0, XMMWORD PTR t0e_h$10[rbp] 002b2 66 0f fe 85 90 04 00 00 paddd xmm0, XMMWORD PTR t3e_h$6[rbp] 002ba 66 0f 7f 85 10 06 00 00 movdqa XMMWORD PTR x0_h$14[rbp], xmm0 002c2 66 0f 6f 85 20 05 00 00 movdqa xmm0, XMMWORD PTR t0e_l$9[rbp] 002ca 66 0f fa 85 60 04 00 00 psubd xmm0, XMMWORD PTR t3e_l$5[rbp] 002d2 66 0f 7f 85 40 06 00 00 movdqa XMMWORD PTR x3_l$15[rbp], xmm0 002da 66 0f 6f 85 50 05 00 00 movdqa xmm0, XMMWORD PTR t0e_h$10[rbp] 002e2 66 0f fa 85 90 04 00 00 psubd xmm0, XMMWORD PTR t3e_h$6[rbp] 002ea 66 0f 7f 85 70 06 00 00 movdqa XMMWORD PTR x3_h$16[rbp], xmm0 002f2 66 0f 6f 85 80 05 00 00 movdqa xmm0, XMMWORD PTR t1e_l$11[rbp] 002fa 66 0f fe 85 00 04 00 00 paddd xmm0, XMMWORD PTR t2e_l$3[rbp] 00302 66 0f 7f 85 a0 06 00 00 movdqa XMMWORD PTR x1_l$17[rbp], xmm0 0030a 66 0f 6f 85 b0 05 00 00 movdqa xmm0, XMMWORD PTR t1e_h$12[rbp] 00312 66 0f fe 85 30 04 00 00 paddd xmm0, XMMWORD PTR t2e_h$4[rbp] 0031a 66 0f 7f 85 d0 06 00 00 movdqa XMMWORD PTR x1_h$18[rbp], xmm0 00322 66 0f 6f 85 80 05 00 00 movdqa xmm0, XMMWORD PTR t1e_l$11[rbp] 0032a 66 0f fa 85 00 04 00 00 psubd xmm0, XMMWORD PTR t2e_l$3[rbp] 00332 66 0f 7f 85 00 07 00 00 movdqa XMMWORD PTR x2_l$19[rbp], xmm0 0033a 66 0f 6f 85 b0 05 00 00 movdqa xmm0, XMMWORD PTR t1e_h$12[rbp] 00342 66 0f fa 85 30 04 00 00 psubd xmm0, XMMWORD PTR t2e_h$4[rbp] 0034a 66 0f 7f 85 30 07 00 00 movdqa XMMWORD PTR x2_h$20[rbp], xmm0 00352 66 0f 6f 85 60 01 00 00 movdqa xmm0, XMMWORD PTR row7$[rbp] 0035a 66 0f 61 85 a0 00 00 00 punpcklwd xmm0, XMMWORD PTR row3$[rbp] 00362 66 0f 7f 85 60 07 00 00 movdqa XMMWORD PTR rot2_0lo$21[rbp], xmm0 0036a 66 0f 6f 85 60 01 00 00 movdqa xmm0, XMMWORD PTR row7$[rbp] 00372 66 0f 69 85 a0 00 00 00 punpckhwd xmm0, XMMWORD PTR row3$[rbp] 0037a 66 0f 7f 85 90 07 00 00 movdqa XMMWORD PTR rot2_0hi$22[rbp], xmm0 00382 66 0f 6f 85 60 07 00 00 movdqa xmm0, XMMWORD PTR rot2_0lo$21[rbp] 0038a 66 0f f5 85 80 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_0$[rbp] 00392 66 0f 7f 85 c0 07 00 00 movdqa XMMWORD PTR y0o_l$23[rbp], xmm0 0039a 66 0f 6f 85 90 07 00 00 movdqa xmm0, XMMWORD PTR rot2_0hi$22[rbp] 003a2 66 0f f5 85 80 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_0$[rbp] 003aa 66 0f 7f 85 f0 07 00 00 movdqa XMMWORD PTR y0o_h$24[rbp], xmm0 003b2 66 0f 6f 85 60 07 00 00 movdqa xmm0, XMMWORD PTR rot2_0lo$21[rbp] 003ba 66 0f f5 85 b0 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_1$[rbp] 003c2 66 0f 7f 85 20 08 00 00 movdqa XMMWORD PTR y2o_l$25[rbp], xmm0 003ca 66 0f 6f 85 90 07 00 00 movdqa xmm0, XMMWORD PTR rot2_0hi$22[rbp] 003d2 66 0f f5 85 b0 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_1$[rbp] 003da 66 0f 7f 85 50 08 00 00 movdqa XMMWORD PTR y2o_h$26[rbp], xmm0 003e2 66 0f 6f 85 00 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] 003ea 66 0f 61 45 40 punpcklwd xmm0, XMMWORD PTR row1$[rbp] 003ef 66 0f 7f 85 80 08 00 00 movdqa XMMWORD PTR rot3_0lo$27[rbp], xmm0 003f7 66 0f 6f 85 00 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] 003ff 66 0f 69 45 40 punpckhwd xmm0, XMMWORD PTR row1$[rbp] 00404 66 0f 7f 85 b0 08 00 00 movdqa XMMWORD PTR rot3_0hi$28[rbp], xmm0 0040c 66 0f 6f 85 80 08 00 00 movdqa xmm0, XMMWORD PTR rot3_0lo$27[rbp] 00414 66 0f f5 85 e0 02 00 00 pmaddwd xmm0, XMMWORD PTR rot3_0$[rbp] 0041c 66 0f 7f 85 e0 08 00 00 movdqa XMMWORD PTR y1o_l$29[rbp], xmm0 00424 66 0f 6f 85 b0 08 00 00 movdqa xmm0, XMMWORD PTR rot3_0hi$28[rbp] 0042c 66 0f f5 85 e0 02 00 00 pmaddwd xmm0, XMMWORD PTR rot3_0$[rbp] 00434 66 0f 7f 85 10 09 00 00 movdqa XMMWORD PTR y1o_h$30[rbp], xmm0 0043c 66 0f 6f 85 80 08 00 00 movdqa xmm0, XMMWORD PTR rot3_0lo$27[rbp] 00444 66 0f f5 85 10 03 00 00 pmaddwd xmm0, XMMWORD PTR rot3_1$[rbp] 0044c 66 0f 7f 85 40 09 00 00 movdqa XMMWORD PTR y3o_l$31[rbp], xmm0 00454 66 0f 6f 85 b0 08 00 00 movdqa xmm0, XMMWORD PTR rot3_0hi$28[rbp] 0045c 66 0f f5 85 10 03 00 00 pmaddwd xmm0, XMMWORD PTR rot3_1$[rbp] 00464 66 0f 7f 85 70 09 00 00 movdqa XMMWORD PTR y3o_h$32[rbp], xmm0 0046c 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] 00471 66 0f fd 85 60 01 00 00 paddw xmm0, XMMWORD PTR row7$[rbp] 00479 66 0f 7f 85 a0 09 00 00 movdqa XMMWORD PTR sum17$33[rbp], xmm0 00481 66 0f 6f 85 a0 00 00 00 movdqa xmm0, XMMWORD PTR row3$[rbp] 00489 66 0f fd 85 00 01 00 00 paddw xmm0, XMMWORD PTR row5$[rbp] 00491 66 0f 7f 85 d0 09 00 00 movdqa XMMWORD PTR sum35$34[rbp], xmm0 00499 66 0f 6f 85 a0 09 00 00 movdqa xmm0, XMMWORD PTR sum17$33[rbp] 004a1 66 0f 61 85 d0 09 00 00 punpcklwd xmm0, XMMWORD PTR sum35$34[rbp] 004a9 66 0f 7f 85 00 0a 00 00 movdqa XMMWORD PTR rot1_0lo$35[rbp], xmm0 004b1 66 0f 6f 85 a0 09 00 00 movdqa xmm0, XMMWORD PTR sum17$33[rbp] 004b9 66 0f 69 85 d0 09 00 00 punpckhwd xmm0, XMMWORD PTR sum35$34[rbp] 004c1 66 0f 7f 85 30 0a 00 00 movdqa XMMWORD PTR rot1_0hi$36[rbp], xmm0 004c9 66 0f 6f 85 00 0a 00 00 movdqa xmm0, XMMWORD PTR rot1_0lo$35[rbp] 004d1 66 0f f5 85 20 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_0$[rbp] 004d9 66 0f 7f 85 60 0a 00 00 movdqa XMMWORD PTR y4o_l$37[rbp], xmm0 004e1 66 0f 6f 85 30 0a 00 00 movdqa xmm0, XMMWORD PTR rot1_0hi$36[rbp] 004e9 66 0f f5 85 20 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_0$[rbp] 004f1 66 0f 7f 85 90 0a 00 00 movdqa XMMWORD PTR y4o_h$38[rbp], xmm0 004f9 66 0f 6f 85 00 0a 00 00 movdqa xmm0, XMMWORD PTR rot1_0lo$35[rbp] 00501 66 0f f5 85 50 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_1$[rbp] 00509 66 0f 7f 85 c0 0a 00 00 movdqa XMMWORD PTR y5o_l$39[rbp], xmm0 00511 66 0f 6f 85 30 0a 00 00 movdqa xmm0, XMMWORD PTR rot1_0hi$36[rbp] 00519 66 0f f5 85 50 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_1$[rbp] 00521 66 0f 7f 85 f0 0a 00 00 movdqa XMMWORD PTR y5o_h$40[rbp], xmm0 00529 66 0f 6f 85 c0 07 00 00 movdqa xmm0, XMMWORD PTR y0o_l$23[rbp] 00531 66 0f fe 85 60 0a 00 00 paddd xmm0, XMMWORD PTR y4o_l$37[rbp] 00539 66 0f 7f 85 20 0b 00 00 movdqa XMMWORD PTR x4_l$41[rbp], xmm0 00541 66 0f 6f 85 f0 07 00 00 movdqa xmm0, XMMWORD PTR y0o_h$24[rbp] 00549 66 0f fe 85 90 0a 00 00 paddd xmm0, XMMWORD PTR y4o_h$38[rbp] 00551 66 0f 7f 85 50 0b 00 00 movdqa XMMWORD PTR x4_h$42[rbp], xmm0 00559 66 0f 6f 85 e0 08 00 00 movdqa xmm0, XMMWORD PTR y1o_l$29[rbp] 00561 66 0f fe 85 c0 0a 00 00 paddd xmm0, XMMWORD PTR y5o_l$39[rbp] 00569 66 0f 7f 85 80 0b 00 00 movdqa XMMWORD PTR x5_l$43[rbp], xmm0 00571 66 0f 6f 85 10 09 00 00 movdqa xmm0, XMMWORD PTR y1o_h$30[rbp] 00579 66 0f fe 85 f0 0a 00 00 paddd xmm0, XMMWORD PTR y5o_h$40[rbp] 00581 66 0f 7f 85 b0 0b 00 00 movdqa XMMWORD PTR x5_h$44[rbp], xmm0 00589 66 0f 6f 85 20 08 00 00 movdqa xmm0, XMMWORD PTR y2o_l$25[rbp] 00591 66 0f fe 85 c0 0a 00 00 paddd xmm0, XMMWORD PTR y5o_l$39[rbp] 00599 66 0f 7f 85 e0 0b 00 00 movdqa XMMWORD PTR x6_l$45[rbp], xmm0 005a1 66 0f 6f 85 50 08 00 00 movdqa xmm0, XMMWORD PTR y2o_h$26[rbp] 005a9 66 0f fe 85 f0 0a 00 00 paddd xmm0, XMMWORD PTR y5o_h$40[rbp] 005b1 66 0f 7f 85 10 0c 00 00 movdqa XMMWORD PTR x6_h$46[rbp], xmm0 005b9 66 0f 6f 85 40 09 00 00 movdqa xmm0, XMMWORD PTR y3o_l$31[rbp] 005c1 66 0f fe 85 60 0a 00 00 paddd xmm0, XMMWORD PTR y4o_l$37[rbp] 005c9 66 0f 7f 85 40 0c 00 00 movdqa XMMWORD PTR x7_l$47[rbp], xmm0 005d1 66 0f 6f 85 70 09 00 00 movdqa xmm0, XMMWORD PTR y3o_h$32[rbp] 005d9 66 0f fe 85 90 0a 00 00 paddd xmm0, XMMWORD PTR y4o_h$38[rbp] 005e1 66 0f 7f 85 70 0c 00 00 movdqa XMMWORD PTR x7_h$48[rbp], xmm0 005e9 66 0f 6f 85 e0 05 00 00 movdqa xmm0, XMMWORD PTR x0_l$13[rbp] 005f1 66 0f fe 85 40 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] 005f9 66 0f 7f 85 a0 0c 00 00 movdqa XMMWORD PTR abiased_l$49[rbp], xmm0 00601 66 0f 6f 85 10 06 00 00 movdqa xmm0, XMMWORD PTR x0_h$14[rbp] 00609 66 0f fe 85 40 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] 00611 66 0f 7f 85 d0 0c 00 00 movdqa XMMWORD PTR abiased_h$50[rbp], xmm0 00619 66 0f 6f 85 a0 0c 00 00 movdqa xmm0, XMMWORD PTR abiased_l$49[rbp] 00621 66 0f fe 85 40 0c 00 00 paddd xmm0, XMMWORD PTR x7_l$47[rbp] 00629 66 0f 7f 85 00 0d 00 00 movdqa XMMWORD PTR sum_l$51[rbp], xmm0 00631 66 0f 6f 85 d0 0c 00 00 movdqa xmm0, XMMWORD PTR abiased_h$50[rbp] 00639 66 0f fe 85 70 0c 00 00 paddd xmm0, XMMWORD PTR x7_h$48[rbp] 00641 66 0f 7f 85 30 0d 00 00 movdqa XMMWORD PTR sum_h$52[rbp], xmm0 00649 66 0f 6f 85 a0 0c 00 00 movdqa xmm0, XMMWORD PTR abiased_l$49[rbp] 00651 66 0f fa 85 40 0c 00 00 psubd xmm0, XMMWORD PTR x7_l$47[rbp] 00659 66 0f 7f 85 60 0d 00 00 movdqa XMMWORD PTR dif_l$53[rbp], xmm0 00661 66 0f 6f 85 d0 0c 00 00 movdqa xmm0, XMMWORD PTR abiased_h$50[rbp] 00669 66 0f fa 85 70 0c 00 00 psubd xmm0, XMMWORD PTR x7_h$48[rbp] 00671 66 0f 7f 85 90 0d 00 00 movdqa XMMWORD PTR dif_h$54[rbp], xmm0 00679 66 0f 6f 85 30 0d 00 00 movdqa xmm0, XMMWORD PTR sum_h$52[rbp] 00681 66 0f 72 e0 0a psrad xmm0, 10 00686 66 0f 6f 8d 00 0d 00 00 movdqa xmm1, XMMWORD PTR sum_l$51[rbp] 0068e 66 0f 72 e1 0a psrad xmm1, 10 00693 66 0f 6b c8 packssdw xmm1, xmm0 00697 66 0f 6f c1 movdqa xmm0, xmm1 0069b 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 006a0 66 0f 6f 85 90 0d 00 00 movdqa xmm0, XMMWORD PTR dif_h$54[rbp] 006a8 66 0f 72 e0 0a psrad xmm0, 10 006ad 66 0f 6f 8d 60 0d 00 00 movdqa xmm1, XMMWORD PTR dif_l$53[rbp] 006b5 66 0f 72 e1 0a psrad xmm1, 10 006ba 66 0f 6b c8 packssdw xmm1, xmm0 006be 66 0f 6f c1 movdqa xmm0, xmm1 006c2 66 0f 7f 85 60 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 006ca 66 0f 6f 85 a0 06 00 00 movdqa xmm0, XMMWORD PTR x1_l$17[rbp] 006d2 66 0f fe 85 40 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] 006da 66 0f 7f 85 c0 0d 00 00 movdqa XMMWORD PTR abiased_l$55[rbp], xmm0 006e2 66 0f 6f 85 d0 06 00 00 movdqa xmm0, XMMWORD PTR x1_h$18[rbp] 006ea 66 0f fe 85 40 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] 006f2 66 0f 7f 85 f0 0d 00 00 movdqa XMMWORD PTR abiased_h$56[rbp], xmm0 006fa 66 0f 6f 85 c0 0d 00 00 movdqa xmm0, XMMWORD PTR abiased_l$55[rbp] 00702 66 0f fe 85 e0 0b 00 00 paddd xmm0, XMMWORD PTR x6_l$45[rbp] 0070a 66 0f 7f 85 20 0e 00 00 movdqa XMMWORD PTR sum_l$57[rbp], xmm0 00712 66 0f 6f 85 f0 0d 00 00 movdqa xmm0, XMMWORD PTR abiased_h$56[rbp] 0071a 66 0f fe 85 10 0c 00 00 paddd xmm0, XMMWORD PTR x6_h$46[rbp] 00722 66 0f 7f 85 50 0e 00 00 movdqa XMMWORD PTR sum_h$58[rbp], xmm0 0072a 66 0f 6f 85 c0 0d 00 00 movdqa xmm0, XMMWORD PTR abiased_l$55[rbp] 00732 66 0f fa 85 e0 0b 00 00 psubd xmm0, XMMWORD PTR x6_l$45[rbp] 0073a 66 0f 7f 85 80 0e 00 00 movdqa XMMWORD PTR dif_l$59[rbp], xmm0 00742 66 0f 6f 85 f0 0d 00 00 movdqa xmm0, XMMWORD PTR abiased_h$56[rbp] 0074a 66 0f fa 85 10 0c 00 00 psubd xmm0, XMMWORD PTR x6_h$46[rbp] 00752 66 0f 7f 85 b0 0e 00 00 movdqa XMMWORD PTR dif_h$60[rbp], xmm0 0075a 66 0f 6f 85 50 0e 00 00 movdqa xmm0, XMMWORD PTR sum_h$58[rbp] 00762 66 0f 72 e0 0a psrad xmm0, 10 00767 66 0f 6f 8d 20 0e 00 00 movdqa xmm1, XMMWORD PTR sum_l$57[rbp] 0076f 66 0f 72 e1 0a psrad xmm1, 10 00774 66 0f 6b c8 packssdw xmm1, xmm0 00778 66 0f 6f c1 movdqa xmm0, xmm1 0077c 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 00781 66 0f 6f 85 b0 0e 00 00 movdqa xmm0, XMMWORD PTR dif_h$60[rbp] 00789 66 0f 72 e0 0a psrad xmm0, 10 0078e 66 0f 6f 8d 80 0e 00 00 movdqa xmm1, XMMWORD PTR dif_l$59[rbp] 00796 66 0f 72 e1 0a psrad xmm1, 10 0079b 66 0f 6b c8 packssdw xmm1, xmm0 0079f 66 0f 6f c1 movdqa xmm0, xmm1 007a3 66 0f 7f 85 30 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 007ab 66 0f 6f 85 00 07 00 00 movdqa xmm0, XMMWORD PTR x2_l$19[rbp] 007b3 66 0f fe 85 40 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] 007bb 66 0f 7f 85 e0 0e 00 00 movdqa XMMWORD PTR abiased_l$61[rbp], xmm0 007c3 66 0f 6f 85 30 07 00 00 movdqa xmm0, XMMWORD PTR x2_h$20[rbp] 007cb 66 0f fe 85 40 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] 007d3 66 0f 7f 85 10 0f 00 00 movdqa XMMWORD PTR abiased_h$62[rbp], xmm0 007db 66 0f 6f 85 e0 0e 00 00 movdqa xmm0, XMMWORD PTR abiased_l$61[rbp] 007e3 66 0f fe 85 80 0b 00 00 paddd xmm0, XMMWORD PTR x5_l$43[rbp] 007eb 66 0f 7f 85 40 0f 00 00 movdqa XMMWORD PTR sum_l$63[rbp], xmm0 007f3 66 0f 6f 85 10 0f 00 00 movdqa xmm0, XMMWORD PTR abiased_h$62[rbp] 007fb 66 0f fe 85 b0 0b 00 00 paddd xmm0, XMMWORD PTR x5_h$44[rbp] 00803 66 0f 7f 85 70 0f 00 00 movdqa XMMWORD PTR sum_h$64[rbp], xmm0 0080b 66 0f 6f 85 e0 0e 00 00 movdqa xmm0, XMMWORD PTR abiased_l$61[rbp] 00813 66 0f fa 85 80 0b 00 00 psubd xmm0, XMMWORD PTR x5_l$43[rbp] 0081b 66 0f 7f 85 a0 0f 00 00 movdqa XMMWORD PTR dif_l$65[rbp], xmm0 00823 66 0f 6f 85 10 0f 00 00 movdqa xmm0, XMMWORD PTR abiased_h$62[rbp] 0082b 66 0f fa 85 b0 0b 00 00 psubd xmm0, XMMWORD PTR x5_h$44[rbp] 00833 66 0f 7f 85 d0 0f 00 00 movdqa XMMWORD PTR dif_h$66[rbp], xmm0 0083b 66 0f 6f 85 70 0f 00 00 movdqa xmm0, XMMWORD PTR sum_h$64[rbp] 00843 66 0f 72 e0 0a psrad xmm0, 10 00848 66 0f 6f 8d 40 0f 00 00 movdqa xmm1, XMMWORD PTR sum_l$63[rbp] 00850 66 0f 72 e1 0a psrad xmm1, 10 00855 66 0f 6b c8 packssdw xmm1, xmm0 00859 66 0f 6f c1 movdqa xmm0, xmm1 0085d 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 00862 66 0f 6f 85 d0 0f 00 00 movdqa xmm0, XMMWORD PTR dif_h$66[rbp] 0086a 66 0f 72 e0 0a psrad xmm0, 10 0086f 66 0f 6f 8d a0 0f 00 00 movdqa xmm1, XMMWORD PTR dif_l$65[rbp] 00877 66 0f 72 e1 0a psrad xmm1, 10 0087c 66 0f 6b c8 packssdw xmm1, xmm0 00880 66 0f 6f c1 movdqa xmm0, xmm1 00884 66 0f 7f 85 00 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 0088c 66 0f 6f 85 40 06 00 00 movdqa xmm0, XMMWORD PTR x3_l$15[rbp] 00894 66 0f fe 85 40 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] 0089c 66 0f 7f 85 00 10 00 00 movdqa XMMWORD PTR abiased_l$67[rbp], xmm0 008a4 66 0f 6f 85 70 06 00 00 movdqa xmm0, XMMWORD PTR x3_h$16[rbp] 008ac 66 0f fe 85 40 03 00 00 paddd xmm0, XMMWORD PTR bias_0$[rbp] 008b4 66 0f 7f 85 30 10 00 00 movdqa XMMWORD PTR abiased_h$68[rbp], xmm0 008bc 66 0f 6f 85 00 10 00 00 movdqa xmm0, XMMWORD PTR abiased_l$67[rbp] 008c4 66 0f fe 85 20 0b 00 00 paddd xmm0, XMMWORD PTR x4_l$41[rbp] 008cc 66 0f 7f 85 60 10 00 00 movdqa XMMWORD PTR sum_l$69[rbp], xmm0 008d4 66 0f 6f 85 30 10 00 00 movdqa xmm0, XMMWORD PTR abiased_h$68[rbp] 008dc 66 0f fe 85 50 0b 00 00 paddd xmm0, XMMWORD PTR x4_h$42[rbp] 008e4 66 0f 7f 85 90 10 00 00 movdqa XMMWORD PTR sum_h$70[rbp], xmm0 008ec 66 0f 6f 85 00 10 00 00 movdqa xmm0, XMMWORD PTR abiased_l$67[rbp] 008f4 66 0f fa 85 20 0b 00 00 psubd xmm0, XMMWORD PTR x4_l$41[rbp] 008fc 66 0f 7f 85 c0 10 00 00 movdqa XMMWORD PTR dif_l$71[rbp], xmm0 00904 66 0f 6f 85 30 10 00 00 movdqa xmm0, XMMWORD PTR abiased_h$68[rbp] 0090c 66 0f fa 85 50 0b 00 00 psubd xmm0, XMMWORD PTR x4_h$42[rbp] 00914 66 0f 7f 85 f0 10 00 00 movdqa XMMWORD PTR dif_h$72[rbp], xmm0 0091c 66 0f 6f 85 90 10 00 00 movdqa xmm0, XMMWORD PTR sum_h$70[rbp] 00924 66 0f 72 e0 0a psrad xmm0, 10 00929 66 0f 6f 8d 60 10 00 00 movdqa xmm1, XMMWORD PTR sum_l$69[rbp] 00931 66 0f 72 e1 0a psrad xmm1, 10 00936 66 0f 6b c8 packssdw xmm1, xmm0 0093a 66 0f 6f c1 movdqa xmm0, xmm1 0093e 66 0f 7f 85 a0 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 00946 66 0f 6f 85 f0 10 00 00 movdqa xmm0, XMMWORD PTR dif_h$72[rbp] 0094e 66 0f 72 e0 0a psrad xmm0, 10 00953 66 0f 6f 8d c0 10 00 00 movdqa xmm1, XMMWORD PTR dif_l$71[rbp] 0095b 66 0f 72 e1 0a psrad xmm1, 10 00960 66 0f 6b c8 packssdw xmm1, xmm0 00964 66 0f 6f c1 movdqa xmm0, xmm1 00968 66 0f 7f 85 d0 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 ; 2384 : ; 2385 : { ; 2386 : // 16bit 8x8 transpose pass 1 ; 2387 : dct_interleave16(row0, row4); 00970 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00975 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 0097d 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00982 66 0f 61 85 d0 00 00 00 punpcklwd xmm0, XMMWORD PTR row4$[rbp] 0098a 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 0098f 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00997 66 0f 69 85 d0 00 00 00 punpckhwd xmm0, XMMWORD PTR row4$[rbp] 0099f 66 0f 7f 85 d0 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 ; 2388 : dct_interleave16(row1, row5); 009a7 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] 009ac 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 009b4 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] 009b9 66 0f 61 85 00 01 00 00 punpcklwd xmm0, XMMWORD PTR row5$[rbp] 009c1 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 009c6 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 009ce 66 0f 69 85 00 01 00 00 punpckhwd xmm0, XMMWORD PTR row5$[rbp] 009d6 66 0f 7f 85 00 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 ; 2389 : dct_interleave16(row2, row6); 009de 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 009e3 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 009eb 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 009f0 66 0f 61 85 30 01 00 00 punpcklwd xmm0, XMMWORD PTR row6$[rbp] 009f8 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 009fd 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00a05 66 0f 69 85 30 01 00 00 punpckhwd xmm0, XMMWORD PTR row6$[rbp] 00a0d 66 0f 7f 85 30 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 ; 2390 : dct_interleave16(row3, row7); 00a15 66 0f 6f 85 a0 00 00 00 movdqa xmm0, XMMWORD PTR row3$[rbp] 00a1d 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00a25 66 0f 6f 85 a0 00 00 00 movdqa xmm0, XMMWORD PTR row3$[rbp] 00a2d 66 0f 61 85 60 01 00 00 punpcklwd xmm0, XMMWORD PTR row7$[rbp] 00a35 66 0f 7f 85 a0 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 00a3d 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00a45 66 0f 69 85 60 01 00 00 punpckhwd xmm0, XMMWORD PTR row7$[rbp] 00a4d 66 0f 7f 85 60 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 ; 2391 : ; 2392 : // transpose pass 2 ; 2393 : dct_interleave16(row0, row2); 00a55 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00a5a 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00a62 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00a67 66 0f 61 45 70 punpcklwd xmm0, XMMWORD PTR row2$[rbp] 00a6c 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 00a71 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00a79 66 0f 69 45 70 punpckhwd xmm0, XMMWORD PTR row2$[rbp] 00a7e 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 ; 2394 : dct_interleave16(row1, row3); 00a83 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] 00a88 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00a90 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] 00a95 66 0f 61 85 a0 00 00 00 punpcklwd xmm0, XMMWORD PTR row3$[rbp] 00a9d 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 00aa2 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00aaa 66 0f 69 85 a0 00 00 00 punpckhwd xmm0, XMMWORD PTR row3$[rbp] 00ab2 66 0f 7f 85 a0 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 ; 2395 : dct_interleave16(row4, row6); 00aba 66 0f 6f 85 d0 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] 00ac2 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00aca 66 0f 6f 85 d0 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] 00ad2 66 0f 61 85 30 01 00 00 punpcklwd xmm0, XMMWORD PTR row6$[rbp] 00ada 66 0f 7f 85 d0 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 00ae2 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00aea 66 0f 69 85 30 01 00 00 punpckhwd xmm0, XMMWORD PTR row6$[rbp] 00af2 66 0f 7f 85 30 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 ; 2396 : dct_interleave16(row5, row7); 00afa 66 0f 6f 85 00 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] 00b02 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00b0a 66 0f 6f 85 00 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] 00b12 66 0f 61 85 60 01 00 00 punpcklwd xmm0, XMMWORD PTR row7$[rbp] 00b1a 66 0f 7f 85 00 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 00b22 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00b2a 66 0f 69 85 60 01 00 00 punpckhwd xmm0, XMMWORD PTR row7$[rbp] 00b32 66 0f 7f 85 60 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 ; 2397 : ; 2398 : // transpose pass 3 ; 2399 : dct_interleave16(row0, row1); 00b3a 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00b3f 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00b47 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00b4c 66 0f 61 45 40 punpcklwd xmm0, XMMWORD PTR row1$[rbp] 00b51 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 00b56 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00b5e 66 0f 69 45 40 punpckhwd xmm0, XMMWORD PTR row1$[rbp] 00b63 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 ; 2400 : dct_interleave16(row2, row3); 00b68 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 00b6d 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00b75 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 00b7a 66 0f 61 85 a0 00 00 00 punpcklwd xmm0, XMMWORD PTR row3$[rbp] 00b82 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 00b87 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00b8f 66 0f 69 85 a0 00 00 00 punpckhwd xmm0, XMMWORD PTR row3$[rbp] 00b97 66 0f 7f 85 a0 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 ; 2401 : dct_interleave16(row4, row5); 00b9f 66 0f 6f 85 d0 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] 00ba7 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00baf 66 0f 6f 85 d0 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] 00bb7 66 0f 61 85 00 01 00 00 punpcklwd xmm0, XMMWORD PTR row5$[rbp] 00bbf 66 0f 7f 85 d0 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 00bc7 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00bcf 66 0f 69 85 00 01 00 00 punpckhwd xmm0, XMMWORD PTR row5$[rbp] 00bd7 66 0f 7f 85 00 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 ; 2402 : dct_interleave16(row6, row7); 00bdf 66 0f 6f 85 30 01 00 00 movdqa xmm0, XMMWORD PTR row6$[rbp] 00be7 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 00bef 66 0f 6f 85 30 01 00 00 movdqa xmm0, XMMWORD PTR row6$[rbp] 00bf7 66 0f 61 85 60 01 00 00 punpcklwd xmm0, XMMWORD PTR row7$[rbp] 00bff 66 0f 7f 85 30 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 00c07 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 00c0f 66 0f 69 85 60 01 00 00 punpckhwd xmm0, XMMWORD PTR row7$[rbp] 00c17 66 0f 7f 85 60 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 ; 2403 : } ; 2404 : ; 2405 : // row pass ; 2406 : dct_pass(bias_1, 17); 00c1f 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 00c24 66 0f 61 85 30 01 00 00 punpcklwd xmm0, XMMWORD PTR row6$[rbp] 00c2c 66 0f 7f 85 20 11 00 00 movdqa XMMWORD PTR rot0_0lo$73[rbp], xmm0 00c34 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 00c39 66 0f 69 85 30 01 00 00 punpckhwd xmm0, XMMWORD PTR row6$[rbp] 00c41 66 0f 7f 85 50 11 00 00 movdqa XMMWORD PTR rot0_0hi$74[rbp], xmm0 00c49 66 0f 6f 85 20 11 00 00 movdqa xmm0, XMMWORD PTR rot0_0lo$73[rbp] 00c51 66 0f f5 85 c0 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_0$[rbp] 00c59 66 0f 7f 85 80 11 00 00 movdqa XMMWORD PTR t2e_l$75[rbp], xmm0 00c61 66 0f 6f 85 50 11 00 00 movdqa xmm0, XMMWORD PTR rot0_0hi$74[rbp] 00c69 66 0f f5 85 c0 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_0$[rbp] 00c71 66 0f 7f 85 b0 11 00 00 movdqa XMMWORD PTR t2e_h$76[rbp], xmm0 00c79 66 0f 6f 85 20 11 00 00 movdqa xmm0, XMMWORD PTR rot0_0lo$73[rbp] 00c81 66 0f f5 85 f0 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_1$[rbp] 00c89 66 0f 7f 85 e0 11 00 00 movdqa XMMWORD PTR t3e_l$77[rbp], xmm0 00c91 66 0f 6f 85 50 11 00 00 movdqa xmm0, XMMWORD PTR rot0_0hi$74[rbp] 00c99 66 0f f5 85 f0 01 00 00 pmaddwd xmm0, XMMWORD PTR rot0_1$[rbp] 00ca1 66 0f 7f 85 10 12 00 00 movdqa XMMWORD PTR t3e_h$78[rbp], xmm0 00ca9 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00cae 66 0f fd 85 d0 00 00 00 paddw xmm0, XMMWORD PTR row4$[rbp] 00cb6 66 0f 7f 85 40 12 00 00 movdqa XMMWORD PTR sum04$79[rbp], xmm0 00cbe 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 00cc3 66 0f f9 85 d0 00 00 00 psubw xmm0, XMMWORD PTR row4$[rbp] 00ccb 66 0f 7f 85 70 12 00 00 movdqa XMMWORD PTR dif04$80[rbp], xmm0 00cd3 66 0f ef c0 pxor xmm0, xmm0 00cd7 66 0f 61 85 40 12 00 00 punpcklwd xmm0, XMMWORD PTR sum04$79[rbp] 00cdf 66 0f 72 e0 04 psrad xmm0, 4 00ce4 66 0f 7f 85 a0 12 00 00 movdqa XMMWORD PTR t0e_l$81[rbp], xmm0 00cec 66 0f ef c0 pxor xmm0, xmm0 00cf0 66 0f 69 85 40 12 00 00 punpckhwd xmm0, XMMWORD PTR sum04$79[rbp] 00cf8 66 0f 72 e0 04 psrad xmm0, 4 00cfd 66 0f 7f 85 d0 12 00 00 movdqa XMMWORD PTR t0e_h$82[rbp], xmm0 00d05 66 0f ef c0 pxor xmm0, xmm0 00d09 66 0f 61 85 70 12 00 00 punpcklwd xmm0, XMMWORD PTR dif04$80[rbp] 00d11 66 0f 72 e0 04 psrad xmm0, 4 00d16 66 0f 7f 85 00 13 00 00 movdqa XMMWORD PTR t1e_l$83[rbp], xmm0 00d1e 66 0f ef c0 pxor xmm0, xmm0 00d22 66 0f 69 85 70 12 00 00 punpckhwd xmm0, XMMWORD PTR dif04$80[rbp] 00d2a 66 0f 72 e0 04 psrad xmm0, 4 00d2f 66 0f 7f 85 30 13 00 00 movdqa XMMWORD PTR t1e_h$84[rbp], xmm0 00d37 66 0f 6f 85 a0 12 00 00 movdqa xmm0, XMMWORD PTR t0e_l$81[rbp] 00d3f 66 0f fe 85 e0 11 00 00 paddd xmm0, XMMWORD PTR t3e_l$77[rbp] 00d47 66 0f 7f 85 60 13 00 00 movdqa XMMWORD PTR x0_l$85[rbp], xmm0 00d4f 66 0f 6f 85 d0 12 00 00 movdqa xmm0, XMMWORD PTR t0e_h$82[rbp] 00d57 66 0f fe 85 10 12 00 00 paddd xmm0, XMMWORD PTR t3e_h$78[rbp] 00d5f 66 0f 7f 85 90 13 00 00 movdqa XMMWORD PTR x0_h$86[rbp], xmm0 00d67 66 0f 6f 85 a0 12 00 00 movdqa xmm0, XMMWORD PTR t0e_l$81[rbp] 00d6f 66 0f fa 85 e0 11 00 00 psubd xmm0, XMMWORD PTR t3e_l$77[rbp] 00d77 66 0f 7f 85 c0 13 00 00 movdqa XMMWORD PTR x3_l$87[rbp], xmm0 00d7f 66 0f 6f 85 d0 12 00 00 movdqa xmm0, XMMWORD PTR t0e_h$82[rbp] 00d87 66 0f fa 85 10 12 00 00 psubd xmm0, XMMWORD PTR t3e_h$78[rbp] 00d8f 66 0f 7f 85 f0 13 00 00 movdqa XMMWORD PTR x3_h$88[rbp], xmm0 00d97 66 0f 6f 85 00 13 00 00 movdqa xmm0, XMMWORD PTR t1e_l$83[rbp] 00d9f 66 0f fe 85 80 11 00 00 paddd xmm0, XMMWORD PTR t2e_l$75[rbp] 00da7 66 0f 7f 85 20 14 00 00 movdqa XMMWORD PTR x1_l$89[rbp], xmm0 00daf 66 0f 6f 85 30 13 00 00 movdqa xmm0, XMMWORD PTR t1e_h$84[rbp] 00db7 66 0f fe 85 b0 11 00 00 paddd xmm0, XMMWORD PTR t2e_h$76[rbp] 00dbf 66 0f 7f 85 50 14 00 00 movdqa XMMWORD PTR x1_h$90[rbp], xmm0 00dc7 66 0f 6f 85 00 13 00 00 movdqa xmm0, XMMWORD PTR t1e_l$83[rbp] 00dcf 66 0f fa 85 80 11 00 00 psubd xmm0, XMMWORD PTR t2e_l$75[rbp] 00dd7 66 0f 7f 85 80 14 00 00 movdqa XMMWORD PTR x2_l$91[rbp], xmm0 00ddf 66 0f 6f 85 30 13 00 00 movdqa xmm0, XMMWORD PTR t1e_h$84[rbp] 00de7 66 0f fa 85 b0 11 00 00 psubd xmm0, XMMWORD PTR t2e_h$76[rbp] 00def 66 0f 7f 85 b0 14 00 00 movdqa XMMWORD PTR x2_h$92[rbp], xmm0 00df7 66 0f 6f 85 60 01 00 00 movdqa xmm0, XMMWORD PTR row7$[rbp] 00dff 66 0f 61 85 a0 00 00 00 punpcklwd xmm0, XMMWORD PTR row3$[rbp] 00e07 66 0f 7f 85 e0 14 00 00 movdqa XMMWORD PTR rot2_0lo$93[rbp], xmm0 00e0f 66 0f 6f 85 60 01 00 00 movdqa xmm0, XMMWORD PTR row7$[rbp] 00e17 66 0f 69 85 a0 00 00 00 punpckhwd xmm0, XMMWORD PTR row3$[rbp] 00e1f 66 0f 7f 85 10 15 00 00 movdqa XMMWORD PTR rot2_0hi$94[rbp], xmm0 00e27 66 0f 6f 85 e0 14 00 00 movdqa xmm0, XMMWORD PTR rot2_0lo$93[rbp] 00e2f 66 0f f5 85 80 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_0$[rbp] 00e37 66 0f 7f 85 40 15 00 00 movdqa XMMWORD PTR y0o_l$95[rbp], xmm0 00e3f 66 0f 6f 85 10 15 00 00 movdqa xmm0, XMMWORD PTR rot2_0hi$94[rbp] 00e47 66 0f f5 85 80 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_0$[rbp] 00e4f 66 0f 7f 85 70 15 00 00 movdqa XMMWORD PTR y0o_h$96[rbp], xmm0 00e57 66 0f 6f 85 e0 14 00 00 movdqa xmm0, XMMWORD PTR rot2_0lo$93[rbp] 00e5f 66 0f f5 85 b0 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_1$[rbp] 00e67 66 0f 7f 85 a0 15 00 00 movdqa XMMWORD PTR y2o_l$97[rbp], xmm0 00e6f 66 0f 6f 85 10 15 00 00 movdqa xmm0, XMMWORD PTR rot2_0hi$94[rbp] 00e77 66 0f f5 85 b0 02 00 00 pmaddwd xmm0, XMMWORD PTR rot2_1$[rbp] 00e7f 66 0f 7f 85 d0 15 00 00 movdqa XMMWORD PTR y2o_h$98[rbp], xmm0 00e87 66 0f 6f 85 00 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] 00e8f 66 0f 61 45 40 punpcklwd xmm0, XMMWORD PTR row1$[rbp] 00e94 66 0f 7f 85 00 16 00 00 movdqa XMMWORD PTR rot3_0lo$99[rbp], xmm0 00e9c 66 0f 6f 85 00 01 00 00 movdqa xmm0, XMMWORD PTR row5$[rbp] 00ea4 66 0f 69 45 40 punpckhwd xmm0, XMMWORD PTR row1$[rbp] 00ea9 66 0f 7f 85 30 16 00 00 movdqa XMMWORD PTR rot3_0hi$100[rbp], xmm0 00eb1 66 0f 6f 85 00 16 00 00 movdqa xmm0, XMMWORD PTR rot3_0lo$99[rbp] 00eb9 66 0f f5 85 e0 02 00 00 pmaddwd xmm0, XMMWORD PTR rot3_0$[rbp] 00ec1 66 0f 7f 85 60 16 00 00 movdqa XMMWORD PTR y1o_l$101[rbp], xmm0 00ec9 66 0f 6f 85 30 16 00 00 movdqa xmm0, XMMWORD PTR rot3_0hi$100[rbp] 00ed1 66 0f f5 85 e0 02 00 00 pmaddwd xmm0, XMMWORD PTR rot3_0$[rbp] 00ed9 66 0f 7f 85 90 16 00 00 movdqa XMMWORD PTR y1o_h$102[rbp], xmm0 00ee1 66 0f 6f 85 00 16 00 00 movdqa xmm0, XMMWORD PTR rot3_0lo$99[rbp] 00ee9 66 0f f5 85 10 03 00 00 pmaddwd xmm0, XMMWORD PTR rot3_1$[rbp] 00ef1 66 0f 7f 85 c0 16 00 00 movdqa XMMWORD PTR y3o_l$103[rbp], xmm0 00ef9 66 0f 6f 85 30 16 00 00 movdqa xmm0, XMMWORD PTR rot3_0hi$100[rbp] 00f01 66 0f f5 85 10 03 00 00 pmaddwd xmm0, XMMWORD PTR rot3_1$[rbp] 00f09 66 0f 7f 85 f0 16 00 00 movdqa XMMWORD PTR y3o_h$104[rbp], xmm0 00f11 66 0f 6f 45 40 movdqa xmm0, XMMWORD PTR row1$[rbp] 00f16 66 0f fd 85 60 01 00 00 paddw xmm0, XMMWORD PTR row7$[rbp] 00f1e 66 0f 7f 85 20 17 00 00 movdqa XMMWORD PTR sum17$105[rbp], xmm0 00f26 66 0f 6f 85 a0 00 00 00 movdqa xmm0, XMMWORD PTR row3$[rbp] 00f2e 66 0f fd 85 00 01 00 00 paddw xmm0, XMMWORD PTR row5$[rbp] 00f36 66 0f 7f 85 50 17 00 00 movdqa XMMWORD PTR sum35$106[rbp], xmm0 00f3e 66 0f 6f 85 20 17 00 00 movdqa xmm0, XMMWORD PTR sum17$105[rbp] 00f46 66 0f 61 85 50 17 00 00 punpcklwd xmm0, XMMWORD PTR sum35$106[rbp] 00f4e 66 0f 7f 85 80 17 00 00 movdqa XMMWORD PTR rot1_0lo$107[rbp], xmm0 00f56 66 0f 6f 85 20 17 00 00 movdqa xmm0, XMMWORD PTR sum17$105[rbp] 00f5e 66 0f 69 85 50 17 00 00 punpckhwd xmm0, XMMWORD PTR sum35$106[rbp] 00f66 66 0f 7f 85 b0 17 00 00 movdqa XMMWORD PTR rot1_0hi$108[rbp], xmm0 00f6e 66 0f 6f 85 80 17 00 00 movdqa xmm0, XMMWORD PTR rot1_0lo$107[rbp] 00f76 66 0f f5 85 20 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_0$[rbp] 00f7e 66 0f 7f 85 e0 17 00 00 movdqa XMMWORD PTR y4o_l$109[rbp], xmm0 00f86 66 0f 6f 85 b0 17 00 00 movdqa xmm0, XMMWORD PTR rot1_0hi$108[rbp] 00f8e 66 0f f5 85 20 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_0$[rbp] 00f96 66 0f 7f 85 10 18 00 00 movdqa XMMWORD PTR y4o_h$110[rbp], xmm0 00f9e 66 0f 6f 85 80 17 00 00 movdqa xmm0, XMMWORD PTR rot1_0lo$107[rbp] 00fa6 66 0f f5 85 50 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_1$[rbp] 00fae 66 0f 7f 85 40 18 00 00 movdqa XMMWORD PTR y5o_l$111[rbp], xmm0 00fb6 66 0f 6f 85 b0 17 00 00 movdqa xmm0, XMMWORD PTR rot1_0hi$108[rbp] 00fbe 66 0f f5 85 50 02 00 00 pmaddwd xmm0, XMMWORD PTR rot1_1$[rbp] 00fc6 66 0f 7f 85 70 18 00 00 movdqa XMMWORD PTR y5o_h$112[rbp], xmm0 00fce 66 0f 6f 85 40 15 00 00 movdqa xmm0, XMMWORD PTR y0o_l$95[rbp] 00fd6 66 0f fe 85 e0 17 00 00 paddd xmm0, XMMWORD PTR y4o_l$109[rbp] 00fde 66 0f 7f 85 a0 18 00 00 movdqa XMMWORD PTR x4_l$113[rbp], xmm0 00fe6 66 0f 6f 85 70 15 00 00 movdqa xmm0, XMMWORD PTR y0o_h$96[rbp] 00fee 66 0f fe 85 10 18 00 00 paddd xmm0, XMMWORD PTR y4o_h$110[rbp] 00ff6 66 0f 7f 85 d0 18 00 00 movdqa XMMWORD PTR x4_h$114[rbp], xmm0 00ffe 66 0f 6f 85 60 16 00 00 movdqa xmm0, XMMWORD PTR y1o_l$101[rbp] 01006 66 0f fe 85 40 18 00 00 paddd xmm0, XMMWORD PTR y5o_l$111[rbp] 0100e 66 0f 7f 85 00 19 00 00 movdqa XMMWORD PTR x5_l$115[rbp], xmm0 01016 66 0f 6f 85 90 16 00 00 movdqa xmm0, XMMWORD PTR y1o_h$102[rbp] 0101e 66 0f fe 85 70 18 00 00 paddd xmm0, XMMWORD PTR y5o_h$112[rbp] 01026 66 0f 7f 85 30 19 00 00 movdqa XMMWORD PTR x5_h$116[rbp], xmm0 0102e 66 0f 6f 85 a0 15 00 00 movdqa xmm0, XMMWORD PTR y2o_l$97[rbp] 01036 66 0f fe 85 40 18 00 00 paddd xmm0, XMMWORD PTR y5o_l$111[rbp] 0103e 66 0f 7f 85 60 19 00 00 movdqa XMMWORD PTR x6_l$117[rbp], xmm0 01046 66 0f 6f 85 d0 15 00 00 movdqa xmm0, XMMWORD PTR y2o_h$98[rbp] 0104e 66 0f fe 85 70 18 00 00 paddd xmm0, XMMWORD PTR y5o_h$112[rbp] 01056 66 0f 7f 85 90 19 00 00 movdqa XMMWORD PTR x6_h$118[rbp], xmm0 0105e 66 0f 6f 85 c0 16 00 00 movdqa xmm0, XMMWORD PTR y3o_l$103[rbp] 01066 66 0f fe 85 e0 17 00 00 paddd xmm0, XMMWORD PTR y4o_l$109[rbp] 0106e 66 0f 7f 85 c0 19 00 00 movdqa XMMWORD PTR x7_l$119[rbp], xmm0 01076 66 0f 6f 85 f0 16 00 00 movdqa xmm0, XMMWORD PTR y3o_h$104[rbp] 0107e 66 0f fe 85 10 18 00 00 paddd xmm0, XMMWORD PTR y4o_h$110[rbp] 01086 66 0f 7f 85 f0 19 00 00 movdqa XMMWORD PTR x7_h$120[rbp], xmm0 0108e 66 0f 6f 85 60 13 00 00 movdqa xmm0, XMMWORD PTR x0_l$85[rbp] 01096 66 0f fe 85 70 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] 0109e 66 0f 7f 85 20 1a 00 00 movdqa XMMWORD PTR abiased_l$121[rbp], xmm0 010a6 66 0f 6f 85 90 13 00 00 movdqa xmm0, XMMWORD PTR x0_h$86[rbp] 010ae 66 0f fe 85 70 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] 010b6 66 0f 7f 85 50 1a 00 00 movdqa XMMWORD PTR abiased_h$122[rbp], xmm0 010be 66 0f 6f 85 20 1a 00 00 movdqa xmm0, XMMWORD PTR abiased_l$121[rbp] 010c6 66 0f fe 85 c0 19 00 00 paddd xmm0, XMMWORD PTR x7_l$119[rbp] 010ce 66 0f 7f 85 80 1a 00 00 movdqa XMMWORD PTR sum_l$123[rbp], xmm0 010d6 66 0f 6f 85 50 1a 00 00 movdqa xmm0, XMMWORD PTR abiased_h$122[rbp] 010de 66 0f fe 85 f0 19 00 00 paddd xmm0, XMMWORD PTR x7_h$120[rbp] 010e6 66 0f 7f 85 b0 1a 00 00 movdqa XMMWORD PTR sum_h$124[rbp], xmm0 010ee 66 0f 6f 85 20 1a 00 00 movdqa xmm0, XMMWORD PTR abiased_l$121[rbp] 010f6 66 0f fa 85 c0 19 00 00 psubd xmm0, XMMWORD PTR x7_l$119[rbp] 010fe 66 0f 7f 85 e0 1a 00 00 movdqa XMMWORD PTR dif_l$125[rbp], xmm0 01106 66 0f 6f 85 50 1a 00 00 movdqa xmm0, XMMWORD PTR abiased_h$122[rbp] 0110e 66 0f fa 85 f0 19 00 00 psubd xmm0, XMMWORD PTR x7_h$120[rbp] 01116 66 0f 7f 85 10 1b 00 00 movdqa XMMWORD PTR dif_h$126[rbp], xmm0 0111e 66 0f 6f 85 b0 1a 00 00 movdqa xmm0, XMMWORD PTR sum_h$124[rbp] 01126 66 0f 72 e0 11 psrad xmm0, 17 0112b 66 0f 6f 8d 80 1a 00 00 movdqa xmm1, XMMWORD PTR sum_l$123[rbp] 01133 66 0f 72 e1 11 psrad xmm1, 17 01138 66 0f 6b c8 packssdw xmm1, xmm0 0113c 66 0f 6f c1 movdqa xmm0, xmm1 01140 66 0f 7f 45 10 movdqa XMMWORD PTR row0$[rbp], xmm0 01145 66 0f 6f 85 10 1b 00 00 movdqa xmm0, XMMWORD PTR dif_h$126[rbp] 0114d 66 0f 72 e0 11 psrad xmm0, 17 01152 66 0f 6f 8d e0 1a 00 00 movdqa xmm1, XMMWORD PTR dif_l$125[rbp] 0115a 66 0f 72 e1 11 psrad xmm1, 17 0115f 66 0f 6b c8 packssdw xmm1, xmm0 01163 66 0f 6f c1 movdqa xmm0, xmm1 01167 66 0f 7f 85 60 01 00 00 movdqa XMMWORD PTR row7$[rbp], xmm0 0116f 66 0f 6f 85 20 14 00 00 movdqa xmm0, XMMWORD PTR x1_l$89[rbp] 01177 66 0f fe 85 70 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] 0117f 66 0f 7f 85 40 1b 00 00 movdqa XMMWORD PTR abiased_l$127[rbp], xmm0 01187 66 0f 6f 85 50 14 00 00 movdqa xmm0, XMMWORD PTR x1_h$90[rbp] 0118f 66 0f fe 85 70 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] 01197 66 0f 7f 85 70 1b 00 00 movdqa XMMWORD PTR abiased_h$128[rbp], xmm0 0119f 66 0f 6f 85 40 1b 00 00 movdqa xmm0, XMMWORD PTR abiased_l$127[rbp] 011a7 66 0f fe 85 60 19 00 00 paddd xmm0, XMMWORD PTR x6_l$117[rbp] 011af 66 0f 7f 85 a0 1b 00 00 movdqa XMMWORD PTR sum_l$129[rbp], xmm0 011b7 66 0f 6f 85 70 1b 00 00 movdqa xmm0, XMMWORD PTR abiased_h$128[rbp] 011bf 66 0f fe 85 90 19 00 00 paddd xmm0, XMMWORD PTR x6_h$118[rbp] 011c7 66 0f 7f 85 d0 1b 00 00 movdqa XMMWORD PTR sum_h$130[rbp], xmm0 011cf 66 0f 6f 85 40 1b 00 00 movdqa xmm0, XMMWORD PTR abiased_l$127[rbp] 011d7 66 0f fa 85 60 19 00 00 psubd xmm0, XMMWORD PTR x6_l$117[rbp] 011df 66 0f 7f 85 00 1c 00 00 movdqa XMMWORD PTR dif_l$131[rbp], xmm0 011e7 66 0f 6f 85 70 1b 00 00 movdqa xmm0, XMMWORD PTR abiased_h$128[rbp] 011ef 66 0f fa 85 90 19 00 00 psubd xmm0, XMMWORD PTR x6_h$118[rbp] 011f7 66 0f 7f 85 30 1c 00 00 movdqa XMMWORD PTR dif_h$132[rbp], xmm0 011ff 66 0f 6f 85 d0 1b 00 00 movdqa xmm0, XMMWORD PTR sum_h$130[rbp] 01207 66 0f 72 e0 11 psrad xmm0, 17 0120c 66 0f 6f 8d a0 1b 00 00 movdqa xmm1, XMMWORD PTR sum_l$129[rbp] 01214 66 0f 72 e1 11 psrad xmm1, 17 01219 66 0f 6b c8 packssdw xmm1, xmm0 0121d 66 0f 6f c1 movdqa xmm0, xmm1 01221 66 0f 7f 45 40 movdqa XMMWORD PTR row1$[rbp], xmm0 01226 66 0f 6f 85 30 1c 00 00 movdqa xmm0, XMMWORD PTR dif_h$132[rbp] 0122e 66 0f 72 e0 11 psrad xmm0, 17 01233 66 0f 6f 8d 00 1c 00 00 movdqa xmm1, XMMWORD PTR dif_l$131[rbp] 0123b 66 0f 72 e1 11 psrad xmm1, 17 01240 66 0f 6b c8 packssdw xmm1, xmm0 01244 66 0f 6f c1 movdqa xmm0, xmm1 01248 66 0f 7f 85 30 01 00 00 movdqa XMMWORD PTR row6$[rbp], xmm0 01250 66 0f 6f 85 80 14 00 00 movdqa xmm0, XMMWORD PTR x2_l$91[rbp] 01258 66 0f fe 85 70 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] 01260 66 0f 7f 85 60 1c 00 00 movdqa XMMWORD PTR abiased_l$133[rbp], xmm0 01268 66 0f 6f 85 b0 14 00 00 movdqa xmm0, XMMWORD PTR x2_h$92[rbp] 01270 66 0f fe 85 70 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] 01278 66 0f 7f 85 90 1c 00 00 movdqa XMMWORD PTR abiased_h$134[rbp], xmm0 01280 66 0f 6f 85 60 1c 00 00 movdqa xmm0, XMMWORD PTR abiased_l$133[rbp] 01288 66 0f fe 85 00 19 00 00 paddd xmm0, XMMWORD PTR x5_l$115[rbp] 01290 66 0f 7f 85 c0 1c 00 00 movdqa XMMWORD PTR sum_l$135[rbp], xmm0 01298 66 0f 6f 85 90 1c 00 00 movdqa xmm0, XMMWORD PTR abiased_h$134[rbp] 012a0 66 0f fe 85 30 19 00 00 paddd xmm0, XMMWORD PTR x5_h$116[rbp] 012a8 66 0f 7f 85 f0 1c 00 00 movdqa XMMWORD PTR sum_h$136[rbp], xmm0 012b0 66 0f 6f 85 60 1c 00 00 movdqa xmm0, XMMWORD PTR abiased_l$133[rbp] 012b8 66 0f fa 85 00 19 00 00 psubd xmm0, XMMWORD PTR x5_l$115[rbp] 012c0 66 0f 7f 85 20 1d 00 00 movdqa XMMWORD PTR dif_l$137[rbp], xmm0 012c8 66 0f 6f 85 90 1c 00 00 movdqa xmm0, XMMWORD PTR abiased_h$134[rbp] 012d0 66 0f fa 85 30 19 00 00 psubd xmm0, XMMWORD PTR x5_h$116[rbp] 012d8 66 0f 7f 85 50 1d 00 00 movdqa XMMWORD PTR dif_h$138[rbp], xmm0 012e0 66 0f 6f 85 f0 1c 00 00 movdqa xmm0, XMMWORD PTR sum_h$136[rbp] 012e8 66 0f 72 e0 11 psrad xmm0, 17 012ed 66 0f 6f 8d c0 1c 00 00 movdqa xmm1, XMMWORD PTR sum_l$135[rbp] 012f5 66 0f 72 e1 11 psrad xmm1, 17 012fa 66 0f 6b c8 packssdw xmm1, xmm0 012fe 66 0f 6f c1 movdqa xmm0, xmm1 01302 66 0f 7f 45 70 movdqa XMMWORD PTR row2$[rbp], xmm0 01307 66 0f 6f 85 50 1d 00 00 movdqa xmm0, XMMWORD PTR dif_h$138[rbp] 0130f 66 0f 72 e0 11 psrad xmm0, 17 01314 66 0f 6f 8d 20 1d 00 00 movdqa xmm1, XMMWORD PTR dif_l$137[rbp] 0131c 66 0f 72 e1 11 psrad xmm1, 17 01321 66 0f 6b c8 packssdw xmm1, xmm0 01325 66 0f 6f c1 movdqa xmm0, xmm1 01329 66 0f 7f 85 00 01 00 00 movdqa XMMWORD PTR row5$[rbp], xmm0 01331 66 0f 6f 85 c0 13 00 00 movdqa xmm0, XMMWORD PTR x3_l$87[rbp] 01339 66 0f fe 85 70 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] 01341 66 0f 7f 85 80 1d 00 00 movdqa XMMWORD PTR abiased_l$139[rbp], xmm0 01349 66 0f 6f 85 f0 13 00 00 movdqa xmm0, XMMWORD PTR x3_h$88[rbp] 01351 66 0f fe 85 70 03 00 00 paddd xmm0, XMMWORD PTR bias_1$[rbp] 01359 66 0f 7f 85 b0 1d 00 00 movdqa XMMWORD PTR abiased_h$140[rbp], xmm0 01361 66 0f 6f 85 80 1d 00 00 movdqa xmm0, XMMWORD PTR abiased_l$139[rbp] 01369 66 0f fe 85 a0 18 00 00 paddd xmm0, XMMWORD PTR x4_l$113[rbp] 01371 66 0f 7f 85 e0 1d 00 00 movdqa XMMWORD PTR sum_l$141[rbp], xmm0 01379 66 0f 6f 85 b0 1d 00 00 movdqa xmm0, XMMWORD PTR abiased_h$140[rbp] 01381 66 0f fe 85 d0 18 00 00 paddd xmm0, XMMWORD PTR x4_h$114[rbp] 01389 66 0f 7f 85 10 1e 00 00 movdqa XMMWORD PTR sum_h$142[rbp], xmm0 01391 66 0f 6f 85 80 1d 00 00 movdqa xmm0, XMMWORD PTR abiased_l$139[rbp] 01399 66 0f fa 85 a0 18 00 00 psubd xmm0, XMMWORD PTR x4_l$113[rbp] 013a1 66 0f 7f 85 40 1e 00 00 movdqa XMMWORD PTR dif_l$143[rbp], xmm0 013a9 66 0f 6f 85 b0 1d 00 00 movdqa xmm0, XMMWORD PTR abiased_h$140[rbp] 013b1 66 0f fa 85 d0 18 00 00 psubd xmm0, XMMWORD PTR x4_h$114[rbp] 013b9 66 0f 7f 85 70 1e 00 00 movdqa XMMWORD PTR dif_h$144[rbp], xmm0 013c1 66 0f 6f 85 10 1e 00 00 movdqa xmm0, XMMWORD PTR sum_h$142[rbp] 013c9 66 0f 72 e0 11 psrad xmm0, 17 013ce 66 0f 6f 8d e0 1d 00 00 movdqa xmm1, XMMWORD PTR sum_l$141[rbp] 013d6 66 0f 72 e1 11 psrad xmm1, 17 013db 66 0f 6b c8 packssdw xmm1, xmm0 013df 66 0f 6f c1 movdqa xmm0, xmm1 013e3 66 0f 7f 85 a0 00 00 00 movdqa XMMWORD PTR row3$[rbp], xmm0 013eb 66 0f 6f 85 70 1e 00 00 movdqa xmm0, XMMWORD PTR dif_h$144[rbp] 013f3 66 0f 72 e0 11 psrad xmm0, 17 013f8 66 0f 6f 8d 40 1e 00 00 movdqa xmm1, XMMWORD PTR dif_l$143[rbp] 01400 66 0f 72 e1 11 psrad xmm1, 17 01405 66 0f 6b c8 packssdw xmm1, xmm0 01409 66 0f 6f c1 movdqa xmm0, xmm1 0140d 66 0f 7f 85 d0 00 00 00 movdqa XMMWORD PTR row4$[rbp], xmm0 ; 2407 : ; 2408 : { ; 2409 : // pack ; 2410 : __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 01415 66 0f 6f 45 10 movdqa xmm0, XMMWORD PTR row0$[rbp] 0141a 66 0f 67 45 40 packuswb xmm0, XMMWORD PTR row1$[rbp] 0141f 66 0f 7f 85 a0 1e 00 00 movdqa XMMWORD PTR p0$145[rbp], xmm0 ; 2411 : __m128i p1 = _mm_packus_epi16(row2, row3); 01427 66 0f 6f 45 70 movdqa xmm0, XMMWORD PTR row2$[rbp] 0142c 66 0f 67 85 a0 00 00 00 packuswb xmm0, XMMWORD PTR row3$[rbp] 01434 66 0f 7f 85 d0 1e 00 00 movdqa XMMWORD PTR p1$146[rbp], xmm0 ; 2412 : __m128i p2 = _mm_packus_epi16(row4, row5); 0143c 66 0f 6f 85 d0 00 00 00 movdqa xmm0, XMMWORD PTR row4$[rbp] 01444 66 0f 67 85 00 01 00 00 packuswb xmm0, XMMWORD PTR row5$[rbp] 0144c 66 0f 7f 85 00 1f 00 00 movdqa XMMWORD PTR p2$147[rbp], xmm0 ; 2413 : __m128i p3 = _mm_packus_epi16(row6, row7); 01454 66 0f 6f 85 30 01 00 00 movdqa xmm0, XMMWORD PTR row6$[rbp] 0145c 66 0f 67 85 60 01 00 00 packuswb xmm0, XMMWORD PTR row7$[rbp] 01464 66 0f 7f 85 30 1f 00 00 movdqa XMMWORD PTR p3$148[rbp], xmm0 ; 2414 : ; 2415 : // 8bit 8x8 transpose pass 1 ; 2416 : dct_interleave8(p0, p2); // a0e0a1e1... 0146c 66 0f 6f 85 a0 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] 01474 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 0147c 66 0f 6f 85 a0 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] 01484 66 0f 60 85 00 1f 00 00 punpcklbw xmm0, XMMWORD PTR p2$147[rbp] 0148c 66 0f 7f 85 a0 1e 00 00 movdqa XMMWORD PTR p0$145[rbp], xmm0 01494 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 0149c 66 0f 68 85 00 1f 00 00 punpckhbw xmm0, XMMWORD PTR p2$147[rbp] 014a4 66 0f 7f 85 00 1f 00 00 movdqa XMMWORD PTR p2$147[rbp], xmm0 ; 2417 : dct_interleave8(p1, p3); // c0g0c1g1... 014ac 66 0f 6f 85 d0 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] 014b4 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 014bc 66 0f 6f 85 d0 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] 014c4 66 0f 60 85 30 1f 00 00 punpcklbw xmm0, XMMWORD PTR p3$148[rbp] 014cc 66 0f 7f 85 d0 1e 00 00 movdqa XMMWORD PTR p1$146[rbp], xmm0 014d4 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 014dc 66 0f 68 85 30 1f 00 00 punpckhbw xmm0, XMMWORD PTR p3$148[rbp] 014e4 66 0f 7f 85 30 1f 00 00 movdqa XMMWORD PTR p3$148[rbp], xmm0 ; 2418 : ; 2419 : // transpose pass 2 ; 2420 : dct_interleave8(p0, p1); // a0c0e0g0... 014ec 66 0f 6f 85 a0 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] 014f4 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 014fc 66 0f 6f 85 a0 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] 01504 66 0f 60 85 d0 1e 00 00 punpcklbw xmm0, XMMWORD PTR p1$146[rbp] 0150c 66 0f 7f 85 a0 1e 00 00 movdqa XMMWORD PTR p0$145[rbp], xmm0 01514 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 0151c 66 0f 68 85 d0 1e 00 00 punpckhbw xmm0, XMMWORD PTR p1$146[rbp] 01524 66 0f 7f 85 d0 1e 00 00 movdqa XMMWORD PTR p1$146[rbp], xmm0 ; 2421 : dct_interleave8(p2, p3); // b0d0f0h0... 0152c 66 0f 6f 85 00 1f 00 00 movdqa xmm0, XMMWORD PTR p2$147[rbp] 01534 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 0153c 66 0f 6f 85 00 1f 00 00 movdqa xmm0, XMMWORD PTR p2$147[rbp] 01544 66 0f 60 85 30 1f 00 00 punpcklbw xmm0, XMMWORD PTR p3$148[rbp] 0154c 66 0f 7f 85 00 1f 00 00 movdqa XMMWORD PTR p2$147[rbp], xmm0 01554 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 0155c 66 0f 68 85 30 1f 00 00 punpckhbw xmm0, XMMWORD PTR p3$148[rbp] 01564 66 0f 7f 85 30 1f 00 00 movdqa XMMWORD PTR p3$148[rbp], xmm0 ; 2422 : ; 2423 : // transpose pass 3 ; 2424 : dct_interleave8(p0, p2); // a0b0c0d0... 0156c 66 0f 6f 85 a0 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] 01574 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 0157c 66 0f 6f 85 a0 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] 01584 66 0f 60 85 00 1f 00 00 punpcklbw xmm0, XMMWORD PTR p2$147[rbp] 0158c 66 0f 7f 85 a0 1e 00 00 movdqa XMMWORD PTR p0$145[rbp], xmm0 01594 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 0159c 66 0f 68 85 00 1f 00 00 punpckhbw xmm0, XMMWORD PTR p2$147[rbp] 015a4 66 0f 7f 85 00 1f 00 00 movdqa XMMWORD PTR p2$147[rbp], xmm0 ; 2425 : dct_interleave8(p1, p3); // a4b4c4d4... 015ac 66 0f 6f 85 d0 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] 015b4 66 0f 7f 85 90 01 00 00 movdqa XMMWORD PTR tmp$[rbp], xmm0 015bc 66 0f 6f 85 d0 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] 015c4 66 0f 60 85 30 1f 00 00 punpcklbw xmm0, XMMWORD PTR p3$148[rbp] 015cc 66 0f 7f 85 d0 1e 00 00 movdqa XMMWORD PTR p1$146[rbp], xmm0 015d4 66 0f 6f 85 90 01 00 00 movdqa xmm0, XMMWORD PTR tmp$[rbp] 015dc 66 0f 68 85 30 1f 00 00 punpckhbw xmm0, XMMWORD PTR p3$148[rbp] 015e4 66 0f 7f 85 30 1f 00 00 movdqa XMMWORD PTR p3$148[rbp], xmm0 ; 2426 : ; 2427 : // store ; 2428 : _mm_storel_epi64((__m128i *)out, p0); 015ec 48 8b 85 70 25 00 00 mov rax, QWORD PTR out$[rbp] 015f3 66 0f 6f 85 a0 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] 015fb 66 0f d6 00 movq QWORD PTR [rax], xmm0 ; 2429 : out += out_stride; 015ff 48 63 85 78 25 00 00 movsxd rax, DWORD PTR out_stride$[rbp] 01606 48 8b 8d 70 25 00 00 mov rcx, QWORD PTR out$[rbp] 0160d 48 03 c8 add rcx, rax 01610 48 8b c1 mov rax, rcx 01613 48 89 85 70 25 00 00 mov QWORD PTR out$[rbp], rax ; 2430 : _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p0, 0x4e)); 0161a 66 0f 6f 85 a0 1e 00 00 movdqa xmm0, XMMWORD PTR p0$145[rbp] 01622 66 0f 70 c0 4e pshufd xmm0, xmm0, 78 ; 0000004eH 01627 48 8b 85 70 25 00 00 mov rax, QWORD PTR out$[rbp] 0162e 66 0f d6 00 movq QWORD PTR [rax], xmm0 ; 2431 : out += out_stride; 01632 48 63 85 78 25 00 00 movsxd rax, DWORD PTR out_stride$[rbp] 01639 48 8b 8d 70 25 00 00 mov rcx, QWORD PTR out$[rbp] 01640 48 03 c8 add rcx, rax 01643 48 8b c1 mov rax, rcx 01646 48 89 85 70 25 00 00 mov QWORD PTR out$[rbp], rax ; 2432 : _mm_storel_epi64((__m128i *)out, p2); 0164d 48 8b 85 70 25 00 00 mov rax, QWORD PTR out$[rbp] 01654 66 0f 6f 85 00 1f 00 00 movdqa xmm0, XMMWORD PTR p2$147[rbp] 0165c 66 0f d6 00 movq QWORD PTR [rax], xmm0 ; 2433 : out += out_stride; 01660 48 63 85 78 25 00 00 movsxd rax, DWORD PTR out_stride$[rbp] 01667 48 8b 8d 70 25 00 00 mov rcx, QWORD PTR out$[rbp] 0166e 48 03 c8 add rcx, rax 01671 48 8b c1 mov rax, rcx 01674 48 89 85 70 25 00 00 mov QWORD PTR out$[rbp], rax ; 2434 : _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p2, 0x4e)); 0167b 66 0f 6f 85 00 1f 00 00 movdqa xmm0, XMMWORD PTR p2$147[rbp] 01683 66 0f 70 c0 4e pshufd xmm0, xmm0, 78 ; 0000004eH 01688 48 8b 85 70 25 00 00 mov rax, QWORD PTR out$[rbp] 0168f 66 0f d6 00 movq QWORD PTR [rax], xmm0 ; 2435 : out += out_stride; 01693 48 63 85 78 25 00 00 movsxd rax, DWORD PTR out_stride$[rbp] 0169a 48 8b 8d 70 25 00 00 mov rcx, QWORD PTR out$[rbp] 016a1 48 03 c8 add rcx, rax 016a4 48 8b c1 mov rax, rcx 016a7 48 89 85 70 25 00 00 mov QWORD PTR out$[rbp], rax ; 2436 : _mm_storel_epi64((__m128i *)out, p1); 016ae 48 8b 85 70 25 00 00 mov rax, QWORD PTR out$[rbp] 016b5 66 0f 6f 85 d0 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] 016bd 66 0f d6 00 movq QWORD PTR [rax], xmm0 ; 2437 : out += out_stride; 016c1 48 63 85 78 25 00 00 movsxd rax, DWORD PTR out_stride$[rbp] 016c8 48 8b 8d 70 25 00 00 mov rcx, QWORD PTR out$[rbp] 016cf 48 03 c8 add rcx, rax 016d2 48 8b c1 mov rax, rcx 016d5 48 89 85 70 25 00 00 mov QWORD PTR out$[rbp], rax ; 2438 : _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p1, 0x4e)); 016dc 66 0f 6f 85 d0 1e 00 00 movdqa xmm0, XMMWORD PTR p1$146[rbp] 016e4 66 0f 70 c0 4e pshufd xmm0, xmm0, 78 ; 0000004eH 016e9 48 8b 85 70 25 00 00 mov rax, QWORD PTR out$[rbp] 016f0 66 0f d6 00 movq QWORD PTR [rax], xmm0 ; 2439 : out += out_stride; 016f4 48 63 85 78 25 00 00 movsxd rax, DWORD PTR out_stride$[rbp] 016fb 48 8b 8d 70 25 00 00 mov rcx, QWORD PTR out$[rbp] 01702 48 03 c8 add rcx, rax 01705 48 8b c1 mov rax, rcx 01708 48 89 85 70 25 00 00 mov QWORD PTR out$[rbp], rax ; 2440 : _mm_storel_epi64((__m128i *)out, p3); 0170f 48 8b 85 70 25 00 00 mov rax, QWORD PTR out$[rbp] 01716 66 0f 6f 85 30 1f 00 00 movdqa xmm0, XMMWORD PTR p3$148[rbp] 0171e 66 0f d6 00 movq QWORD PTR [rax], xmm0 ; 2441 : out += out_stride; 01722 48 63 85 78 25 00 00 movsxd rax, DWORD PTR out_stride$[rbp] 01729 48 8b 8d 70 25 00 00 mov rcx, QWORD PTR out$[rbp] 01730 48 03 c8 add rcx, rax 01733 48 8b c1 mov rax, rcx 01736 48 89 85 70 25 00 00 mov QWORD PTR out$[rbp], rax ; 2442 : _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p3, 0x4e)); 0173d 66 0f 6f 85 30 1f 00 00 movdqa xmm0, XMMWORD PTR p3$148[rbp] 01745 66 0f 70 c0 4e pshufd xmm0, xmm0, 78 ; 0000004eH 0174a 48 8b 85 70 25 00 00 mov rax, QWORD PTR out$[rbp] 01751 66 0f d6 00 movq QWORD PTR [rax], xmm0 ; 2443 : } ; 2444 : ; 2445 : #undef dct_const ; 2446 : #undef dct_rot ; 2447 : #undef dct_widen ; 2448 : #undef dct_wadd ; 2449 : #undef dct_wsub ; 2450 : #undef dct_bfly32o ; 2451 : #undef dct_interleave8 ; 2452 : #undef dct_interleave16 ; 2453 : #undef dct_pass ; 2454 : } 01755 48 8d a5 58 25 00 00 lea rsp, QWORD PTR [rbp+9560] 0175c 5f pop rdi 0175d 5d pop rbp 0175e c3 ret 0 stbi__idct_simd ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__idct_block _TEXT SEGMENT i$ = 4 val$ = 48 v$ = 328 o$ = 360 d$ = 392 dcterm$4 = 420 t0$5 = 452 t1$6 = 484 t2$7 = 516 t3$8 = 548 p1$9 = 580 p2$10 = 612 p3$11 = 644 p4$12 = 676 p5$13 = 708 x0$14 = 740 x1$15 = 772 x2$16 = 804 x3$17 = 836 t0$18 = 868 t1$19 = 900 t2$20 = 932 t3$21 = 964 p1$22 = 996 p2$23 = 1028 p3$24 = 1060 p4$25 = 1092 p5$26 = 1124 x0$27 = 1156 x1$28 = 1188 x2$29 = 1220 x3$30 = 1252 __$ArrayPad$ = 1848 out$ = 1888 out_stride$ = 1896 data$ = 1904 stbi__idct_block PROC ; COMDAT ; 2201 : { 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000e 55 push rbp 0000f 57 push rdi 00010 48 81 ec 68 07 00 00 sub rsp, 1896 ; 00000768H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001c 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00021 b9 42 01 00 00 mov ecx, 322 ; 00000142H 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 0002b f3 ab rep stosd 0002d 48 8b 8c 24 88 07 00 00 mov rcx, QWORD PTR [rsp+1928] 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0003c 48 33 c5 xor rax, rbp 0003f 48 89 85 38 07 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00046 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00052 90 npad 1 ; 2202 : int i, val[64], *v = val; 00053 48 8d 45 30 lea rax, QWORD PTR val$[rbp] 00057 48 89 85 48 01 00 00 mov QWORD PTR v$[rbp], rax ; 2203 : stbi_uc *o; ; 2204 : short *d = data; 0005e 48 8b 85 70 07 00 00 mov rax, QWORD PTR data$[rbp] 00065 48 89 85 88 01 00 00 mov QWORD PTR d$[rbp], rax ; 2205 : ; 2206 : // columns ; 2207 : for (i = 0; i < 8; ++i, ++d, ++v) { 0006c c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00073 eb 2c jmp SHORT $LN4@stbi__idct $LN2@stbi__idct: 00075 8b 45 04 mov eax, DWORD PTR i$[rbp] 00078 ff c0 inc eax 0007a 89 45 04 mov DWORD PTR i$[rbp], eax 0007d 48 8b 85 88 01 00 00 mov rax, QWORD PTR d$[rbp] 00084 48 83 c0 02 add rax, 2 00088 48 89 85 88 01 00 00 mov QWORD PTR d$[rbp], rax 0008f 48 8b 85 48 01 00 00 mov rax, QWORD PTR v$[rbp] 00096 48 83 c0 04 add rax, 4 0009a 48 89 85 48 01 00 00 mov QWORD PTR v$[rbp], rax $LN4@stbi__idct: 000a1 83 7d 04 08 cmp DWORD PTR i$[rbp], 8 000a5 0f 8d 5f 06 00 00 jge $LN3@stbi__idct ; 2208 : // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing ; 2209 : if (d[8] == 0 && d[16] == 0 && d[24] == 0 && d[32] == 0 && d[40] == 0 && ; 2210 : d[48] == 0 && d[56] == 0) { 000ab b8 02 00 00 00 mov eax, 2 000b0 48 6b c0 08 imul rax, rax, 8 000b4 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 000bb 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 000bf 85 c0 test eax, eax 000c1 0f 85 92 01 00 00 jne $LN8@stbi__idct 000c7 b8 02 00 00 00 mov eax, 2 000cc 48 6b c0 10 imul rax, rax, 16 000d0 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 000d7 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 000db 85 c0 test eax, eax 000dd 0f 85 76 01 00 00 jne $LN8@stbi__idct 000e3 b8 02 00 00 00 mov eax, 2 000e8 48 6b c0 18 imul rax, rax, 24 000ec 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 000f3 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 000f7 85 c0 test eax, eax 000f9 0f 85 5a 01 00 00 jne $LN8@stbi__idct 000ff b8 02 00 00 00 mov eax, 2 00104 48 6b c0 20 imul rax, rax, 32 ; 00000020H 00108 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 0010f 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 00113 85 c0 test eax, eax 00115 0f 85 3e 01 00 00 jne $LN8@stbi__idct 0011b b8 02 00 00 00 mov eax, 2 00120 48 6b c0 28 imul rax, rax, 40 ; 00000028H 00124 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 0012b 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 0012f 85 c0 test eax, eax 00131 0f 85 22 01 00 00 jne $LN8@stbi__idct 00137 b8 02 00 00 00 mov eax, 2 0013c 48 6b c0 30 imul rax, rax, 48 ; 00000030H 00140 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 00147 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 0014b 85 c0 test eax, eax 0014d 0f 85 06 01 00 00 jne $LN8@stbi__idct 00153 b8 02 00 00 00 mov eax, 2 00158 48 6b c0 38 imul rax, rax, 56 ; 00000038H 0015c 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 00163 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 00167 85 c0 test eax, eax 00169 0f 85 ea 00 00 00 jne $LN8@stbi__idct ; 2211 : // no shortcut 0 seconds ; 2212 : // (1|2|3|4|5|6|7)==0 0 seconds ; 2213 : // all separate -0.047 seconds ; 2214 : // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds ; 2215 : int dcterm = d[0] * 4; 0016f b8 02 00 00 00 mov eax, 2 00174 48 6b c0 00 imul rax, rax, 0 00178 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 0017f 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 00183 c1 e0 02 shl eax, 2 00186 89 85 a4 01 00 00 mov DWORD PTR dcterm$4[rbp], eax ; 2216 : v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; 0018c b8 04 00 00 00 mov eax, 4 00191 48 6b c0 38 imul rax, rax, 56 ; 00000038H 00195 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 0019c 8b 95 a4 01 00 00 mov edx, DWORD PTR dcterm$4[rbp] 001a2 89 14 01 mov DWORD PTR [rcx+rax], edx 001a5 b8 04 00 00 00 mov eax, 4 001aa 48 6b c0 30 imul rax, rax, 48 ; 00000030H 001ae 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 001b5 8b 95 a4 01 00 00 mov edx, DWORD PTR dcterm$4[rbp] 001bb 89 14 01 mov DWORD PTR [rcx+rax], edx 001be b8 04 00 00 00 mov eax, 4 001c3 48 6b c0 28 imul rax, rax, 40 ; 00000028H 001c7 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 001ce 8b 95 a4 01 00 00 mov edx, DWORD PTR dcterm$4[rbp] 001d4 89 14 01 mov DWORD PTR [rcx+rax], edx 001d7 b8 04 00 00 00 mov eax, 4 001dc 48 6b c0 20 imul rax, rax, 32 ; 00000020H 001e0 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 001e7 8b 95 a4 01 00 00 mov edx, DWORD PTR dcterm$4[rbp] 001ed 89 14 01 mov DWORD PTR [rcx+rax], edx 001f0 b8 04 00 00 00 mov eax, 4 001f5 48 6b c0 18 imul rax, rax, 24 001f9 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 00200 8b 95 a4 01 00 00 mov edx, DWORD PTR dcterm$4[rbp] 00206 89 14 01 mov DWORD PTR [rcx+rax], edx 00209 b8 04 00 00 00 mov eax, 4 0020e 48 6b c0 10 imul rax, rax, 16 00212 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 00219 8b 95 a4 01 00 00 mov edx, DWORD PTR dcterm$4[rbp] 0021f 89 14 01 mov DWORD PTR [rcx+rax], edx 00222 b8 04 00 00 00 mov eax, 4 00227 48 6b c0 08 imul rax, rax, 8 0022b 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 00232 8b 95 a4 01 00 00 mov edx, DWORD PTR dcterm$4[rbp] 00238 89 14 01 mov DWORD PTR [rcx+rax], edx 0023b b8 04 00 00 00 mov eax, 4 00240 48 6b c0 00 imul rax, rax, 0 00244 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 0024b 8b 95 a4 01 00 00 mov edx, DWORD PTR dcterm$4[rbp] 00251 89 14 01 mov DWORD PTR [rcx+rax], edx ; 2217 : } else { 00254 e9 ac 04 00 00 jmp $LN9@stbi__idct $LN8@stbi__idct: ; 2218 : STBI__IDCT_1D(d[0], d[8], d[16], d[24], d[32], d[40], d[48], d[56]) 00259 b8 02 00 00 00 mov eax, 2 0025e 48 6b c0 10 imul rax, rax, 16 00262 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 00269 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 0026d 89 85 64 02 00 00 mov DWORD PTR p2$10[rbp], eax 00273 b8 02 00 00 00 mov eax, 2 00278 48 6b c0 30 imul rax, rax, 48 ; 00000030H 0027c 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 00283 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 00287 89 85 84 02 00 00 mov DWORD PTR p3$11[rbp], eax 0028d 8b 85 84 02 00 00 mov eax, DWORD PTR p3$11[rbp] 00293 8b 8d 64 02 00 00 mov ecx, DWORD PTR p2$10[rbp] 00299 03 c8 add ecx, eax 0029b 8b c1 mov eax, ecx 0029d 69 c0 a9 08 00 00 imul eax, eax, 2217 ; 000008a9H 002a3 89 85 44 02 00 00 mov DWORD PTR p1$9[rbp], eax 002a9 69 85 84 02 00 00 71 e2 ff ff imul eax, DWORD PTR p3$11[rbp], -7567 ; ffffffffffffe271H 002b3 8b 8d 44 02 00 00 mov ecx, DWORD PTR p1$9[rbp] 002b9 03 c8 add ecx, eax 002bb 8b c1 mov eax, ecx 002bd 89 85 04 02 00 00 mov DWORD PTR t2$7[rbp], eax 002c3 69 85 64 02 00 00 3f 0c 00 00 imul eax, DWORD PTR p2$10[rbp], 3135 ; 00000c3fH 002cd 8b 8d 44 02 00 00 mov ecx, DWORD PTR p1$9[rbp] 002d3 03 c8 add ecx, eax 002d5 8b c1 mov eax, ecx 002d7 89 85 24 02 00 00 mov DWORD PTR t3$8[rbp], eax 002dd b8 02 00 00 00 mov eax, 2 002e2 48 6b c0 00 imul rax, rax, 0 002e6 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 002ed 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 002f1 89 85 64 02 00 00 mov DWORD PTR p2$10[rbp], eax 002f7 b8 02 00 00 00 mov eax, 2 002fc 48 6b c0 20 imul rax, rax, 32 ; 00000020H 00300 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 00307 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 0030b 89 85 84 02 00 00 mov DWORD PTR p3$11[rbp], eax 00311 8b 85 84 02 00 00 mov eax, DWORD PTR p3$11[rbp] 00317 8b 8d 64 02 00 00 mov ecx, DWORD PTR p2$10[rbp] 0031d 03 c8 add ecx, eax 0031f 8b c1 mov eax, ecx 00321 69 c0 00 10 00 00 imul eax, eax, 4096 ; 00001000H 00327 89 85 c4 01 00 00 mov DWORD PTR t0$5[rbp], eax 0032d 8b 85 84 02 00 00 mov eax, DWORD PTR p3$11[rbp] 00333 8b 8d 64 02 00 00 mov ecx, DWORD PTR p2$10[rbp] 00339 2b c8 sub ecx, eax 0033b 8b c1 mov eax, ecx 0033d 69 c0 00 10 00 00 imul eax, eax, 4096 ; 00001000H 00343 89 85 e4 01 00 00 mov DWORD PTR t1$6[rbp], eax 00349 8b 85 24 02 00 00 mov eax, DWORD PTR t3$8[rbp] 0034f 8b 8d c4 01 00 00 mov ecx, DWORD PTR t0$5[rbp] 00355 03 c8 add ecx, eax 00357 8b c1 mov eax, ecx 00359 89 85 e4 02 00 00 mov DWORD PTR x0$14[rbp], eax 0035f 8b 85 24 02 00 00 mov eax, DWORD PTR t3$8[rbp] 00365 8b 8d c4 01 00 00 mov ecx, DWORD PTR t0$5[rbp] 0036b 2b c8 sub ecx, eax 0036d 8b c1 mov eax, ecx 0036f 89 85 44 03 00 00 mov DWORD PTR x3$17[rbp], eax 00375 8b 85 04 02 00 00 mov eax, DWORD PTR t2$7[rbp] 0037b 8b 8d e4 01 00 00 mov ecx, DWORD PTR t1$6[rbp] 00381 03 c8 add ecx, eax 00383 8b c1 mov eax, ecx 00385 89 85 04 03 00 00 mov DWORD PTR x1$15[rbp], eax 0038b 8b 85 04 02 00 00 mov eax, DWORD PTR t2$7[rbp] 00391 8b 8d e4 01 00 00 mov ecx, DWORD PTR t1$6[rbp] 00397 2b c8 sub ecx, eax 00399 8b c1 mov eax, ecx 0039b 89 85 24 03 00 00 mov DWORD PTR x2$16[rbp], eax 003a1 b8 02 00 00 00 mov eax, 2 003a6 48 6b c0 38 imul rax, rax, 56 ; 00000038H 003aa 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 003b1 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 003b5 89 85 c4 01 00 00 mov DWORD PTR t0$5[rbp], eax 003bb b8 02 00 00 00 mov eax, 2 003c0 48 6b c0 28 imul rax, rax, 40 ; 00000028H 003c4 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 003cb 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 003cf 89 85 e4 01 00 00 mov DWORD PTR t1$6[rbp], eax 003d5 b8 02 00 00 00 mov eax, 2 003da 48 6b c0 18 imul rax, rax, 24 003de 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 003e5 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 003e9 89 85 04 02 00 00 mov DWORD PTR t2$7[rbp], eax 003ef b8 02 00 00 00 mov eax, 2 003f4 48 6b c0 08 imul rax, rax, 8 003f8 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR d$[rbp] 003ff 0f bf 04 01 movsx eax, WORD PTR [rcx+rax] 00403 89 85 24 02 00 00 mov DWORD PTR t3$8[rbp], eax 00409 8b 85 04 02 00 00 mov eax, DWORD PTR t2$7[rbp] 0040f 8b 8d c4 01 00 00 mov ecx, DWORD PTR t0$5[rbp] 00415 03 c8 add ecx, eax 00417 8b c1 mov eax, ecx 00419 89 85 84 02 00 00 mov DWORD PTR p3$11[rbp], eax 0041f 8b 85 24 02 00 00 mov eax, DWORD PTR t3$8[rbp] 00425 8b 8d e4 01 00 00 mov ecx, DWORD PTR t1$6[rbp] 0042b 03 c8 add ecx, eax 0042d 8b c1 mov eax, ecx 0042f 89 85 a4 02 00 00 mov DWORD PTR p4$12[rbp], eax 00435 8b 85 24 02 00 00 mov eax, DWORD PTR t3$8[rbp] 0043b 8b 8d c4 01 00 00 mov ecx, DWORD PTR t0$5[rbp] 00441 03 c8 add ecx, eax 00443 8b c1 mov eax, ecx 00445 89 85 44 02 00 00 mov DWORD PTR p1$9[rbp], eax 0044b 8b 85 04 02 00 00 mov eax, DWORD PTR t2$7[rbp] 00451 8b 8d e4 01 00 00 mov ecx, DWORD PTR t1$6[rbp] 00457 03 c8 add ecx, eax 00459 8b c1 mov eax, ecx 0045b 89 85 64 02 00 00 mov DWORD PTR p2$10[rbp], eax 00461 8b 85 a4 02 00 00 mov eax, DWORD PTR p4$12[rbp] 00467 8b 8d 84 02 00 00 mov ecx, DWORD PTR p3$11[rbp] 0046d 03 c8 add ecx, eax 0046f 8b c1 mov eax, ecx 00471 69 c0 d0 12 00 00 imul eax, eax, 4816 ; 000012d0H 00477 89 85 c4 02 00 00 mov DWORD PTR p5$13[rbp], eax 0047d 69 85 c4 01 00 00 c7 04 00 00 imul eax, DWORD PTR t0$5[rbp], 1223 ; 000004c7H 00487 89 85 c4 01 00 00 mov DWORD PTR t0$5[rbp], eax 0048d 69 85 e4 01 00 00 da 20 00 00 imul eax, DWORD PTR t1$6[rbp], 8410 ; 000020daH 00497 89 85 e4 01 00 00 mov DWORD PTR t1$6[rbp], eax 0049d 69 85 04 02 00 00 2a 31 00 00 imul eax, DWORD PTR t2$7[rbp], 12586 ; 0000312aH 004a7 89 85 04 02 00 00 mov DWORD PTR t2$7[rbp], eax 004ad 69 85 24 02 00 00 05 18 00 00 imul eax, DWORD PTR t3$8[rbp], 6149 ; 00001805H 004b7 89 85 24 02 00 00 mov DWORD PTR t3$8[rbp], eax 004bd 69 85 44 02 00 00 9b f1 ff ff imul eax, DWORD PTR p1$9[rbp], -3685 ; fffffffffffff19bH 004c7 8b 8d c4 02 00 00 mov ecx, DWORD PTR p5$13[rbp] 004cd 03 c8 add ecx, eax 004cf 8b c1 mov eax, ecx 004d1 89 85 44 02 00 00 mov DWORD PTR p1$9[rbp], eax 004d7 69 85 64 02 00 00 ff d6 ff ff imul eax, DWORD PTR p2$10[rbp], -10497 ; ffffffffffffd6ffH 004e1 8b 8d c4 02 00 00 mov ecx, DWORD PTR p5$13[rbp] 004e7 03 c8 add ecx, eax 004e9 8b c1 mov eax, ecx 004eb 89 85 64 02 00 00 mov DWORD PTR p2$10[rbp], eax 004f1 69 85 84 02 00 00 9e e0 ff ff imul eax, DWORD PTR p3$11[rbp], -8034 ; ffffffffffffe09eH 004fb 89 85 84 02 00 00 mov DWORD PTR p3$11[rbp], eax 00501 69 85 a4 02 00 00 c3 f9 ff ff imul eax, DWORD PTR p4$12[rbp], -1597 ; fffffffffffff9c3H 0050b 89 85 a4 02 00 00 mov DWORD PTR p4$12[rbp], eax 00511 8b 85 a4 02 00 00 mov eax, DWORD PTR p4$12[rbp] 00517 8b 8d 44 02 00 00 mov ecx, DWORD PTR p1$9[rbp] 0051d 03 c8 add ecx, eax 0051f 8b c1 mov eax, ecx 00521 8b 8d 24 02 00 00 mov ecx, DWORD PTR t3$8[rbp] 00527 03 c8 add ecx, eax 00529 8b c1 mov eax, ecx 0052b 89 85 24 02 00 00 mov DWORD PTR t3$8[rbp], eax 00531 8b 85 84 02 00 00 mov eax, DWORD PTR p3$11[rbp] 00537 8b 8d 64 02 00 00 mov ecx, DWORD PTR p2$10[rbp] 0053d 03 c8 add ecx, eax 0053f 8b c1 mov eax, ecx 00541 8b 8d 04 02 00 00 mov ecx, DWORD PTR t2$7[rbp] 00547 03 c8 add ecx, eax 00549 8b c1 mov eax, ecx 0054b 89 85 04 02 00 00 mov DWORD PTR t2$7[rbp], eax 00551 8b 85 a4 02 00 00 mov eax, DWORD PTR p4$12[rbp] 00557 8b 8d 64 02 00 00 mov ecx, DWORD PTR p2$10[rbp] 0055d 03 c8 add ecx, eax 0055f 8b c1 mov eax, ecx 00561 8b 8d e4 01 00 00 mov ecx, DWORD PTR t1$6[rbp] 00567 03 c8 add ecx, eax 00569 8b c1 mov eax, ecx 0056b 89 85 e4 01 00 00 mov DWORD PTR t1$6[rbp], eax 00571 8b 85 84 02 00 00 mov eax, DWORD PTR p3$11[rbp] 00577 8b 8d 44 02 00 00 mov ecx, DWORD PTR p1$9[rbp] 0057d 03 c8 add ecx, eax 0057f 8b c1 mov eax, ecx 00581 8b 8d c4 01 00 00 mov ecx, DWORD PTR t0$5[rbp] 00587 03 c8 add ecx, eax 00589 8b c1 mov eax, ecx 0058b 89 85 c4 01 00 00 mov DWORD PTR t0$5[rbp], eax ; 2219 : // constants scaled things up by 1<<12; let's bring them back ; 2220 : // down, but keep 2 extra bits of precision ; 2221 : x0 += 512; 00591 8b 85 e4 02 00 00 mov eax, DWORD PTR x0$14[rbp] 00597 05 00 02 00 00 add eax, 512 ; 00000200H 0059c 89 85 e4 02 00 00 mov DWORD PTR x0$14[rbp], eax ; 2222 : x1 += 512; 005a2 8b 85 04 03 00 00 mov eax, DWORD PTR x1$15[rbp] 005a8 05 00 02 00 00 add eax, 512 ; 00000200H 005ad 89 85 04 03 00 00 mov DWORD PTR x1$15[rbp], eax ; 2223 : x2 += 512; 005b3 8b 85 24 03 00 00 mov eax, DWORD PTR x2$16[rbp] 005b9 05 00 02 00 00 add eax, 512 ; 00000200H 005be 89 85 24 03 00 00 mov DWORD PTR x2$16[rbp], eax ; 2224 : x3 += 512; 005c4 8b 85 44 03 00 00 mov eax, DWORD PTR x3$17[rbp] 005ca 05 00 02 00 00 add eax, 512 ; 00000200H 005cf 89 85 44 03 00 00 mov DWORD PTR x3$17[rbp], eax ; 2225 : v[0] = (x0 + t3) >> 10; 005d5 8b 85 24 02 00 00 mov eax, DWORD PTR t3$8[rbp] 005db 8b 8d e4 02 00 00 mov ecx, DWORD PTR x0$14[rbp] 005e1 03 c8 add ecx, eax 005e3 8b c1 mov eax, ecx 005e5 c1 f8 0a sar eax, 10 005e8 b9 04 00 00 00 mov ecx, 4 005ed 48 6b c9 00 imul rcx, rcx, 0 005f1 48 8b 95 48 01 00 00 mov rdx, QWORD PTR v$[rbp] 005f8 89 04 0a mov DWORD PTR [rdx+rcx], eax ; 2226 : v[56] = (x0 - t3) >> 10; 005fb 8b 85 24 02 00 00 mov eax, DWORD PTR t3$8[rbp] 00601 8b 8d e4 02 00 00 mov ecx, DWORD PTR x0$14[rbp] 00607 2b c8 sub ecx, eax 00609 8b c1 mov eax, ecx 0060b c1 f8 0a sar eax, 10 0060e b9 04 00 00 00 mov ecx, 4 00613 48 6b c9 38 imul rcx, rcx, 56 ; 00000038H 00617 48 8b 95 48 01 00 00 mov rdx, QWORD PTR v$[rbp] 0061e 89 04 0a mov DWORD PTR [rdx+rcx], eax ; 2227 : v[8] = (x1 + t2) >> 10; 00621 8b 85 04 02 00 00 mov eax, DWORD PTR t2$7[rbp] 00627 8b 8d 04 03 00 00 mov ecx, DWORD PTR x1$15[rbp] 0062d 03 c8 add ecx, eax 0062f 8b c1 mov eax, ecx 00631 c1 f8 0a sar eax, 10 00634 b9 04 00 00 00 mov ecx, 4 00639 48 6b c9 08 imul rcx, rcx, 8 0063d 48 8b 95 48 01 00 00 mov rdx, QWORD PTR v$[rbp] 00644 89 04 0a mov DWORD PTR [rdx+rcx], eax ; 2228 : v[48] = (x1 - t2) >> 10; 00647 8b 85 04 02 00 00 mov eax, DWORD PTR t2$7[rbp] 0064d 8b 8d 04 03 00 00 mov ecx, DWORD PTR x1$15[rbp] 00653 2b c8 sub ecx, eax 00655 8b c1 mov eax, ecx 00657 c1 f8 0a sar eax, 10 0065a b9 04 00 00 00 mov ecx, 4 0065f 48 6b c9 30 imul rcx, rcx, 48 ; 00000030H 00663 48 8b 95 48 01 00 00 mov rdx, QWORD PTR v$[rbp] 0066a 89 04 0a mov DWORD PTR [rdx+rcx], eax ; 2229 : v[16] = (x2 + t1) >> 10; 0066d 8b 85 e4 01 00 00 mov eax, DWORD PTR t1$6[rbp] 00673 8b 8d 24 03 00 00 mov ecx, DWORD PTR x2$16[rbp] 00679 03 c8 add ecx, eax 0067b 8b c1 mov eax, ecx 0067d c1 f8 0a sar eax, 10 00680 b9 04 00 00 00 mov ecx, 4 00685 48 6b c9 10 imul rcx, rcx, 16 00689 48 8b 95 48 01 00 00 mov rdx, QWORD PTR v$[rbp] 00690 89 04 0a mov DWORD PTR [rdx+rcx], eax ; 2230 : v[40] = (x2 - t1) >> 10; 00693 8b 85 e4 01 00 00 mov eax, DWORD PTR t1$6[rbp] 00699 8b 8d 24 03 00 00 mov ecx, DWORD PTR x2$16[rbp] 0069f 2b c8 sub ecx, eax 006a1 8b c1 mov eax, ecx 006a3 c1 f8 0a sar eax, 10 006a6 b9 04 00 00 00 mov ecx, 4 006ab 48 6b c9 28 imul rcx, rcx, 40 ; 00000028H 006af 48 8b 95 48 01 00 00 mov rdx, QWORD PTR v$[rbp] 006b6 89 04 0a mov DWORD PTR [rdx+rcx], eax ; 2231 : v[24] = (x3 + t0) >> 10; 006b9 8b 85 c4 01 00 00 mov eax, DWORD PTR t0$5[rbp] 006bf 8b 8d 44 03 00 00 mov ecx, DWORD PTR x3$17[rbp] 006c5 03 c8 add ecx, eax 006c7 8b c1 mov eax, ecx 006c9 c1 f8 0a sar eax, 10 006cc b9 04 00 00 00 mov ecx, 4 006d1 48 6b c9 18 imul rcx, rcx, 24 006d5 48 8b 95 48 01 00 00 mov rdx, QWORD PTR v$[rbp] 006dc 89 04 0a mov DWORD PTR [rdx+rcx], eax ; 2232 : v[32] = (x3 - t0) >> 10; 006df 8b 85 c4 01 00 00 mov eax, DWORD PTR t0$5[rbp] 006e5 8b 8d 44 03 00 00 mov ecx, DWORD PTR x3$17[rbp] 006eb 2b c8 sub ecx, eax 006ed 8b c1 mov eax, ecx 006ef c1 f8 0a sar eax, 10 006f2 b9 04 00 00 00 mov ecx, 4 006f7 48 6b c9 20 imul rcx, rcx, 32 ; 00000020H 006fb 48 8b 95 48 01 00 00 mov rdx, QWORD PTR v$[rbp] 00702 89 04 0a mov DWORD PTR [rdx+rcx], eax $LN9@stbi__idct: ; 2233 : } ; 2234 : } 00705 e9 6b f9 ff ff jmp $LN2@stbi__idct $LN3@stbi__idct: ; 2235 : ; 2236 : for (i = 0, v = val, o = out; i < 8; ++i, v += 8, o += out_stride) { 0070a c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00711 48 8d 45 30 lea rax, QWORD PTR val$[rbp] 00715 48 89 85 48 01 00 00 mov QWORD PTR v$[rbp], rax 0071c 48 8b 85 60 07 00 00 mov rax, QWORD PTR out$[rbp] 00723 48 89 85 68 01 00 00 mov QWORD PTR o$[rbp], rax 0072a eb 35 jmp SHORT $LN7@stbi__idct $LN5@stbi__idct: 0072c 8b 45 04 mov eax, DWORD PTR i$[rbp] 0072f ff c0 inc eax 00731 89 45 04 mov DWORD PTR i$[rbp], eax 00734 48 8b 85 48 01 00 00 mov rax, QWORD PTR v$[rbp] 0073b 48 83 c0 20 add rax, 32 ; 00000020H 0073f 48 89 85 48 01 00 00 mov QWORD PTR v$[rbp], rax 00746 48 63 85 68 07 00 00 movsxd rax, DWORD PTR out_stride$[rbp] 0074d 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR o$[rbp] 00754 48 03 c8 add rcx, rax 00757 48 8b c1 mov rax, rcx 0075a 48 89 85 68 01 00 00 mov QWORD PTR o$[rbp], rax $LN7@stbi__idct: 00761 83 7d 04 08 cmp DWORD PTR i$[rbp], 8 00765 0f 8d e1 04 00 00 jge $LN6@stbi__idct ; 2237 : // no fast case since the first 1D IDCT spread components out ; 2238 : STBI__IDCT_1D(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7]) 0076b b8 04 00 00 00 mov eax, 4 00770 48 6b c0 02 imul rax, rax, 2 00774 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 0077b 8b 04 01 mov eax, DWORD PTR [rcx+rax] 0077e 89 85 04 04 00 00 mov DWORD PTR p2$23[rbp], eax 00784 b8 04 00 00 00 mov eax, 4 00789 48 6b c0 06 imul rax, rax, 6 0078d 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 00794 8b 04 01 mov eax, DWORD PTR [rcx+rax] 00797 89 85 24 04 00 00 mov DWORD PTR p3$24[rbp], eax 0079d 8b 85 24 04 00 00 mov eax, DWORD PTR p3$24[rbp] 007a3 8b 8d 04 04 00 00 mov ecx, DWORD PTR p2$23[rbp] 007a9 03 c8 add ecx, eax 007ab 8b c1 mov eax, ecx 007ad 69 c0 a9 08 00 00 imul eax, eax, 2217 ; 000008a9H 007b3 89 85 e4 03 00 00 mov DWORD PTR p1$22[rbp], eax 007b9 69 85 24 04 00 00 71 e2 ff ff imul eax, DWORD PTR p3$24[rbp], -7567 ; ffffffffffffe271H 007c3 8b 8d e4 03 00 00 mov ecx, DWORD PTR p1$22[rbp] 007c9 03 c8 add ecx, eax 007cb 8b c1 mov eax, ecx 007cd 89 85 a4 03 00 00 mov DWORD PTR t2$20[rbp], eax 007d3 69 85 04 04 00 00 3f 0c 00 00 imul eax, DWORD PTR p2$23[rbp], 3135 ; 00000c3fH 007dd 8b 8d e4 03 00 00 mov ecx, DWORD PTR p1$22[rbp] 007e3 03 c8 add ecx, eax 007e5 8b c1 mov eax, ecx 007e7 89 85 c4 03 00 00 mov DWORD PTR t3$21[rbp], eax 007ed b8 04 00 00 00 mov eax, 4 007f2 48 6b c0 00 imul rax, rax, 0 007f6 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 007fd 8b 04 01 mov eax, DWORD PTR [rcx+rax] 00800 89 85 04 04 00 00 mov DWORD PTR p2$23[rbp], eax 00806 b8 04 00 00 00 mov eax, 4 0080b 48 6b c0 04 imul rax, rax, 4 0080f 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 00816 8b 04 01 mov eax, DWORD PTR [rcx+rax] 00819 89 85 24 04 00 00 mov DWORD PTR p3$24[rbp], eax 0081f 8b 85 24 04 00 00 mov eax, DWORD PTR p3$24[rbp] 00825 8b 8d 04 04 00 00 mov ecx, DWORD PTR p2$23[rbp] 0082b 03 c8 add ecx, eax 0082d 8b c1 mov eax, ecx 0082f 69 c0 00 10 00 00 imul eax, eax, 4096 ; 00001000H 00835 89 85 64 03 00 00 mov DWORD PTR t0$18[rbp], eax 0083b 8b 85 24 04 00 00 mov eax, DWORD PTR p3$24[rbp] 00841 8b 8d 04 04 00 00 mov ecx, DWORD PTR p2$23[rbp] 00847 2b c8 sub ecx, eax 00849 8b c1 mov eax, ecx 0084b 69 c0 00 10 00 00 imul eax, eax, 4096 ; 00001000H 00851 89 85 84 03 00 00 mov DWORD PTR t1$19[rbp], eax 00857 8b 85 c4 03 00 00 mov eax, DWORD PTR t3$21[rbp] 0085d 8b 8d 64 03 00 00 mov ecx, DWORD PTR t0$18[rbp] 00863 03 c8 add ecx, eax 00865 8b c1 mov eax, ecx 00867 89 85 84 04 00 00 mov DWORD PTR x0$27[rbp], eax 0086d 8b 85 c4 03 00 00 mov eax, DWORD PTR t3$21[rbp] 00873 8b 8d 64 03 00 00 mov ecx, DWORD PTR t0$18[rbp] 00879 2b c8 sub ecx, eax 0087b 8b c1 mov eax, ecx 0087d 89 85 e4 04 00 00 mov DWORD PTR x3$30[rbp], eax 00883 8b 85 a4 03 00 00 mov eax, DWORD PTR t2$20[rbp] 00889 8b 8d 84 03 00 00 mov ecx, DWORD PTR t1$19[rbp] 0088f 03 c8 add ecx, eax 00891 8b c1 mov eax, ecx 00893 89 85 a4 04 00 00 mov DWORD PTR x1$28[rbp], eax 00899 8b 85 a4 03 00 00 mov eax, DWORD PTR t2$20[rbp] 0089f 8b 8d 84 03 00 00 mov ecx, DWORD PTR t1$19[rbp] 008a5 2b c8 sub ecx, eax 008a7 8b c1 mov eax, ecx 008a9 89 85 c4 04 00 00 mov DWORD PTR x2$29[rbp], eax 008af b8 04 00 00 00 mov eax, 4 008b4 48 6b c0 07 imul rax, rax, 7 008b8 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 008bf 8b 04 01 mov eax, DWORD PTR [rcx+rax] 008c2 89 85 64 03 00 00 mov DWORD PTR t0$18[rbp], eax 008c8 b8 04 00 00 00 mov eax, 4 008cd 48 6b c0 05 imul rax, rax, 5 008d1 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 008d8 8b 04 01 mov eax, DWORD PTR [rcx+rax] 008db 89 85 84 03 00 00 mov DWORD PTR t1$19[rbp], eax 008e1 b8 04 00 00 00 mov eax, 4 008e6 48 6b c0 03 imul rax, rax, 3 008ea 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 008f1 8b 04 01 mov eax, DWORD PTR [rcx+rax] 008f4 89 85 a4 03 00 00 mov DWORD PTR t2$20[rbp], eax 008fa b8 04 00 00 00 mov eax, 4 008ff 48 6b c0 01 imul rax, rax, 1 00903 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR v$[rbp] 0090a 8b 04 01 mov eax, DWORD PTR [rcx+rax] 0090d 89 85 c4 03 00 00 mov DWORD PTR t3$21[rbp], eax 00913 8b 85 a4 03 00 00 mov eax, DWORD PTR t2$20[rbp] 00919 8b 8d 64 03 00 00 mov ecx, DWORD PTR t0$18[rbp] 0091f 03 c8 add ecx, eax 00921 8b c1 mov eax, ecx 00923 89 85 24 04 00 00 mov DWORD PTR p3$24[rbp], eax 00929 8b 85 c4 03 00 00 mov eax, DWORD PTR t3$21[rbp] 0092f 8b 8d 84 03 00 00 mov ecx, DWORD PTR t1$19[rbp] 00935 03 c8 add ecx, eax 00937 8b c1 mov eax, ecx 00939 89 85 44 04 00 00 mov DWORD PTR p4$25[rbp], eax 0093f 8b 85 c4 03 00 00 mov eax, DWORD PTR t3$21[rbp] 00945 8b 8d 64 03 00 00 mov ecx, DWORD PTR t0$18[rbp] 0094b 03 c8 add ecx, eax 0094d 8b c1 mov eax, ecx 0094f 89 85 e4 03 00 00 mov DWORD PTR p1$22[rbp], eax 00955 8b 85 a4 03 00 00 mov eax, DWORD PTR t2$20[rbp] 0095b 8b 8d 84 03 00 00 mov ecx, DWORD PTR t1$19[rbp] 00961 03 c8 add ecx, eax 00963 8b c1 mov eax, ecx 00965 89 85 04 04 00 00 mov DWORD PTR p2$23[rbp], eax 0096b 8b 85 44 04 00 00 mov eax, DWORD PTR p4$25[rbp] 00971 8b 8d 24 04 00 00 mov ecx, DWORD PTR p3$24[rbp] 00977 03 c8 add ecx, eax 00979 8b c1 mov eax, ecx 0097b 69 c0 d0 12 00 00 imul eax, eax, 4816 ; 000012d0H 00981 89 85 64 04 00 00 mov DWORD PTR p5$26[rbp], eax 00987 69 85 64 03 00 00 c7 04 00 00 imul eax, DWORD PTR t0$18[rbp], 1223 ; 000004c7H 00991 89 85 64 03 00 00 mov DWORD PTR t0$18[rbp], eax 00997 69 85 84 03 00 00 da 20 00 00 imul eax, DWORD PTR t1$19[rbp], 8410 ; 000020daH 009a1 89 85 84 03 00 00 mov DWORD PTR t1$19[rbp], eax 009a7 69 85 a4 03 00 00 2a 31 00 00 imul eax, DWORD PTR t2$20[rbp], 12586 ; 0000312aH 009b1 89 85 a4 03 00 00 mov DWORD PTR t2$20[rbp], eax 009b7 69 85 c4 03 00 00 05 18 00 00 imul eax, DWORD PTR t3$21[rbp], 6149 ; 00001805H 009c1 89 85 c4 03 00 00 mov DWORD PTR t3$21[rbp], eax 009c7 69 85 e4 03 00 00 9b f1 ff ff imul eax, DWORD PTR p1$22[rbp], -3685 ; fffffffffffff19bH 009d1 8b 8d 64 04 00 00 mov ecx, DWORD PTR p5$26[rbp] 009d7 03 c8 add ecx, eax 009d9 8b c1 mov eax, ecx 009db 89 85 e4 03 00 00 mov DWORD PTR p1$22[rbp], eax 009e1 69 85 04 04 00 00 ff d6 ff ff imul eax, DWORD PTR p2$23[rbp], -10497 ; ffffffffffffd6ffH 009eb 8b 8d 64 04 00 00 mov ecx, DWORD PTR p5$26[rbp] 009f1 03 c8 add ecx, eax 009f3 8b c1 mov eax, ecx 009f5 89 85 04 04 00 00 mov DWORD PTR p2$23[rbp], eax 009fb 69 85 24 04 00 00 9e e0 ff ff imul eax, DWORD PTR p3$24[rbp], -8034 ; ffffffffffffe09eH 00a05 89 85 24 04 00 00 mov DWORD PTR p3$24[rbp], eax 00a0b 69 85 44 04 00 00 c3 f9 ff ff imul eax, DWORD PTR p4$25[rbp], -1597 ; fffffffffffff9c3H 00a15 89 85 44 04 00 00 mov DWORD PTR p4$25[rbp], eax 00a1b 8b 85 44 04 00 00 mov eax, DWORD PTR p4$25[rbp] 00a21 8b 8d e4 03 00 00 mov ecx, DWORD PTR p1$22[rbp] 00a27 03 c8 add ecx, eax 00a29 8b c1 mov eax, ecx 00a2b 8b 8d c4 03 00 00 mov ecx, DWORD PTR t3$21[rbp] 00a31 03 c8 add ecx, eax 00a33 8b c1 mov eax, ecx 00a35 89 85 c4 03 00 00 mov DWORD PTR t3$21[rbp], eax 00a3b 8b 85 24 04 00 00 mov eax, DWORD PTR p3$24[rbp] 00a41 8b 8d 04 04 00 00 mov ecx, DWORD PTR p2$23[rbp] 00a47 03 c8 add ecx, eax 00a49 8b c1 mov eax, ecx 00a4b 8b 8d a4 03 00 00 mov ecx, DWORD PTR t2$20[rbp] 00a51 03 c8 add ecx, eax 00a53 8b c1 mov eax, ecx 00a55 89 85 a4 03 00 00 mov DWORD PTR t2$20[rbp], eax 00a5b 8b 85 44 04 00 00 mov eax, DWORD PTR p4$25[rbp] 00a61 8b 8d 04 04 00 00 mov ecx, DWORD PTR p2$23[rbp] 00a67 03 c8 add ecx, eax 00a69 8b c1 mov eax, ecx 00a6b 8b 8d 84 03 00 00 mov ecx, DWORD PTR t1$19[rbp] 00a71 03 c8 add ecx, eax 00a73 8b c1 mov eax, ecx 00a75 89 85 84 03 00 00 mov DWORD PTR t1$19[rbp], eax 00a7b 8b 85 24 04 00 00 mov eax, DWORD PTR p3$24[rbp] 00a81 8b 8d e4 03 00 00 mov ecx, DWORD PTR p1$22[rbp] 00a87 03 c8 add ecx, eax 00a89 8b c1 mov eax, ecx 00a8b 8b 8d 64 03 00 00 mov ecx, DWORD PTR t0$18[rbp] 00a91 03 c8 add ecx, eax 00a93 8b c1 mov eax, ecx 00a95 89 85 64 03 00 00 mov DWORD PTR t0$18[rbp], eax ; 2239 : // constants scaled things up by 1<<12, plus we had 1<<2 from first ; 2240 : // loop, plus horizontal and vertical each scale by sqrt(8) so together ; 2241 : // we've got an extra 1<<3, so 1<<17 total we need to remove. ; 2242 : // so we want to round that, which means adding 0.5 * 1<<17, ; 2243 : // aka 65536. Also, we'll end up with -128 to 127 that we want ; 2244 : // to encode as 0..255 by adding 128, so we'll add that before the shift ; 2245 : x0 += 65536 + (128 << 17); 00a9b 8b 85 84 04 00 00 mov eax, DWORD PTR x0$27[rbp] 00aa1 05 00 00 01 01 add eax, 16842752 ; 01010000H 00aa6 89 85 84 04 00 00 mov DWORD PTR x0$27[rbp], eax ; 2246 : x1 += 65536 + (128 << 17); 00aac 8b 85 a4 04 00 00 mov eax, DWORD PTR x1$28[rbp] 00ab2 05 00 00 01 01 add eax, 16842752 ; 01010000H 00ab7 89 85 a4 04 00 00 mov DWORD PTR x1$28[rbp], eax ; 2247 : x2 += 65536 + (128 << 17); 00abd 8b 85 c4 04 00 00 mov eax, DWORD PTR x2$29[rbp] 00ac3 05 00 00 01 01 add eax, 16842752 ; 01010000H 00ac8 89 85 c4 04 00 00 mov DWORD PTR x2$29[rbp], eax ; 2248 : x3 += 65536 + (128 << 17); 00ace 8b 85 e4 04 00 00 mov eax, DWORD PTR x3$30[rbp] 00ad4 05 00 00 01 01 add eax, 16842752 ; 01010000H 00ad9 89 85 e4 04 00 00 mov DWORD PTR x3$30[rbp], eax ; 2249 : // tried computing the shifts into temps, or'ing the temps to see ; 2250 : // if any were out of range, but that was slower ; 2251 : o[0] = stbi__clamp((x0 + t3) >> 17); 00adf 8b 85 c4 03 00 00 mov eax, DWORD PTR t3$21[rbp] 00ae5 8b 8d 84 04 00 00 mov ecx, DWORD PTR x0$27[rbp] 00aeb 03 c8 add ecx, eax 00aed 8b c1 mov eax, ecx 00aef c1 f8 11 sar eax, 17 00af2 8b c8 mov ecx, eax 00af4 e8 00 00 00 00 call stbi__clamp 00af9 b9 01 00 00 00 mov ecx, 1 00afe 48 6b c9 00 imul rcx, rcx, 0 00b02 48 8b 95 68 01 00 00 mov rdx, QWORD PTR o$[rbp] 00b09 88 04 0a mov BYTE PTR [rdx+rcx], al ; 2252 : o[7] = stbi__clamp((x0 - t3) >> 17); 00b0c 8b 85 c4 03 00 00 mov eax, DWORD PTR t3$21[rbp] 00b12 8b 8d 84 04 00 00 mov ecx, DWORD PTR x0$27[rbp] 00b18 2b c8 sub ecx, eax 00b1a 8b c1 mov eax, ecx 00b1c c1 f8 11 sar eax, 17 00b1f 8b c8 mov ecx, eax 00b21 e8 00 00 00 00 call stbi__clamp 00b26 b9 01 00 00 00 mov ecx, 1 00b2b 48 6b c9 07 imul rcx, rcx, 7 00b2f 48 8b 95 68 01 00 00 mov rdx, QWORD PTR o$[rbp] 00b36 88 04 0a mov BYTE PTR [rdx+rcx], al ; 2253 : o[1] = stbi__clamp((x1 + t2) >> 17); 00b39 8b 85 a4 03 00 00 mov eax, DWORD PTR t2$20[rbp] 00b3f 8b 8d a4 04 00 00 mov ecx, DWORD PTR x1$28[rbp] 00b45 03 c8 add ecx, eax 00b47 8b c1 mov eax, ecx 00b49 c1 f8 11 sar eax, 17 00b4c 8b c8 mov ecx, eax 00b4e e8 00 00 00 00 call stbi__clamp 00b53 b9 01 00 00 00 mov ecx, 1 00b58 48 6b c9 01 imul rcx, rcx, 1 00b5c 48 8b 95 68 01 00 00 mov rdx, QWORD PTR o$[rbp] 00b63 88 04 0a mov BYTE PTR [rdx+rcx], al ; 2254 : o[6] = stbi__clamp((x1 - t2) >> 17); 00b66 8b 85 a4 03 00 00 mov eax, DWORD PTR t2$20[rbp] 00b6c 8b 8d a4 04 00 00 mov ecx, DWORD PTR x1$28[rbp] 00b72 2b c8 sub ecx, eax 00b74 8b c1 mov eax, ecx 00b76 c1 f8 11 sar eax, 17 00b79 8b c8 mov ecx, eax 00b7b e8 00 00 00 00 call stbi__clamp 00b80 b9 01 00 00 00 mov ecx, 1 00b85 48 6b c9 06 imul rcx, rcx, 6 00b89 48 8b 95 68 01 00 00 mov rdx, QWORD PTR o$[rbp] 00b90 88 04 0a mov BYTE PTR [rdx+rcx], al ; 2255 : o[2] = stbi__clamp((x2 + t1) >> 17); 00b93 8b 85 84 03 00 00 mov eax, DWORD PTR t1$19[rbp] 00b99 8b 8d c4 04 00 00 mov ecx, DWORD PTR x2$29[rbp] 00b9f 03 c8 add ecx, eax 00ba1 8b c1 mov eax, ecx 00ba3 c1 f8 11 sar eax, 17 00ba6 8b c8 mov ecx, eax 00ba8 e8 00 00 00 00 call stbi__clamp 00bad b9 01 00 00 00 mov ecx, 1 00bb2 48 6b c9 02 imul rcx, rcx, 2 00bb6 48 8b 95 68 01 00 00 mov rdx, QWORD PTR o$[rbp] 00bbd 88 04 0a mov BYTE PTR [rdx+rcx], al ; 2256 : o[5] = stbi__clamp((x2 - t1) >> 17); 00bc0 8b 85 84 03 00 00 mov eax, DWORD PTR t1$19[rbp] 00bc6 8b 8d c4 04 00 00 mov ecx, DWORD PTR x2$29[rbp] 00bcc 2b c8 sub ecx, eax 00bce 8b c1 mov eax, ecx 00bd0 c1 f8 11 sar eax, 17 00bd3 8b c8 mov ecx, eax 00bd5 e8 00 00 00 00 call stbi__clamp 00bda b9 01 00 00 00 mov ecx, 1 00bdf 48 6b c9 05 imul rcx, rcx, 5 00be3 48 8b 95 68 01 00 00 mov rdx, QWORD PTR o$[rbp] 00bea 88 04 0a mov BYTE PTR [rdx+rcx], al ; 2257 : o[3] = stbi__clamp((x3 + t0) >> 17); 00bed 8b 85 64 03 00 00 mov eax, DWORD PTR t0$18[rbp] 00bf3 8b 8d e4 04 00 00 mov ecx, DWORD PTR x3$30[rbp] 00bf9 03 c8 add ecx, eax 00bfb 8b c1 mov eax, ecx 00bfd c1 f8 11 sar eax, 17 00c00 8b c8 mov ecx, eax 00c02 e8 00 00 00 00 call stbi__clamp 00c07 b9 01 00 00 00 mov ecx, 1 00c0c 48 6b c9 03 imul rcx, rcx, 3 00c10 48 8b 95 68 01 00 00 mov rdx, QWORD PTR o$[rbp] 00c17 88 04 0a mov BYTE PTR [rdx+rcx], al ; 2258 : o[4] = stbi__clamp((x3 - t0) >> 17); 00c1a 8b 85 64 03 00 00 mov eax, DWORD PTR t0$18[rbp] 00c20 8b 8d e4 04 00 00 mov ecx, DWORD PTR x3$30[rbp] 00c26 2b c8 sub ecx, eax 00c28 8b c1 mov eax, ecx 00c2a c1 f8 11 sar eax, 17 00c2d 8b c8 mov ecx, eax 00c2f e8 00 00 00 00 call stbi__clamp 00c34 b9 01 00 00 00 mov ecx, 1 00c39 48 6b c9 04 imul rcx, rcx, 4 00c3d 48 8b 95 68 01 00 00 mov rdx, QWORD PTR o$[rbp] 00c44 88 04 0a mov BYTE PTR [rdx+rcx], al ; 2259 : } 00c47 e9 e0 fa ff ff jmp $LN5@stbi__idct $LN6@stbi__idct: ; 2260 : } 00c4c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00c50 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__idct_block$rtcFrameData 00c57 e8 00 00 00 00 call _RTC_CheckStackVars 00c5c 48 8b 8d 38 07 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00c63 48 33 cd xor rcx, rbp 00c66 e8 00 00 00 00 call __security_check_cookie 00c6b 48 8d a5 48 07 00 00 lea rsp, QWORD PTR [rbp+1864] 00c72 5f pop rdi 00c73 5d pop rbp 00c74 c3 ret 0 stbi__idct_block ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__clamp _TEXT SEGMENT x$ = 224 stbi__clamp PROC ; COMDAT ; 2148 : { 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 2149 : // trick to use a single test to catch both cases ; 2150 : if ((unsigned int)x > 255) { 0001f 81 bd e0 00 00 00 ff 00 00 00 cmp DWORD PTR x$[rbp], 255 ; 000000ffH 00029 76 1d jbe SHORT $LN2@stbi__clam ; 2151 : if (x < 0) 0002b 83 bd e0 00 00 00 00 cmp DWORD PTR x$[rbp], 0 00032 7d 04 jge SHORT $LN3@stbi__clam ; 2152 : return 0; 00034 32 c0 xor al, al 00036 eb 17 jmp SHORT $LN1@stbi__clam $LN3@stbi__clam: ; 2153 : if (x > 255) 00038 81 bd e0 00 00 00 ff 00 00 00 cmp DWORD PTR x$[rbp], 255 ; 000000ffH 00042 7e 04 jle SHORT $LN4@stbi__clam ; 2154 : return 255; 00044 b0 ff mov al, 255 ; 000000ffH 00046 eb 07 jmp SHORT $LN1@stbi__clam $LN4@stbi__clam: $LN2@stbi__clam: ; 2155 : } ; 2156 : return (stbi_uc)x; 00048 0f b6 85 e0 00 00 00 movzx eax, BYTE PTR x$[rbp] $LN1@stbi__clam: ; 2157 : } 0004f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00056 5f pop rdi 00057 5d pop rbp 00058 c3 ret 0 stbi__clamp ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_decode_block_prog_ac _TEXT SEGMENT k$ = 4 shift$1 = 36 zig$2 = 68 c$3 = 100 r$4 = 132 s$5 = 164 rs$6 = 196 bit$7 = 228 p$8 = 264 r$9 = 292 s$10 = 324 rs$11 = 356 p$12 = 392 tv371 = 596 tv393 = 596 tv420 = 596 tv354 = 600 j$ = 640 data$ = 648 hac$ = 656 fac$ = 664 stbi__jpeg_decode_block_prog_ac PROC ; COMDAT ; 2015 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 88 02 00 00 sub rsp, 648 ; 00000288H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 2016 : int k; ; 2017 : if (j->spec_start == 0) 0002f 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 00036 83 b8 34 48 00 00 00 cmp DWORD PTR [rax+18484], 0 0003d 75 11 jne SHORT $LN13@stbi__jpeg ; 2018 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); 0003f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ 00046 e8 00 00 00 00 call stbi__err 0004b e9 75 06 00 00 jmp $LN1@stbi__jpeg $LN13@stbi__jpeg: ; 2019 : ; 2020 : if (j->succ_high == 0) { 00050 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 00057 83 b8 3c 48 00 00 00 cmp DWORD PTR [rax+18492], 0 0005e 0f 85 f4 02 00 00 jne $LN14@stbi__jpeg ; 2021 : int shift = j->succ_low; 00064 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 0006b 8b 80 40 48 00 00 mov eax, DWORD PTR [rax+18496] 00071 89 45 24 mov DWORD PTR shift$1[rbp], eax ; 2022 : ; 2023 : if (j->eob_run) { 00074 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 0007b 83 b8 44 48 00 00 00 cmp DWORD PTR [rax+18500], 0 00082 74 26 je SHORT $LN16@stbi__jpeg ; 2024 : --j->eob_run; 00084 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 0008b 8b 80 44 48 00 00 mov eax, DWORD PTR [rax+18500] 00091 ff c8 dec eax 00093 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 0009a 89 81 44 48 00 00 mov DWORD PTR [rcx+18500], eax ; 2025 : return 1; 000a0 b8 01 00 00 00 mov eax, 1 000a5 e9 1b 06 00 00 jmp $LN1@stbi__jpeg $LN16@stbi__jpeg: ; 2026 : } ; 2027 : ; 2028 : k = j->spec_start; 000aa 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 000b1 8b 80 34 48 00 00 mov eax, DWORD PTR [rax+18484] 000b7 89 45 04 mov DWORD PTR k$[rbp], eax $LN4@stbi__jpeg: ; 2029 : do { ; 2030 : unsigned int zig; ; 2031 : int c, r, s; ; 2032 : if (j->code_bits < 16) 000ba 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 000c1 83 b8 24 48 00 00 10 cmp DWORD PTR [rax+18468], 16 000c8 7d 0d jge SHORT $LN17@stbi__jpeg ; 2033 : stbi__grow_buffer_unsafe(j); 000ca 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 000d1 e8 00 00 00 00 call stbi__grow_buffer_unsafe 000d6 90 npad 1 $LN17@stbi__jpeg: ; 2034 : c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); 000d7 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 000de 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 000e4 c1 e8 17 shr eax, 23 000e7 25 ff 01 00 00 and eax, 511 ; 000001ffH 000ec 89 45 64 mov DWORD PTR c$3[rbp], eax ; 2035 : r = fac[c]; 000ef 48 63 45 64 movsxd rax, DWORD PTR c$3[rbp] 000f3 48 8b 8d 98 02 00 00 mov rcx, QWORD PTR fac$[rbp] 000fa 0f bf 04 41 movsx eax, WORD PTR [rcx+rax*2] 000fe 89 85 84 00 00 00 mov DWORD PTR r$4[rbp], eax ; 2036 : if (r) { // fast-AC path 00104 83 bd 84 00 00 00 00 cmp DWORD PTR r$4[rbp], 0 0010b 0f 84 e5 00 00 00 je $LN18@stbi__jpeg ; 2037 : k += (r >> 4) & 15; // run 00111 8b 85 84 00 00 00 mov eax, DWORD PTR r$4[rbp] 00117 c1 f8 04 sar eax, 4 0011a 83 e0 0f and eax, 15 0011d 8b 4d 04 mov ecx, DWORD PTR k$[rbp] 00120 03 c8 add ecx, eax 00122 8b c1 mov eax, ecx 00124 89 45 04 mov DWORD PTR k$[rbp], eax ; 2038 : s = r & 15; // combined length 00127 8b 85 84 00 00 00 mov eax, DWORD PTR r$4[rbp] 0012d 83 e0 0f and eax, 15 00130 89 85 a4 00 00 00 mov DWORD PTR s$5[rbp], eax ; 2039 : if (s > j->code_bits) 00136 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 0013d 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 00143 39 85 a4 00 00 00 cmp DWORD PTR s$5[rbp], eax 00149 7e 11 jle SHORT $LN20@stbi__jpeg ; 2040 : return stbi__err( 0014b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 00152 e8 00 00 00 00 call stbi__err 00157 e9 69 05 00 00 jmp $LN1@stbi__jpeg $LN20@stbi__jpeg: ; 2041 : "bad huffman code", ; 2042 : "Combined length longer than code bits available"); ; 2043 : j->code_buffer <<= s; 0015c 8b 85 a4 00 00 00 mov eax, DWORD PTR s$5[rbp] 00162 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00169 48 89 8d 58 02 00 00 mov QWORD PTR tv354[rbp], rcx 00170 0f b6 c8 movzx ecx, al 00173 48 8b 85 58 02 00 00 mov rax, QWORD PTR tv354[rbp] 0017a 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 00180 d3 e0 shl eax, cl 00182 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00189 89 81 20 48 00 00 mov DWORD PTR [rcx+18464], eax ; 2044 : j->code_bits -= s; 0018f 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 00196 8b 8d a4 00 00 00 mov ecx, DWORD PTR s$5[rbp] 0019c 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 001a2 2b c1 sub eax, ecx 001a4 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 001ab 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 2045 : zig = stbi__jpeg_dezigzag[k++]; 001b1 48 63 45 04 movsxd rax, DWORD PTR k$[rbp] 001b5 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag 001bc 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 001c0 89 45 44 mov DWORD PTR zig$2[rbp], eax 001c3 8b 45 04 mov eax, DWORD PTR k$[rbp] 001c6 ff c0 inc eax 001c8 89 45 04 mov DWORD PTR k$[rbp], eax ; 2046 : data[zig] = (short)((r >> 8) * (1 << shift)); 001cb 8b 85 84 00 00 00 mov eax, DWORD PTR r$4[rbp] 001d1 c1 f8 08 sar eax, 8 001d4 8b 4d 24 mov ecx, DWORD PTR shift$1[rbp] 001d7 ba 01 00 00 00 mov edx, 1 001dc d3 e2 shl edx, cl 001de 8b ca mov ecx, edx 001e0 0f af c1 imul eax, ecx 001e3 8b 4d 44 mov ecx, DWORD PTR zig$2[rbp] 001e6 48 8b 95 88 02 00 00 mov rdx, QWORD PTR data$[rbp] 001ed 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax ; 2047 : } else { 001f1 e9 47 01 00 00 jmp $LN19@stbi__jpeg $LN18@stbi__jpeg: ; 2048 : int rs = stbi__jpeg_huff_decode(j, hac); 001f6 48 8b 95 90 02 00 00 mov rdx, QWORD PTR hac$[rbp] 001fd 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00204 e8 00 00 00 00 call stbi__jpeg_huff_decode 00209 89 85 c4 00 00 00 mov DWORD PTR rs$6[rbp], eax ; 2049 : if (rs < 0) 0020f 83 bd c4 00 00 00 00 cmp DWORD PTR rs$6[rbp], 0 00216 7d 11 jge SHORT $LN21@stbi__jpeg ; 2050 : return stbi__err("bad huffman code", "Corrupt JPEG"); 00218 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 0021f e8 00 00 00 00 call stbi__err 00224 e9 9c 04 00 00 jmp $LN1@stbi__jpeg $LN21@stbi__jpeg: ; 2051 : s = rs & 15; 00229 8b 85 c4 00 00 00 mov eax, DWORD PTR rs$6[rbp] 0022f 83 e0 0f and eax, 15 00232 89 85 a4 00 00 00 mov DWORD PTR s$5[rbp], eax ; 2052 : r = rs >> 4; 00238 8b 85 c4 00 00 00 mov eax, DWORD PTR rs$6[rbp] 0023e c1 f8 04 sar eax, 4 00241 89 85 84 00 00 00 mov DWORD PTR r$4[rbp], eax ; 2053 : if (s == 0) { 00247 83 bd a4 00 00 00 00 cmp DWORD PTR s$5[rbp], 0 0024e 0f 85 90 00 00 00 jne $LN22@stbi__jpeg ; 2054 : if (r < 15) { 00254 83 bd 84 00 00 00 0f cmp DWORD PTR r$4[rbp], 15 0025b 7d 7c jge SHORT $LN24@stbi__jpeg ; 2055 : j->eob_run = (1 << r); 0025d 8b 85 84 00 00 00 mov eax, DWORD PTR r$4[rbp] 00263 b9 01 00 00 00 mov ecx, 1 00268 89 8d 54 02 00 00 mov DWORD PTR tv371[rbp], ecx 0026e 0f b6 c8 movzx ecx, al 00271 8b 85 54 02 00 00 mov eax, DWORD PTR tv371[rbp] 00277 d3 e0 shl eax, cl 00279 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00280 89 81 44 48 00 00 mov DWORD PTR [rcx+18500], eax ; 2056 : if (r) 00286 83 bd 84 00 00 00 00 cmp DWORD PTR r$4[rbp], 0 0028d 74 2c je SHORT $LN25@stbi__jpeg ; 2057 : j->eob_run += stbi__jpeg_get_bits(j, r); 0028f 8b 95 84 00 00 00 mov edx, DWORD PTR r$4[rbp] 00295 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 0029c e8 00 00 00 00 call stbi__jpeg_get_bits 002a1 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 002a8 03 81 44 48 00 00 add eax, DWORD PTR [rcx+18500] 002ae 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 002b5 89 81 44 48 00 00 mov DWORD PTR [rcx+18500], eax $LN25@stbi__jpeg: ; 2058 : --j->eob_run; 002bb 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 002c2 8b 80 44 48 00 00 mov eax, DWORD PTR [rax+18500] 002c8 ff c8 dec eax 002ca 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 002d1 89 81 44 48 00 00 mov DWORD PTR [rcx+18500], eax ; 2059 : break; 002d7 eb 7a jmp SHORT $LN3@stbi__jpeg $LN24@stbi__jpeg: ; 2060 : } ; 2061 : k += 16; 002d9 8b 45 04 mov eax, DWORD PTR k$[rbp] 002dc 83 c0 10 add eax, 16 002df 89 45 04 mov DWORD PTR k$[rbp], eax ; 2062 : } else { 002e2 eb 59 jmp SHORT $LN23@stbi__jpeg $LN22@stbi__jpeg: ; 2063 : k += r; 002e4 8b 85 84 00 00 00 mov eax, DWORD PTR r$4[rbp] 002ea 8b 4d 04 mov ecx, DWORD PTR k$[rbp] 002ed 03 c8 add ecx, eax 002ef 8b c1 mov eax, ecx 002f1 89 45 04 mov DWORD PTR k$[rbp], eax ; 2064 : zig = stbi__jpeg_dezigzag[k++]; 002f4 48 63 45 04 movsxd rax, DWORD PTR k$[rbp] 002f8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag 002ff 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00303 89 45 44 mov DWORD PTR zig$2[rbp], eax 00306 8b 45 04 mov eax, DWORD PTR k$[rbp] 00309 ff c0 inc eax 0030b 89 45 04 mov DWORD PTR k$[rbp], eax ; 2065 : data[zig] = 0030e 8b 95 a4 00 00 00 mov edx, DWORD PTR s$5[rbp] 00314 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 0031b e8 00 00 00 00 call stbi__extend_receive 00320 8b 4d 24 mov ecx, DWORD PTR shift$1[rbp] 00323 ba 01 00 00 00 mov edx, 1 00328 d3 e2 shl edx, cl 0032a 8b ca mov ecx, edx 0032c 0f af c1 imul eax, ecx 0032f 8b 4d 44 mov ecx, DWORD PTR zig$2[rbp] 00332 48 8b 95 88 02 00 00 mov rdx, QWORD PTR data$[rbp] 00339 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax $LN23@stbi__jpeg: $LN19@stbi__jpeg: ; 2066 : (short)(stbi__extend_receive(j, s) * (1 << shift)); ; 2067 : } ; 2068 : } ; 2069 : } while (k <= j->spec_end); 0033d 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 00344 8b 80 38 48 00 00 mov eax, DWORD PTR [rax+18488] 0034a 39 45 04 cmp DWORD PTR k$[rbp], eax 0034d 0f 8e 67 fd ff ff jle $LN4@stbi__jpeg $LN3@stbi__jpeg: ; 2070 : } else { 00353 e9 68 03 00 00 jmp $LN15@stbi__jpeg $LN14@stbi__jpeg: ; 2071 : // refinement scan for these AC coefficients ; 2072 : ; 2073 : short bit = (short)(1 << j->succ_low); 00358 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 0035f 8b 80 40 48 00 00 mov eax, DWORD PTR [rax+18496] 00365 b9 01 00 00 00 mov ecx, 1 0036a 89 8d 54 02 00 00 mov DWORD PTR tv393[rbp], ecx 00370 0f b6 c8 movzx ecx, al 00373 8b 85 54 02 00 00 mov eax, DWORD PTR tv393[rbp] 00379 d3 e0 shl eax, cl 0037b 66 89 85 e4 00 00 00 mov WORD PTR bit$7[rbp], ax ; 2074 : ; 2075 : if (j->eob_run) { 00382 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 00389 83 b8 44 48 00 00 00 cmp DWORD PTR [rax+18500], 0 00390 0f 84 fa 00 00 00 je $LN26@stbi__jpeg ; 2076 : --j->eob_run; 00396 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 0039d 8b 80 44 48 00 00 mov eax, DWORD PTR [rax+18500] 003a3 ff c8 dec eax 003a5 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 003ac 89 81 44 48 00 00 mov DWORD PTR [rcx+18500], eax ; 2077 : for (k = j->spec_start; k <= j->spec_end; ++k) { 003b2 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 003b9 8b 80 34 48 00 00 mov eax, DWORD PTR [rax+18484] 003bf 89 45 04 mov DWORD PTR k$[rbp], eax 003c2 eb 08 jmp SHORT $LN7@stbi__jpeg $LN5@stbi__jpeg: 003c4 8b 45 04 mov eax, DWORD PTR k$[rbp] 003c7 ff c0 inc eax 003c9 89 45 04 mov DWORD PTR k$[rbp], eax $LN7@stbi__jpeg: 003cc 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 003d3 8b 80 38 48 00 00 mov eax, DWORD PTR [rax+18488] 003d9 39 45 04 cmp DWORD PTR k$[rbp], eax 003dc 0f 8f a9 00 00 00 jg $LN6@stbi__jpeg ; 2078 : short *p = &data[stbi__jpeg_dezigzag[k]]; 003e2 48 63 45 04 movsxd rax, DWORD PTR k$[rbp] 003e6 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag 003ed 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 003f1 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR data$[rbp] 003f8 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] 003fc 48 89 85 08 01 00 00 mov QWORD PTR p$8[rbp], rax ; 2079 : if (*p != 0) 00403 48 8b 85 08 01 00 00 mov rax, QWORD PTR p$8[rbp] 0040a 0f bf 00 movsx eax, WORD PTR [rax] 0040d 85 c0 test eax, eax 0040f 74 75 je SHORT $LN28@stbi__jpeg ; 2080 : if (stbi__jpeg_get_bit(j)) 00411 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00418 e8 00 00 00 00 call stbi__jpeg_get_bit 0041d 85 c0 test eax, eax 0041f 74 65 je SHORT $LN29@stbi__jpeg ; 2081 : if ((*p & bit) == 0) { 00421 48 8b 85 08 01 00 00 mov rax, QWORD PTR p$8[rbp] 00428 0f bf 00 movsx eax, WORD PTR [rax] 0042b 0f bf 8d e4 00 00 00 movsx ecx, WORD PTR bit$7[rbp] 00432 23 c1 and eax, ecx 00434 85 c0 test eax, eax 00436 75 4e jne SHORT $LN30@stbi__jpeg ; 2082 : if (*p > 0) 00438 48 8b 85 08 01 00 00 mov rax, QWORD PTR p$8[rbp] 0043f 0f bf 00 movsx eax, WORD PTR [rax] 00442 85 c0 test eax, eax 00444 7e 21 jle SHORT $LN31@stbi__jpeg ; 2083 : *p += bit; 00446 0f bf 85 e4 00 00 00 movsx eax, WORD PTR bit$7[rbp] 0044d 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR p$8[rbp] 00454 0f bf 09 movsx ecx, WORD PTR [rcx] 00457 03 c8 add ecx, eax 00459 8b c1 mov eax, ecx 0045b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR p$8[rbp] 00462 66 89 01 mov WORD PTR [rcx], ax 00465 eb 1f jmp SHORT $LN32@stbi__jpeg $LN31@stbi__jpeg: ; 2084 : else ; 2085 : *p -= bit; 00467 0f bf 85 e4 00 00 00 movsx eax, WORD PTR bit$7[rbp] 0046e 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR p$8[rbp] 00475 0f bf 09 movsx ecx, WORD PTR [rcx] 00478 2b c8 sub ecx, eax 0047a 8b c1 mov eax, ecx 0047c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR p$8[rbp] 00483 66 89 01 mov WORD PTR [rcx], ax $LN32@stbi__jpeg: $LN30@stbi__jpeg: $LN29@stbi__jpeg: $LN28@stbi__jpeg: ; 2086 : } ; 2087 : } 00486 e9 39 ff ff ff jmp $LN5@stbi__jpeg $LN6@stbi__jpeg: ; 2088 : } else { 0048b e9 30 02 00 00 jmp $LN27@stbi__jpeg $LN26@stbi__jpeg: ; 2089 : k = j->spec_start; 00490 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 00497 8b 80 34 48 00 00 mov eax, DWORD PTR [rax+18484] 0049d 89 45 04 mov DWORD PTR k$[rbp], eax $LN10@stbi__jpeg: ; 2090 : do { ; 2091 : int r, s; ; 2092 : int rs = stbi__jpeg_huff_decode( 004a0 48 8b 95 90 02 00 00 mov rdx, QWORD PTR hac$[rbp] 004a7 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 004ae e8 00 00 00 00 call stbi__jpeg_huff_decode 004b3 89 85 64 01 00 00 mov DWORD PTR rs$11[rbp], eax ; 2093 : j, ; 2094 : hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh ; 2095 : if (rs < 0) 004b9 83 bd 64 01 00 00 00 cmp DWORD PTR rs$11[rbp], 0 004c0 7d 11 jge SHORT $LN33@stbi__jpeg ; 2096 : return stbi__err("bad huffman code", "Corrupt JPEG"); 004c2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 004c9 e8 00 00 00 00 call stbi__err 004ce e9 f2 01 00 00 jmp $LN1@stbi__jpeg $LN33@stbi__jpeg: ; 2097 : s = rs & 15; 004d3 8b 85 64 01 00 00 mov eax, DWORD PTR rs$11[rbp] 004d9 83 e0 0f and eax, 15 004dc 89 85 44 01 00 00 mov DWORD PTR s$10[rbp], eax ; 2098 : r = rs >> 4; 004e2 8b 85 64 01 00 00 mov eax, DWORD PTR rs$11[rbp] 004e8 c1 f8 04 sar eax, 4 004eb 89 85 24 01 00 00 mov DWORD PTR r$9[rbp], eax ; 2099 : if (s == 0) { 004f1 83 bd 44 01 00 00 00 cmp DWORD PTR s$10[rbp], 0 004f8 75 75 jne SHORT $LN34@stbi__jpeg ; 2100 : if (r < 15) { 004fa 83 bd 24 01 00 00 0f cmp DWORD PTR r$9[rbp], 15 00501 7d 6a jge SHORT $LN36@stbi__jpeg ; 2101 : j->eob_run = (1 << r) - 1; 00503 8b 85 24 01 00 00 mov eax, DWORD PTR r$9[rbp] 00509 b9 01 00 00 00 mov ecx, 1 0050e 89 8d 54 02 00 00 mov DWORD PTR tv420[rbp], ecx 00514 0f b6 c8 movzx ecx, al 00517 8b 85 54 02 00 00 mov eax, DWORD PTR tv420[rbp] 0051d d3 e0 shl eax, cl 0051f ff c8 dec eax 00521 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00528 89 81 44 48 00 00 mov DWORD PTR [rcx+18500], eax ; 2102 : if (r) 0052e 83 bd 24 01 00 00 00 cmp DWORD PTR r$9[rbp], 0 00535 74 2c je SHORT $LN38@stbi__jpeg ; 2103 : j->eob_run += stbi__jpeg_get_bits(j, r); 00537 8b 95 24 01 00 00 mov edx, DWORD PTR r$9[rbp] 0053d 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00544 e8 00 00 00 00 call stbi__jpeg_get_bits 00549 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00550 03 81 44 48 00 00 add eax, DWORD PTR [rcx+18500] 00556 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 0055d 89 81 44 48 00 00 mov DWORD PTR [rcx+18500], eax $LN38@stbi__jpeg: ; 2104 : r = 64; // force end of block 00563 c7 85 24 01 00 00 40 00 00 00 mov DWORD PTR r$9[rbp], 64 ; 00000040H $LN36@stbi__jpeg: ; 2105 : } else { ; 2106 : // r=15 s=0 should write 16 0s, so we just do ; 2107 : // a run of 15 0s and then write s (which is 0), ; 2108 : // so we don't have to do anything special here ; 2109 : } ; 2110 : } else { 0056d eb 48 jmp SHORT $LN35@stbi__jpeg $LN34@stbi__jpeg: ; 2111 : if (s != 1) 0056f 83 bd 44 01 00 00 01 cmp DWORD PTR s$10[rbp], 1 00576 74 11 je SHORT $LN39@stbi__jpeg ; 2112 : return stbi__err("bad huffman code", 00578 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 0057f e8 00 00 00 00 call stbi__err 00584 e9 3c 01 00 00 jmp $LN1@stbi__jpeg $LN39@stbi__jpeg: ; 2113 : "Corrupt JPEG"); ; 2114 : // sign bit ; 2115 : if (stbi__jpeg_get_bit(j)) 00589 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 00590 e8 00 00 00 00 call stbi__jpeg_get_bit 00595 85 c0 test eax, eax 00597 74 0f je SHORT $LN40@stbi__jpeg ; 2116 : s = bit; 00599 0f bf 85 e4 00 00 00 movsx eax, WORD PTR bit$7[rbp] 005a0 89 85 44 01 00 00 mov DWORD PTR s$10[rbp], eax 005a6 eb 0f jmp SHORT $LN41@stbi__jpeg $LN40@stbi__jpeg: ; 2117 : else ; 2118 : s = -bit; 005a8 0f bf 85 e4 00 00 00 movsx eax, WORD PTR bit$7[rbp] 005af f7 d8 neg eax 005b1 89 85 44 01 00 00 mov DWORD PTR s$10[rbp], eax $LN41@stbi__jpeg: $LN35@stbi__jpeg: $LN11@stbi__jpeg: ; 2119 : } ; 2120 : ; 2121 : // advance by r ; 2122 : while (k <= j->spec_end) { 005b7 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 005be 8b 80 38 48 00 00 mov eax, DWORD PTR [rax+18488] 005c4 39 45 04 cmp DWORD PTR k$[rbp], eax 005c7 0f 8f dd 00 00 00 jg $LN12@stbi__jpeg ; 2123 : short *p = &data[stbi__jpeg_dezigzag[k++]]; 005cd 48 63 45 04 movsxd rax, DWORD PTR k$[rbp] 005d1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag 005d8 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 005dc 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR data$[rbp] 005e3 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] 005e7 48 89 85 88 01 00 00 mov QWORD PTR p$12[rbp], rax 005ee 8b 45 04 mov eax, DWORD PTR k$[rbp] 005f1 ff c0 inc eax 005f3 89 45 04 mov DWORD PTR k$[rbp], eax ; 2124 : if (*p != 0) { 005f6 48 8b 85 88 01 00 00 mov rax, QWORD PTR p$12[rbp] 005fd 0f bf 00 movsx eax, WORD PTR [rax] 00600 85 c0 test eax, eax 00602 74 77 je SHORT $LN42@stbi__jpeg ; 2125 : if (stbi__jpeg_get_bit(j)) 00604 48 8b 8d 80 02 00 00 mov rcx, QWORD PTR j$[rbp] 0060b e8 00 00 00 00 call stbi__jpeg_get_bit 00610 85 c0 test eax, eax 00612 74 65 je SHORT $LN44@stbi__jpeg ; 2126 : if ((*p & bit) == 0) { 00614 48 8b 85 88 01 00 00 mov rax, QWORD PTR p$12[rbp] 0061b 0f bf 00 movsx eax, WORD PTR [rax] 0061e 0f bf 8d e4 00 00 00 movsx ecx, WORD PTR bit$7[rbp] 00625 23 c1 and eax, ecx 00627 85 c0 test eax, eax 00629 75 4e jne SHORT $LN45@stbi__jpeg ; 2127 : if (*p > 0) 0062b 48 8b 85 88 01 00 00 mov rax, QWORD PTR p$12[rbp] 00632 0f bf 00 movsx eax, WORD PTR [rax] 00635 85 c0 test eax, eax 00637 7e 21 jle SHORT $LN46@stbi__jpeg ; 2128 : *p += bit; 00639 0f bf 85 e4 00 00 00 movsx eax, WORD PTR bit$7[rbp] 00640 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR p$12[rbp] 00647 0f bf 09 movsx ecx, WORD PTR [rcx] 0064a 03 c8 add ecx, eax 0064c 8b c1 mov eax, ecx 0064e 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR p$12[rbp] 00655 66 89 01 mov WORD PTR [rcx], ax 00658 eb 1f jmp SHORT $LN47@stbi__jpeg $LN46@stbi__jpeg: ; 2129 : else ; 2130 : *p -= bit; 0065a 0f bf 85 e4 00 00 00 movsx eax, WORD PTR bit$7[rbp] 00661 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR p$12[rbp] 00668 0f bf 09 movsx ecx, WORD PTR [rcx] 0066b 2b c8 sub ecx, eax 0066d 8b c1 mov eax, ecx 0066f 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR p$12[rbp] 00676 66 89 01 mov WORD PTR [rcx], ax $LN47@stbi__jpeg: $LN45@stbi__jpeg: $LN44@stbi__jpeg: ; 2131 : } ; 2132 : } else { 00679 eb 2a jmp SHORT $LN43@stbi__jpeg $LN42@stbi__jpeg: ; 2133 : if (r == 0) { 0067b 83 bd 24 01 00 00 00 cmp DWORD PTR r$9[rbp], 0 00682 75 13 jne SHORT $LN48@stbi__jpeg ; 2134 : *p = (short)s; 00684 48 8b 85 88 01 00 00 mov rax, QWORD PTR p$12[rbp] 0068b 0f b7 8d 44 01 00 00 movzx ecx, WORD PTR s$10[rbp] 00692 66 89 08 mov WORD PTR [rax], cx ; 2135 : break; 00695 eb 13 jmp SHORT $LN12@stbi__jpeg $LN48@stbi__jpeg: ; 2136 : } ; 2137 : --r; 00697 8b 85 24 01 00 00 mov eax, DWORD PTR r$9[rbp] 0069d ff c8 dec eax 0069f 89 85 24 01 00 00 mov DWORD PTR r$9[rbp], eax $LN43@stbi__jpeg: ; 2138 : } ; 2139 : } 006a5 e9 0d ff ff ff jmp $LN11@stbi__jpeg $LN12@stbi__jpeg: ; 2140 : } while (k <= j->spec_end); 006aa 48 8b 85 80 02 00 00 mov rax, QWORD PTR j$[rbp] 006b1 8b 80 38 48 00 00 mov eax, DWORD PTR [rax+18488] 006b7 39 45 04 cmp DWORD PTR k$[rbp], eax 006ba 0f 8e e0 fd ff ff jle $LN10@stbi__jpeg $LN27@stbi__jpeg: $LN15@stbi__jpeg: ; 2141 : } ; 2142 : } ; 2143 : return 1; 006c0 b8 01 00 00 00 mov eax, 1 $LN1@stbi__jpeg: ; 2144 : } 006c5 48 8d a5 68 02 00 00 lea rsp, QWORD PTR [rbp+616] 006cc 5f pop rdi 006cd 5d pop rbp 006ce c3 ret 0 stbi__jpeg_decode_block_prog_ac ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_decode_block_prog_dc _TEXT SEGMENT diff$ = 4 dc$ = 36 t$ = 68 tv87 = 276 tv207 = 276 tv211 = 276 j$ = 320 data$ = 328 hdc$ = 336 b$ = 344 stbi__jpeg_decode_block_prog_dc PROC ; COMDAT ; 1978 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 1979 : int diff, dc; ; 1980 : int t; ; 1981 : if (j->spec_end != 0) 0002f 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 00036 83 b8 38 48 00 00 00 cmp DWORD PTR [rax+18488], 0 0003d 74 11 je SHORT $LN2@stbi__jpeg ; 1982 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); 0003f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ 00046 e8 00 00 00 00 call stbi__err 0004b e9 f7 01 00 00 jmp $LN1@stbi__jpeg $LN2@stbi__jpeg: ; 1983 : ; 1984 : if (j->code_bits < 16) 00050 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 00057 83 b8 24 48 00 00 10 cmp DWORD PTR [rax+18468], 16 0005e 7d 0d jge SHORT $LN3@stbi__jpeg ; 1985 : stbi__grow_buffer_unsafe(j); 00060 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 00067 e8 00 00 00 00 call stbi__grow_buffer_unsafe 0006c 90 npad 1 $LN3@stbi__jpeg: ; 1986 : ; 1987 : if (j->succ_high == 0) { 0006d 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 00074 83 b8 3c 48 00 00 00 cmp DWORD PTR [rax+18492], 0 0007b 0f 85 6e 01 00 00 jne $LN4@stbi__jpeg ; 1988 : // first scan for DC coefficient, must be first ; 1989 : memset(data, 0, 00081 41 b8 80 00 00 00 mov r8d, 128 ; 00000080H 00087 33 d2 xor edx, edx 00089 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR data$[rbp] 00090 e8 00 00 00 00 call memset 00095 90 npad 1 ; 1990 : 64 * sizeof(data[0])); // 0 all the ac values now ; 1991 : t = stbi__jpeg_huff_decode(j, hdc); 00096 48 8b 95 50 01 00 00 mov rdx, QWORD PTR hdc$[rbp] 0009d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 000a4 e8 00 00 00 00 call stbi__jpeg_huff_decode 000a9 89 45 44 mov DWORD PTR t$[rbp], eax ; 1992 : if (t < 0 || t > 15) 000ac 83 7d 44 00 cmp DWORD PTR t$[rbp], 0 000b0 7c 06 jl SHORT $LN7@stbi__jpeg 000b2 83 7d 44 0f cmp DWORD PTR t$[rbp], 15 000b6 7e 11 jle SHORT $LN6@stbi__jpeg $LN7@stbi__jpeg: ; 1993 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); 000b8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ 000bf e8 00 00 00 00 call stbi__err 000c4 e9 7e 01 00 00 jmp $LN1@stbi__jpeg $LN6@stbi__jpeg: ; 1994 : diff = t ? stbi__extend_receive(j, t) : 0; 000c9 83 7d 44 00 cmp DWORD PTR t$[rbp], 0 000cd 74 17 je SHORT $LN12@stbi__jpeg 000cf 8b 55 44 mov edx, DWORD PTR t$[rbp] 000d2 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 000d9 e8 00 00 00 00 call stbi__extend_receive 000de 89 85 14 01 00 00 mov DWORD PTR tv87[rbp], eax 000e4 eb 0a jmp SHORT $LN13@stbi__jpeg $LN12@stbi__jpeg: 000e6 c7 85 14 01 00 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 $LN13@stbi__jpeg: 000f0 8b 85 14 01 00 00 mov eax, DWORD PTR tv87[rbp] 000f6 89 45 04 mov DWORD PTR diff$[rbp], eax ; 1995 : ; 1996 : if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) 000f9 48 63 85 58 01 00 00 movsxd rax, DWORD PTR b$[rbp] 00100 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00104 8b 55 04 mov edx, DWORD PTR diff$[rbp] 00107 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 0010e 8b 8c 01 b8 46 00 00 mov ecx, DWORD PTR [rcx+rax+18104] 00115 e8 00 00 00 00 call stbi__addints_valid 0011a 85 c0 test eax, eax 0011c 75 11 jne SHORT $LN8@stbi__jpeg ; 1997 : return stbi__err("bad delta", "Corrupt JPEG"); 0011e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09IFDKCGFO@bad?5delta@ 00125 e8 00 00 00 00 call stbi__err 0012a e9 18 01 00 00 jmp $LN1@stbi__jpeg $LN8@stbi__jpeg: ; 1998 : dc = j->img_comp[b].dc_pred + diff; 0012f 48 63 85 58 01 00 00 movsxd rax, DWORD PTR b$[rbp] 00136 48 6b c0 60 imul rax, rax, 96 ; 00000060H 0013a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 00141 8b 84 01 b8 46 00 00 mov eax, DWORD PTR [rcx+rax+18104] 00148 03 45 04 add eax, DWORD PTR diff$[rbp] 0014b 89 45 24 mov DWORD PTR dc$[rbp], eax ; 1999 : j->img_comp[b].dc_pred = dc; 0014e 48 63 85 58 01 00 00 movsxd rax, DWORD PTR b$[rbp] 00155 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00159 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 00160 8b 55 24 mov edx, DWORD PTR dc$[rbp] 00163 89 94 01 b8 46 00 00 mov DWORD PTR [rcx+rax+18104], edx ; 2000 : if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low)) 0016a 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 00171 8b 80 40 48 00 00 mov eax, DWORD PTR [rax+18496] 00177 b9 01 00 00 00 mov ecx, 1 0017c 89 8d 14 01 00 00 mov DWORD PTR tv207[rbp], ecx 00182 0f b6 c8 movzx ecx, al 00185 8b 85 14 01 00 00 mov eax, DWORD PTR tv207[rbp] 0018b d3 e0 shl eax, cl 0018d 0f b7 d0 movzx edx, ax 00190 0f b7 4d 24 movzx ecx, WORD PTR dc$[rbp] 00194 e8 00 00 00 00 call stbi__mul2shorts_valid 00199 85 c0 test eax, eax 0019b 75 11 jne SHORT $LN9@stbi__jpeg ; 2001 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); 0019d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ 001a4 e8 00 00 00 00 call stbi__err 001a9 e9 99 00 00 00 jmp $LN1@stbi__jpeg $LN9@stbi__jpeg: ; 2002 : data[0] = (short)(dc * (1 << j->succ_low)); 001ae 48 8b 85 40 01 00 00 mov rax, QWORD PTR j$[rbp] 001b5 8b 80 40 48 00 00 mov eax, DWORD PTR [rax+18496] 001bb b9 01 00 00 00 mov ecx, 1 001c0 89 8d 14 01 00 00 mov DWORD PTR tv211[rbp], ecx 001c6 0f b6 c8 movzx ecx, al 001c9 8b 85 14 01 00 00 mov eax, DWORD PTR tv211[rbp] 001cf d3 e0 shl eax, cl 001d1 8b 4d 24 mov ecx, DWORD PTR dc$[rbp] 001d4 0f af c8 imul ecx, eax 001d7 8b c1 mov eax, ecx 001d9 b9 02 00 00 00 mov ecx, 2 001de 48 6b c9 00 imul rcx, rcx, 0 001e2 48 8b 95 48 01 00 00 mov rdx, QWORD PTR data$[rbp] 001e9 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 2003 : } else { 001ed eb 53 jmp SHORT $LN5@stbi__jpeg $LN4@stbi__jpeg: ; 2004 : // refinement scan for DC coefficient ; 2005 : if (stbi__jpeg_get_bit(j)) 001ef 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 001f6 e8 00 00 00 00 call stbi__jpeg_get_bit 001fb 85 c0 test eax, eax 001fd 74 43 je SHORT $LN10@stbi__jpeg ; 2006 : data[0] += (short)(1 << j->succ_low); 001ff b8 02 00 00 00 mov eax, 2 00204 48 6b c0 00 imul rax, rax, 0 00208 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR j$[rbp] 0020f 8b 89 40 48 00 00 mov ecx, DWORD PTR [rcx+18496] 00215 ba 01 00 00 00 mov edx, 1 0021a d3 e2 shl edx, cl 0021c 8b ca mov ecx, edx 0021e 0f bf c9 movsx ecx, cx 00221 48 8b 95 48 01 00 00 mov rdx, QWORD PTR data$[rbp] 00228 0f bf 04 02 movsx eax, WORD PTR [rdx+rax] 0022c 03 c1 add eax, ecx 0022e b9 02 00 00 00 mov ecx, 2 00233 48 6b c9 00 imul rcx, rcx, 0 00237 48 8b 95 48 01 00 00 mov rdx, QWORD PTR data$[rbp] 0023e 66 89 04 0a mov WORD PTR [rdx+rcx], ax $LN10@stbi__jpeg: $LN5@stbi__jpeg: ; 2007 : } ; 2008 : return 1; 00242 b8 01 00 00 00 mov eax, 1 $LN1@stbi__jpeg: ; 2009 : } 00247 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 0024e 5f pop rdi 0024f 5d pop rbp 00250 c3 ret 0 stbi__jpeg_decode_block_prog_dc ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_decode_block _TEXT SEGMENT diff$ = 4 dc$ = 36 k$ = 68 t$ = 100 zig$1 = 132 c$2 = 164 r$3 = 196 s$4 = 228 rs$5 = 260 tv81 = 468 tv275 = 472 j$ = 512 data$ = 520 hdc$ = 528 hac$ = 536 fac$ = 544 b$ = 552 dequant$ = 560 stbi__jpeg_decode_block PROC ; COMDAT ; 1914 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 08 02 00 00 sub rsp, 520 ; 00000208H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 1915 : int diff, dc, k; ; 1916 : int t; ; 1917 : ; 1918 : if (j->code_bits < 16) 0002f 48 8b 85 00 02 00 00 mov rax, QWORD PTR j$[rbp] 00036 83 b8 24 48 00 00 10 cmp DWORD PTR [rax+18468], 16 0003d 7d 0d jge SHORT $LN5@stbi__jpeg ; 1919 : stbi__grow_buffer_unsafe(j); 0003f 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 00046 e8 00 00 00 00 call stbi__grow_buffer_unsafe 0004b 90 npad 1 $LN5@stbi__jpeg: ; 1920 : t = stbi__jpeg_huff_decode(j, hdc); 0004c 48 8b 95 10 02 00 00 mov rdx, QWORD PTR hdc$[rbp] 00053 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 0005a e8 00 00 00 00 call stbi__jpeg_huff_decode 0005f 89 45 64 mov DWORD PTR t$[rbp], eax ; 1921 : if (t < 0 || t > 15) 00062 83 7d 64 00 cmp DWORD PTR t$[rbp], 0 00066 7c 06 jl SHORT $LN7@stbi__jpeg 00068 83 7d 64 0f cmp DWORD PTR t$[rbp], 15 0006c 7e 11 jle SHORT $LN6@stbi__jpeg $LN7@stbi__jpeg: ; 1922 : return stbi__err("bad huffman code", "Corrupt JPEG"); 0006e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 00075 e8 00 00 00 00 call stbi__err 0007a e9 52 03 00 00 jmp $LN1@stbi__jpeg $LN6@stbi__jpeg: ; 1923 : ; 1924 : // 0 all the ac values now so we can do it 32-bits at a time ; 1925 : memset(data, 0, 64 * sizeof(data[0])); 0007f 41 b8 80 00 00 00 mov r8d, 128 ; 00000080H 00085 33 d2 xor edx, edx 00087 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR data$[rbp] 0008e e8 00 00 00 00 call memset 00093 90 npad 1 ; 1926 : ; 1927 : diff = t ? stbi__extend_receive(j, t) : 0; 00094 83 7d 64 00 cmp DWORD PTR t$[rbp], 0 00098 74 17 je SHORT $LN19@stbi__jpeg 0009a 8b 55 64 mov edx, DWORD PTR t$[rbp] 0009d 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 000a4 e8 00 00 00 00 call stbi__extend_receive 000a9 89 85 d4 01 00 00 mov DWORD PTR tv81[rbp], eax 000af eb 0a jmp SHORT $LN20@stbi__jpeg $LN19@stbi__jpeg: 000b1 c7 85 d4 01 00 00 00 00 00 00 mov DWORD PTR tv81[rbp], 0 $LN20@stbi__jpeg: 000bb 8b 85 d4 01 00 00 mov eax, DWORD PTR tv81[rbp] 000c1 89 45 04 mov DWORD PTR diff$[rbp], eax ; 1928 : if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)) 000c4 48 63 85 28 02 00 00 movsxd rax, DWORD PTR b$[rbp] 000cb 48 6b c0 60 imul rax, rax, 96 ; 00000060H 000cf 8b 55 04 mov edx, DWORD PTR diff$[rbp] 000d2 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 000d9 8b 8c 01 b8 46 00 00 mov ecx, DWORD PTR [rcx+rax+18104] 000e0 e8 00 00 00 00 call stbi__addints_valid 000e5 85 c0 test eax, eax 000e7 75 11 jne SHORT $LN8@stbi__jpeg ; 1929 : return stbi__err("bad delta", "Corrupt JPEG"); 000e9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09IFDKCGFO@bad?5delta@ 000f0 e8 00 00 00 00 call stbi__err 000f5 e9 d7 02 00 00 jmp $LN1@stbi__jpeg $LN8@stbi__jpeg: ; 1930 : dc = j->img_comp[b].dc_pred + diff; 000fa 48 63 85 28 02 00 00 movsxd rax, DWORD PTR b$[rbp] 00101 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00105 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 0010c 8b 84 01 b8 46 00 00 mov eax, DWORD PTR [rcx+rax+18104] 00113 03 45 04 add eax, DWORD PTR diff$[rbp] 00116 89 45 24 mov DWORD PTR dc$[rbp], eax ; 1931 : j->img_comp[b].dc_pred = dc; 00119 48 63 85 28 02 00 00 movsxd rax, DWORD PTR b$[rbp] 00120 48 6b c0 60 imul rax, rax, 96 ; 00000060H 00124 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 0012b 8b 55 24 mov edx, DWORD PTR dc$[rbp] 0012e 89 94 01 b8 46 00 00 mov DWORD PTR [rcx+rax+18104], edx ; 1932 : if (!stbi__mul2shorts_valid(dc, dequant[0])) 00135 b8 02 00 00 00 mov eax, 2 0013a 48 6b c0 00 imul rax, rax, 0 0013e 48 8b 8d 30 02 00 00 mov rcx, QWORD PTR dequant$[rbp] 00145 0f b7 14 01 movzx edx, WORD PTR [rcx+rax] 00149 0f b7 4d 24 movzx ecx, WORD PTR dc$[rbp] 0014d e8 00 00 00 00 call stbi__mul2shorts_valid 00152 85 c0 test eax, eax 00154 75 11 jne SHORT $LN9@stbi__jpeg ; 1933 : return stbi__err("can't merge dc and ac", "Corrupt JPEG"); 00156 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@ 0015d e8 00 00 00 00 call stbi__err 00162 e9 6a 02 00 00 jmp $LN1@stbi__jpeg $LN9@stbi__jpeg: ; 1934 : data[0] = (short)(dc * dequant[0]); 00167 b8 02 00 00 00 mov eax, 2 0016c 48 6b c0 00 imul rax, rax, 0 00170 48 8b 8d 30 02 00 00 mov rcx, QWORD PTR dequant$[rbp] 00177 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 0017b 8b 4d 24 mov ecx, DWORD PTR dc$[rbp] 0017e 0f af c8 imul ecx, eax 00181 8b c1 mov eax, ecx 00183 b9 02 00 00 00 mov ecx, 2 00188 48 6b c9 00 imul rcx, rcx, 0 0018c 48 8b 95 08 02 00 00 mov rdx, QWORD PTR data$[rbp] 00193 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1935 : ; 1936 : // decode AC components, see JPEG spec ; 1937 : k = 1; 00197 c7 45 44 01 00 00 00 mov DWORD PTR k$[rbp], 1 $LN4@stbi__jpeg: ; 1938 : do { ; 1939 : unsigned int zig; ; 1940 : int c, r, s; ; 1941 : if (j->code_bits < 16) 0019e 48 8b 85 00 02 00 00 mov rax, QWORD PTR j$[rbp] 001a5 83 b8 24 48 00 00 10 cmp DWORD PTR [rax+18468], 16 001ac 7d 0d jge SHORT $LN10@stbi__jpeg ; 1942 : stbi__grow_buffer_unsafe(j); 001ae 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 001b5 e8 00 00 00 00 call stbi__grow_buffer_unsafe 001ba 90 npad 1 $LN10@stbi__jpeg: ; 1943 : c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); 001bb 48 8b 85 00 02 00 00 mov rax, QWORD PTR j$[rbp] 001c2 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 001c8 c1 e8 17 shr eax, 23 001cb 25 ff 01 00 00 and eax, 511 ; 000001ffH 001d0 89 85 a4 00 00 00 mov DWORD PTR c$2[rbp], eax ; 1944 : r = fac[c]; 001d6 48 63 85 a4 00 00 00 movsxd rax, DWORD PTR c$2[rbp] 001dd 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR fac$[rbp] 001e4 0f bf 04 41 movsx eax, WORD PTR [rcx+rax*2] 001e8 89 85 c4 00 00 00 mov DWORD PTR r$3[rbp], eax ; 1945 : if (r) { // fast-AC path 001ee 83 bd c4 00 00 00 00 cmp DWORD PTR r$3[rbp], 0 001f5 0f 84 f0 00 00 00 je $LN11@stbi__jpeg ; 1946 : k += (r >> 4) & 15; // run 001fb 8b 85 c4 00 00 00 mov eax, DWORD PTR r$3[rbp] 00201 c1 f8 04 sar eax, 4 00204 83 e0 0f and eax, 15 00207 8b 4d 44 mov ecx, DWORD PTR k$[rbp] 0020a 03 c8 add ecx, eax 0020c 8b c1 mov eax, ecx 0020e 89 45 44 mov DWORD PTR k$[rbp], eax ; 1947 : s = r & 15; // combined length 00211 8b 85 c4 00 00 00 mov eax, DWORD PTR r$3[rbp] 00217 83 e0 0f and eax, 15 0021a 89 85 e4 00 00 00 mov DWORD PTR s$4[rbp], eax ; 1948 : if (s > j->code_bits) 00220 48 8b 85 00 02 00 00 mov rax, QWORD PTR j$[rbp] 00227 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 0022d 39 85 e4 00 00 00 cmp DWORD PTR s$4[rbp], eax 00233 7e 11 jle SHORT $LN13@stbi__jpeg ; 1949 : return stbi__err("bad huffman code", 00235 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 0023c e8 00 00 00 00 call stbi__err 00241 e9 8b 01 00 00 jmp $LN1@stbi__jpeg $LN13@stbi__jpeg: ; 1950 : "Combined length longer than code bits available"); ; 1951 : j->code_buffer <<= s; 00246 8b 85 e4 00 00 00 mov eax, DWORD PTR s$4[rbp] 0024c 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 00253 48 89 8d d8 01 00 00 mov QWORD PTR tv275[rbp], rcx 0025a 0f b6 c8 movzx ecx, al 0025d 48 8b 85 d8 01 00 00 mov rax, QWORD PTR tv275[rbp] 00264 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 0026a d3 e0 shl eax, cl 0026c 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 00273 89 81 20 48 00 00 mov DWORD PTR [rcx+18464], eax ; 1952 : j->code_bits -= s; 00279 48 8b 85 00 02 00 00 mov rax, QWORD PTR j$[rbp] 00280 8b 8d e4 00 00 00 mov ecx, DWORD PTR s$4[rbp] 00286 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 0028c 2b c1 sub eax, ecx 0028e 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 00295 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 1953 : // decode into unzigzag'd location ; 1954 : zig = stbi__jpeg_dezigzag[k++]; 0029b 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 0029f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag 002a6 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 002aa 89 85 84 00 00 00 mov DWORD PTR zig$1[rbp], eax 002b0 8b 45 44 mov eax, DWORD PTR k$[rbp] 002b3 ff c0 inc eax 002b5 89 45 44 mov DWORD PTR k$[rbp], eax ; 1955 : data[zig] = (short)((r >> 8) * dequant[zig]); 002b8 8b 85 c4 00 00 00 mov eax, DWORD PTR r$3[rbp] 002be c1 f8 08 sar eax, 8 002c1 8b 8d 84 00 00 00 mov ecx, DWORD PTR zig$1[rbp] 002c7 48 8b 95 30 02 00 00 mov rdx, QWORD PTR dequant$[rbp] 002ce 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2] 002d2 0f af c1 imul eax, ecx 002d5 8b 8d 84 00 00 00 mov ecx, DWORD PTR zig$1[rbp] 002db 48 8b 95 08 02 00 00 mov rdx, QWORD PTR data$[rbp] 002e2 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax ; 1956 : } else { 002e6 e9 d7 00 00 00 jmp $LN12@stbi__jpeg $LN11@stbi__jpeg: ; 1957 : int rs = stbi__jpeg_huff_decode(j, hac); 002eb 48 8b 95 18 02 00 00 mov rdx, QWORD PTR hac$[rbp] 002f2 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 002f9 e8 00 00 00 00 call stbi__jpeg_huff_decode 002fe 89 85 04 01 00 00 mov DWORD PTR rs$5[rbp], eax ; 1958 : if (rs < 0) 00304 83 bd 04 01 00 00 00 cmp DWORD PTR rs$5[rbp], 0 0030b 7d 11 jge SHORT $LN14@stbi__jpeg ; 1959 : return stbi__err("bad huffman code", "Corrupt JPEG"); 0030d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@ 00314 e8 00 00 00 00 call stbi__err 00319 e9 b3 00 00 00 jmp $LN1@stbi__jpeg $LN14@stbi__jpeg: ; 1960 : s = rs & 15; 0031e 8b 85 04 01 00 00 mov eax, DWORD PTR rs$5[rbp] 00324 83 e0 0f and eax, 15 00327 89 85 e4 00 00 00 mov DWORD PTR s$4[rbp], eax ; 1961 : r = rs >> 4; 0032d 8b 85 04 01 00 00 mov eax, DWORD PTR rs$5[rbp] 00333 c1 f8 04 sar eax, 4 00336 89 85 c4 00 00 00 mov DWORD PTR r$3[rbp], eax ; 1962 : if (s == 0) { 0033c 83 bd e4 00 00 00 00 cmp DWORD PTR s$4[rbp], 0 00343 75 19 jne SHORT $LN15@stbi__jpeg ; 1963 : if (rs != 0xf0) 00345 81 bd 04 01 00 00 f0 00 00 00 cmp DWORD PTR rs$5[rbp], 240 ; 000000f0H 0034f 74 02 je SHORT $LN17@stbi__jpeg ; 1964 : break; // end block 00351 eb 79 jmp SHORT $LN3@stbi__jpeg $LN17@stbi__jpeg: ; 1965 : k += 16; 00353 8b 45 44 mov eax, DWORD PTR k$[rbp] 00356 83 c0 10 add eax, 16 00359 89 45 44 mov DWORD PTR k$[rbp], eax ; 1966 : } else { 0035c eb 64 jmp SHORT $LN16@stbi__jpeg $LN15@stbi__jpeg: ; 1967 : k += r; 0035e 8b 85 c4 00 00 00 mov eax, DWORD PTR r$3[rbp] 00364 8b 4d 44 mov ecx, DWORD PTR k$[rbp] 00367 03 c8 add ecx, eax 00369 8b c1 mov eax, ecx 0036b 89 45 44 mov DWORD PTR k$[rbp], eax ; 1968 : // decode into unzigzag'd location ; 1969 : zig = stbi__jpeg_dezigzag[k++]; 0036e 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 00372 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag 00379 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0037d 89 85 84 00 00 00 mov DWORD PTR zig$1[rbp], eax 00383 8b 45 44 mov eax, DWORD PTR k$[rbp] 00386 ff c0 inc eax 00388 89 45 44 mov DWORD PTR k$[rbp], eax ; 1970 : data[zig] = (short)(stbi__extend_receive(j, s) * dequant[zig]); 0038b 8b 95 e4 00 00 00 mov edx, DWORD PTR s$4[rbp] 00391 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR j$[rbp] 00398 e8 00 00 00 00 call stbi__extend_receive 0039d 8b 8d 84 00 00 00 mov ecx, DWORD PTR zig$1[rbp] 003a3 48 8b 95 30 02 00 00 mov rdx, QWORD PTR dequant$[rbp] 003aa 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2] 003ae 0f af c1 imul eax, ecx 003b1 8b 8d 84 00 00 00 mov ecx, DWORD PTR zig$1[rbp] 003b7 48 8b 95 08 02 00 00 mov rdx, QWORD PTR data$[rbp] 003be 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax $LN16@stbi__jpeg: $LN12@stbi__jpeg: ; 1971 : } ; 1972 : } ; 1973 : } while (k < 64); 003c2 83 7d 44 40 cmp DWORD PTR k$[rbp], 64 ; 00000040H 003c6 0f 8c d2 fd ff ff jl $LN4@stbi__jpeg $LN3@stbi__jpeg: ; 1974 : return 1; 003cc b8 01 00 00 00 mov eax, 1 $LN1@stbi__jpeg: ; 1975 : } 003d1 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] 003d8 5f pop rdi 003d9 5d pop rbp 003da c3 ret 0 stbi__jpeg_decode_block ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_get_bit _TEXT SEGMENT k$ = 4 j$ = 256 stbi__jpeg_get_bit PROC ; COMDAT ; 1888 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1889 : unsigned int k; ; 1890 : if (j->code_bits < 1) 00020 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00027 83 b8 24 48 00 00 01 cmp DWORD PTR [rax+18468], 1 0002e 7d 0d jge SHORT $LN2@stbi__jpeg ; 1891 : stbi__grow_buffer_unsafe(j); 00030 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR j$[rbp] 00037 e8 00 00 00 00 call stbi__grow_buffer_unsafe 0003c 90 npad 1 $LN2@stbi__jpeg: ; 1892 : if (j->code_bits < 1) 0003d 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00044 83 b8 24 48 00 00 01 cmp DWORD PTR [rax+18468], 1 0004b 7d 04 jge SHORT $LN3@stbi__jpeg ; 1893 : return 0; // ran out of bits from stream, return 0s intead of continuing 0004d 33 c0 xor eax, eax 0004f eb 50 jmp SHORT $LN1@stbi__jpeg $LN3@stbi__jpeg: ; 1894 : k = j->code_buffer; 00051 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00058 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 0005e 89 45 04 mov DWORD PTR k$[rbp], eax ; 1895 : j->code_buffer <<= 1; 00061 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00068 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 0006e d1 e0 shl eax, 1 00070 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR j$[rbp] 00077 89 81 20 48 00 00 mov DWORD PTR [rcx+18464], eax ; 1896 : --j->code_bits; 0007d 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 00084 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 0008a ff c8 dec eax 0008c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR j$[rbp] 00093 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 1897 : return k & 0x80000000; 00099 8b 45 04 mov eax, DWORD PTR k$[rbp] 0009c 25 00 00 00 80 and eax, -2147483648 ; 80000000H $LN1@stbi__jpeg: ; 1898 : } 000a1 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000a8 5f pop rdi 000a9 5d pop rbp 000aa c3 ret 0 stbi__jpeg_get_bit ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_get_bits _TEXT SEGMENT k$ = 4 j$ = 256 n$ = 264 stbi__jpeg_get_bits PROC ; COMDAT ; 1874 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 1875 : unsigned int k; ; 1876 : if (j->code_bits < n) 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 0002b 8b 8d 08 01 00 00 mov ecx, DWORD PTR n$[rbp] 00031 39 88 24 48 00 00 cmp DWORD PTR [rax+18468], ecx 00037 7d 0d jge SHORT $LN2@stbi__jpeg ; 1877 : stbi__grow_buffer_unsafe(j); 00039 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR j$[rbp] 00040 e8 00 00 00 00 call stbi__grow_buffer_unsafe 00045 90 npad 1 $LN2@stbi__jpeg: ; 1878 : if (j->code_bits < n) 00046 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 0004d 8b 8d 08 01 00 00 mov ecx, DWORD PTR n$[rbp] 00053 39 88 24 48 00 00 cmp DWORD PTR [rax+18468], ecx 00059 7d 07 jge SHORT $LN3@stbi__jpeg ; 1879 : return 0; // ran out of bits from stream, return 0s intead of continuing 0005b 33 c0 xor eax, eax 0005d e9 82 00 00 00 jmp $LN1@stbi__jpeg $LN3@stbi__jpeg: ; 1880 : k = stbi_lrot(j->code_buffer, n); 00062 8b 95 08 01 00 00 mov edx, DWORD PTR n$[rbp] 00068 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 0006f 8b 88 20 48 00 00 mov ecx, DWORD PTR [rax+18464] 00075 e8 00 00 00 00 call _lrotl 0007a 89 45 04 mov DWORD PTR k$[rbp], eax ; 1881 : j->code_buffer = k & ~stbi__bmask[n]; 0007d 48 63 85 08 01 00 00 movsxd rax, DWORD PTR n$[rbp] 00084 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__bmask 0008b 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] 0008e f7 d0 not eax 00090 8b 4d 04 mov ecx, DWORD PTR k$[rbp] 00093 23 c8 and ecx, eax 00095 8b c1 mov eax, ecx 00097 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR j$[rbp] 0009e 89 81 20 48 00 00 mov DWORD PTR [rcx+18464], eax ; 1882 : k &= stbi__bmask[n]; 000a4 48 63 85 08 01 00 00 movsxd rax, DWORD PTR n$[rbp] 000ab 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__bmask 000b2 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] 000b5 8b 4d 04 mov ecx, DWORD PTR k$[rbp] 000b8 23 c8 and ecx, eax 000ba 8b c1 mov eax, ecx 000bc 89 45 04 mov DWORD PTR k$[rbp], eax ; 1883 : j->code_bits -= n; 000bf 48 8b 85 00 01 00 00 mov rax, QWORD PTR j$[rbp] 000c6 8b 8d 08 01 00 00 mov ecx, DWORD PTR n$[rbp] 000cc 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 000d2 2b c1 sub eax, ecx 000d4 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR j$[rbp] 000db 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 1884 : return k; 000e1 8b 45 04 mov eax, DWORD PTR k$[rbp] $LN1@stbi__jpeg: ; 1885 : } 000e4 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000eb 5f pop rdi 000ec 5d pop rbp 000ed c3 ret 0 stbi__jpeg_get_bits ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__extend_receive _TEXT SEGMENT k$ = 4 sgn$ = 36 j$ = 288 n$ = 296 stbi__extend_receive PROC ; COMDAT ; 1855 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 1856 : unsigned int k; ; 1857 : int sgn; ; 1858 : if (j->code_bits < n) 00024 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 0002b 8b 8d 28 01 00 00 mov ecx, DWORD PTR n$[rbp] 00031 39 88 24 48 00 00 cmp DWORD PTR [rax+18468], ecx 00037 7d 0d jge SHORT $LN2@stbi__exte ; 1859 : stbi__grow_buffer_unsafe(j); 00039 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR j$[rbp] 00040 e8 00 00 00 00 call stbi__grow_buffer_unsafe 00045 90 npad 1 $LN2@stbi__exte: ; 1860 : if (j->code_bits < n) 00046 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 0004d 8b 8d 28 01 00 00 mov ecx, DWORD PTR n$[rbp] 00053 39 88 24 48 00 00 cmp DWORD PTR [rax+18468], ecx 00059 7d 07 jge SHORT $LN3@stbi__exte ; 1861 : return 0; // ran out of bits from stream, return 0s intead of continuing 0005b 33 c0 xor eax, eax 0005d e9 b1 00 00 00 jmp $LN1@stbi__exte $LN3@stbi__exte: ; 1862 : ; 1863 : sgn = j->code_buffer >> 00062 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 00069 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 0006f c1 e8 1f shr eax, 31 00072 89 45 24 mov DWORD PTR sgn$[rbp], eax ; 1864 : 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative) ; 1865 : k = stbi_lrot(j->code_buffer, n); 00075 8b 95 28 01 00 00 mov edx, DWORD PTR n$[rbp] 0007b 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 00082 8b 88 20 48 00 00 mov ecx, DWORD PTR [rax+18464] 00088 e8 00 00 00 00 call _lrotl 0008d 89 45 04 mov DWORD PTR k$[rbp], eax ; 1866 : j->code_buffer = k & ~stbi__bmask[n]; 00090 48 63 85 28 01 00 00 movsxd rax, DWORD PTR n$[rbp] 00097 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__bmask 0009e 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] 000a1 f7 d0 not eax 000a3 8b 4d 04 mov ecx, DWORD PTR k$[rbp] 000a6 23 c8 and ecx, eax 000a8 8b c1 mov eax, ecx 000aa 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR j$[rbp] 000b1 89 81 20 48 00 00 mov DWORD PTR [rcx+18464], eax ; 1867 : k &= stbi__bmask[n]; 000b7 48 63 85 28 01 00 00 movsxd rax, DWORD PTR n$[rbp] 000be 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__bmask 000c5 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] 000c8 8b 4d 04 mov ecx, DWORD PTR k$[rbp] 000cb 23 c8 and ecx, eax 000cd 8b c1 mov eax, ecx 000cf 89 45 04 mov DWORD PTR k$[rbp], eax ; 1868 : j->code_bits -= n; 000d2 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 000d9 8b 8d 28 01 00 00 mov ecx, DWORD PTR n$[rbp] 000df 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 000e5 2b c1 sub eax, ecx 000e7 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR j$[rbp] 000ee 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 1869 : return k + (stbi__jbias[n] & (sgn - 1)); 000f4 48 63 85 28 01 00 00 movsxd rax, DWORD PTR n$[rbp] 000fb 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:stbi__jbias 00102 8b 55 24 mov edx, DWORD PTR sgn$[rbp] 00105 ff ca dec edx 00107 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] 0010a 23 c2 and eax, edx 0010c 8b 4d 04 mov ecx, DWORD PTR k$[rbp] 0010f 03 c8 add ecx, eax 00111 8b c1 mov eax, ecx $LN1@stbi__exte: ; 1870 : } 00113 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 0011a 5f pop rdi 0011b 5d pop rbp 0011c c3 ret 0 stbi__extend_receive ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_huff_decode _TEXT SEGMENT temp$ = 4 c$ = 36 k$ = 68 s$1 = 100 tv212 = 312 tv233 = 312 tv242 = 312 tv253 = 312 j$ = 352 h$ = 360 stbi__jpeg_huff_decode PROC ; COMDAT ; 1796 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 1797 : unsigned int temp; ; 1798 : int c, k; ; 1799 : ; 1800 : if (j->code_bits < 16) 00025 48 8b 85 60 01 00 00 mov rax, QWORD PTR j$[rbp] 0002c 83 b8 24 48 00 00 10 cmp DWORD PTR [rax+18468], 16 00033 7d 0d jge SHORT $LN5@stbi__jpeg ; 1801 : stbi__grow_buffer_unsafe(j); 00035 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 0003c e8 00 00 00 00 call stbi__grow_buffer_unsafe 00041 90 npad 1 $LN5@stbi__jpeg: ; 1802 : ; 1803 : // look at the top FAST_BITS and determine what symbol ID it is, ; 1804 : // if the code is <= FAST_BITS ; 1805 : c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); 00042 48 8b 85 60 01 00 00 mov rax, QWORD PTR j$[rbp] 00049 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 0004f c1 e8 17 shr eax, 23 00052 25 ff 01 00 00 and eax, 511 ; 000001ffH 00057 89 45 24 mov DWORD PTR c$[rbp], eax ; 1806 : k = h->fast[c]; 0005a 48 63 45 24 movsxd rax, DWORD PTR c$[rbp] 0005e 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR h$[rbp] 00065 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00069 89 45 44 mov DWORD PTR k$[rbp], eax ; 1807 : if (k < 255) { 0006c 81 7d 44 ff 00 00 00 cmp DWORD PTR k$[rbp], 255 ; 000000ffH 00073 0f 8d 99 00 00 00 jge $LN6@stbi__jpeg ; 1808 : int s = h->size[k]; 00079 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 0007d 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR h$[rbp] 00084 0f b6 84 01 00 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] 0008c 89 45 64 mov DWORD PTR s$1[rbp], eax ; 1809 : if (s > j->code_bits) 0008f 48 8b 85 60 01 00 00 mov rax, QWORD PTR j$[rbp] 00096 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 0009c 39 45 64 cmp DWORD PTR s$1[rbp], eax 0009f 7e 0a jle SHORT $LN7@stbi__jpeg ; 1810 : return -1; 000a1 b8 ff ff ff ff mov eax, -1 000a6 e9 41 02 00 00 jmp $LN1@stbi__jpeg $LN7@stbi__jpeg: ; 1811 : j->code_buffer <<= s; 000ab 8b 45 64 mov eax, DWORD PTR s$1[rbp] 000ae 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 000b5 48 89 8d 38 01 00 00 mov QWORD PTR tv212[rbp], rcx 000bc 0f b6 c8 movzx ecx, al 000bf 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv212[rbp] 000c6 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 000cc d3 e0 shl eax, cl 000ce 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 000d5 89 81 20 48 00 00 mov DWORD PTR [rcx+18464], eax ; 1812 : j->code_bits -= s; 000db 48 8b 85 60 01 00 00 mov rax, QWORD PTR j$[rbp] 000e2 8b 4d 64 mov ecx, DWORD PTR s$1[rbp] 000e5 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 000eb 2b c1 sub eax, ecx 000ed 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 000f4 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 1813 : return h->values[k]; 000fa 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 000fe 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR h$[rbp] 00105 0f b6 84 01 00 04 00 00 movzx eax, BYTE PTR [rcx+rax+1024] 0010d e9 da 01 00 00 jmp $LN1@stbi__jpeg $LN6@stbi__jpeg: ; 1814 : } ; 1815 : ; 1816 : // naive test is to shift the code_buffer down so k bits are ; 1817 : // valid, then test against maxcode. To speed this up, we've ; 1818 : // preshifted maxcode left so that it has (16-k) 0s at the ; 1819 : // end; in other words, regardless of the number of bits, it ; 1820 : // wants to be compared against something shifted to have 16; ; 1821 : // that way we don't need to shift inside the loop. ; 1822 : temp = j->code_buffer >> 16; 00112 48 8b 85 60 01 00 00 mov rax, QWORD PTR j$[rbp] 00119 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 0011f c1 e8 10 shr eax, 16 00122 89 45 04 mov DWORD PTR temp$[rbp], eax ; 1823 : for (k = FAST_BITS + 1;; ++k) 00125 c7 45 44 0a 00 00 00 mov DWORD PTR k$[rbp], 10 0012c eb 08 jmp SHORT $LN4@stbi__jpeg $LN2@stbi__jpeg: 0012e 8b 45 44 mov eax, DWORD PTR k$[rbp] 00131 ff c0 inc eax 00133 89 45 44 mov DWORD PTR k$[rbp], eax $LN4@stbi__jpeg: ; 1824 : if (temp < h->maxcode[k]) 00136 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 0013a 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR h$[rbp] 00141 8b 84 81 04 06 00 00 mov eax, DWORD PTR [rcx+rax*4+1540] 00148 39 45 04 cmp DWORD PTR temp$[rbp], eax 0014b 73 02 jae SHORT $LN8@stbi__jpeg ; 1825 : break; 0014d eb 02 jmp SHORT $LN3@stbi__jpeg $LN8@stbi__jpeg: 0014f eb dd jmp SHORT $LN2@stbi__jpeg $LN3@stbi__jpeg: ; 1826 : if (k == 17) { 00151 83 7d 44 11 cmp DWORD PTR k$[rbp], 17 00155 75 27 jne SHORT $LN9@stbi__jpeg ; 1827 : // error! code not found ; 1828 : j->code_bits -= 16; 00157 48 8b 85 60 01 00 00 mov rax, QWORD PTR j$[rbp] 0015e 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 00164 83 e8 10 sub eax, 16 00167 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 0016e 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 1829 : return -1; 00174 b8 ff ff ff ff mov eax, -1 00179 e9 6e 01 00 00 jmp $LN1@stbi__jpeg $LN9@stbi__jpeg: ; 1830 : } ; 1831 : ; 1832 : if (k > j->code_bits) 0017e 48 8b 85 60 01 00 00 mov rax, QWORD PTR j$[rbp] 00185 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 0018b 39 45 44 cmp DWORD PTR k$[rbp], eax 0018e 7e 0a jle SHORT $LN10@stbi__jpeg ; 1833 : return -1; 00190 b8 ff ff ff ff mov eax, -1 00195 e9 52 01 00 00 jmp $LN1@stbi__jpeg $LN10@stbi__jpeg: ; 1834 : ; 1835 : // convert the huffman code to the symbol id ; 1836 : c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; 0019a b8 20 00 00 00 mov eax, 32 ; 00000020H 0019f 2b 45 44 sub eax, DWORD PTR k$[rbp] 001a2 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 001a9 48 89 8d 38 01 00 00 mov QWORD PTR tv233[rbp], rcx 001b0 0f b6 c8 movzx ecx, al 001b3 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv233[rbp] 001ba 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 001c0 d3 e8 shr eax, cl 001c2 48 63 4d 44 movsxd rcx, DWORD PTR k$[rbp] 001c6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__bmask 001cd 23 04 8a and eax, DWORD PTR [rdx+rcx*4] 001d0 48 63 4d 44 movsxd rcx, DWORD PTR k$[rbp] 001d4 48 8b 95 68 01 00 00 mov rdx, QWORD PTR h$[rbp] 001db 03 84 8a 4c 06 00 00 add eax, DWORD PTR [rdx+rcx*4+1612] 001e2 89 45 24 mov DWORD PTR c$[rbp], eax ; 1837 : if (c < 0 || c >= 256) // symbol id out of bounds! 001e5 83 7d 24 00 cmp DWORD PTR c$[rbp], 0 001e9 7c 09 jl SHORT $LN12@stbi__jpeg 001eb 81 7d 24 00 01 00 00 cmp DWORD PTR c$[rbp], 256 ; 00000100H 001f2 7c 0a jl SHORT $LN11@stbi__jpeg $LN12@stbi__jpeg: ; 1838 : return -1; 001f4 b8 ff ff ff ff mov eax, -1 001f9 e9 ee 00 00 00 jmp $LN1@stbi__jpeg $LN11@stbi__jpeg: ; 1839 : STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == 001fe 48 63 45 24 movsxd rax, DWORD PTR c$[rbp] 00202 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR h$[rbp] 00209 0f b6 84 01 00 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] 00211 b9 20 00 00 00 mov ecx, 32 ; 00000020H 00216 2b c8 sub ecx, eax 00218 8b c1 mov eax, ecx 0021a 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 00221 48 89 8d 38 01 00 00 mov QWORD PTR tv242[rbp], rcx 00228 0f b6 c8 movzx ecx, al 0022b 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv242[rbp] 00232 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 00238 d3 e8 shr eax, cl 0023a 48 63 4d 24 movsxd rcx, DWORD PTR c$[rbp] 0023e 48 8b 95 68 01 00 00 mov rdx, QWORD PTR h$[rbp] 00245 0f b6 8c 0a 00 05 00 00 movzx ecx, BYTE PTR [rdx+rcx+1280] 0024d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__bmask 00254 23 04 8a and eax, DWORD PTR [rdx+rcx*4] 00257 48 63 4d 24 movsxd rcx, DWORD PTR c$[rbp] 0025b 48 8b 95 68 01 00 00 mov rdx, QWORD PTR h$[rbp] 00262 0f b7 8c 4a 00 02 00 00 movzx ecx, WORD PTR [rdx+rcx*2+512] 0026a 3b c1 cmp eax, ecx 0026c 74 1c je SHORT $LN14@stbi__jpeg 0026e 41 b8 30 07 00 00 mov r8d, 1840 ; 00000730H 00274 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 0027b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1KE@JGKPJEBO@?$AA?$CI?$AA?$CI?$AA?$CI?$AAj?$AA?9?$AA?$DO?$AAc?$AAo?$AAd?$AAe?$AA_?$AAb?$AAu?$AAf?$AAf@ 00282 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00288 33 c0 xor eax, eax $LN14@stbi__jpeg: ; 1840 : h->code[c]); ; 1841 : ; 1842 : // convert the id to a symbol ; 1843 : j->code_bits -= k; 0028a 48 8b 85 60 01 00 00 mov rax, QWORD PTR j$[rbp] 00291 8b 4d 44 mov ecx, DWORD PTR k$[rbp] 00294 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 0029a 2b c1 sub eax, ecx 0029c 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 002a3 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 1844 : j->code_buffer <<= k; 002a9 8b 45 44 mov eax, DWORD PTR k$[rbp] 002ac 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 002b3 48 89 8d 38 01 00 00 mov QWORD PTR tv253[rbp], rcx 002ba 0f b6 c8 movzx ecx, al 002bd 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv253[rbp] 002c4 8b 80 20 48 00 00 mov eax, DWORD PTR [rax+18464] 002ca d3 e0 shl eax, cl 002cc 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR j$[rbp] 002d3 89 81 20 48 00 00 mov DWORD PTR [rcx+18464], eax ; 1845 : return h->values[c]; 002d9 48 63 45 24 movsxd rax, DWORD PTR c$[rbp] 002dd 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR h$[rbp] 002e4 0f b6 84 01 00 04 00 00 movzx eax, BYTE PTR [rcx+rax+1024] $LN1@stbi__jpeg: ; 1846 : } 002ec 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 002f3 5f pop rdi 002f4 5d pop rbp 002f5 c3 ret 0 stbi__jpeg_huff_decode ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__grow_buffer_unsafe _TEXT SEGMENT b$1 = 4 c$2 = 36 tv70 = 244 j$ = 288 stbi__grow_buffer_unsafe PROC ; COMDAT ; 1772 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 $LN4@stbi__grow: ; 1773 : do { ; 1774 : unsigned int b = j->nomore ? 0 : stbi__get8(j->s); 00020 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 00027 83 b8 2c 48 00 00 00 cmp DWORD PTR [rax+18476], 0 0002e 74 0c je SHORT $LN10@stbi__grow 00030 c7 85 f4 00 00 00 00 00 00 00 mov DWORD PTR tv70[rbp], 0 0003a eb 18 jmp SHORT $LN11@stbi__grow $LN10@stbi__grow: 0003c 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 00043 48 8b 08 mov rcx, QWORD PTR [rax] 00046 e8 00 00 00 00 call stbi__get8 0004b 0f b6 c0 movzx eax, al 0004e 89 85 f4 00 00 00 mov DWORD PTR tv70[rbp], eax $LN11@stbi__grow: 00054 8b 85 f4 00 00 00 mov eax, DWORD PTR tv70[rbp] 0005a 89 45 04 mov DWORD PTR b$1[rbp], eax ; 1775 : if (b == 0xff) { 0005d 81 7d 04 ff 00 00 00 cmp DWORD PTR b$1[rbp], 255 ; 000000ffH 00064 75 5f jne SHORT $LN7@stbi__grow ; 1776 : int c = stbi__get8(j->s); 00066 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 0006d 48 8b 08 mov rcx, QWORD PTR [rax] 00070 e8 00 00 00 00 call stbi__get8 00075 0f b6 c0 movzx eax, al 00078 89 45 24 mov DWORD PTR c$2[rbp], eax $LN5@stbi__grow: ; 1777 : while (c == 0xff) 0007b 81 7d 24 ff 00 00 00 cmp DWORD PTR c$2[rbp], 255 ; 000000ffH 00082 75 17 jne SHORT $LN6@stbi__grow ; 1778 : c = stbi__get8(j->s); // consume fill bytes 00084 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 0008b 48 8b 08 mov rcx, QWORD PTR [rax] 0008e e8 00 00 00 00 call stbi__get8 00093 0f b6 c0 movzx eax, al 00096 89 45 24 mov DWORD PTR c$2[rbp], eax 00099 eb e0 jmp SHORT $LN5@stbi__grow $LN6@stbi__grow: ; 1779 : if (c != 0) { 0009b 83 7d 24 00 cmp DWORD PTR c$2[rbp], 0 0009f 74 24 je SHORT $LN8@stbi__grow ; 1780 : j->marker = (unsigned char)c; 000a1 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 000a8 0f b6 4d 24 movzx ecx, BYTE PTR c$2[rbp] 000ac 88 88 28 48 00 00 mov BYTE PTR [rax+18472], cl ; 1781 : j->nomore = 1; 000b2 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 000b9 c7 80 2c 48 00 00 01 00 00 00 mov DWORD PTR [rax+18476], 1 ; 1782 : return; 000c3 eb 6b jmp SHORT $LN1@stbi__grow $LN8@stbi__grow: $LN7@stbi__grow: ; 1783 : } ; 1784 : } ; 1785 : j->code_buffer |= b << (24 - j->code_bits); 000c5 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 000cc b9 18 00 00 00 mov ecx, 24 000d1 2b 88 24 48 00 00 sub ecx, DWORD PTR [rax+18468] 000d7 8b c1 mov eax, ecx 000d9 0f b6 c8 movzx ecx, al 000dc 8b 45 04 mov eax, DWORD PTR b$1[rbp] 000df d3 e0 shl eax, cl 000e1 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR j$[rbp] 000e8 8b 89 20 48 00 00 mov ecx, DWORD PTR [rcx+18464] 000ee 0b c8 or ecx, eax 000f0 8b c1 mov eax, ecx 000f2 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR j$[rbp] 000f9 89 81 20 48 00 00 mov DWORD PTR [rcx+18464], eax ; 1786 : j->code_bits += 8; 000ff 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 00106 8b 80 24 48 00 00 mov eax, DWORD PTR [rax+18468] 0010c 83 c0 08 add eax, 8 0010f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR j$[rbp] 00116 89 81 24 48 00 00 mov DWORD PTR [rcx+18468], eax ; 1787 : } while (j->code_bits <= 24); 0011c 48 8b 85 20 01 00 00 mov rax, QWORD PTR j$[rbp] 00123 83 b8 24 48 00 00 18 cmp DWORD PTR [rax+18468], 24 0012a 0f 8e f0 fe ff ff jle $LN4@stbi__grow $LN1@stbi__grow: ; 1788 : } 00130 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 00137 5f pop rdi 00138 5d pop rbp 00139 c3 ret 0 stbi__grow_buffer_unsafe ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__build_fast_ac _TEXT SEGMENT i$ = 4 fast$1 = 36 rs$2 = 68 run$3 = 100 magbits$4 = 132 len$5 = 164 k$6 = 196 m$7 = 228 tv174 = 436 tv178 = 436 fast_ac$ = 480 h$ = 488 stbi__build_fast_ac PROC ; COMDAT ; 1744 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 1745 : int i; ; 1746 : for (i = 0; i < (1 << FAST_BITS); ++i) { 00025 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 0002c eb 08 jmp SHORT $LN4@stbi__buil $LN2@stbi__buil: 0002e 8b 45 04 mov eax, DWORD PTR i$[rbp] 00031 ff c0 inc eax 00033 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__buil: 00036 81 7d 04 00 02 00 00 cmp DWORD PTR i$[rbp], 512 ; 00000200H 0003d 0f 8d 6b 01 00 00 jge $LN3@stbi__buil ; 1747 : stbi_uc fast = h->fast[i]; 00043 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00047 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR h$[rbp] 0004e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00052 88 45 24 mov BYTE PTR fast$1[rbp], al ; 1748 : fast_ac[i] = 0; 00055 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00059 33 c9 xor ecx, ecx 0005b 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR fast_ac$[rbp] 00062 66 89 0c 42 mov WORD PTR [rdx+rax*2], cx ; 1749 : if (fast < 255) { 00066 0f b6 45 24 movzx eax, BYTE PTR fast$1[rbp] 0006a 3d ff 00 00 00 cmp eax, 255 ; 000000ffH 0006f 0f 8d 34 01 00 00 jge $LN5@stbi__buil ; 1750 : int rs = h->values[fast]; 00075 0f b6 45 24 movzx eax, BYTE PTR fast$1[rbp] 00079 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR h$[rbp] 00080 0f b6 84 01 00 04 00 00 movzx eax, BYTE PTR [rcx+rax+1024] 00088 89 45 44 mov DWORD PTR rs$2[rbp], eax ; 1751 : int run = (rs >> 4) & 15; 0008b 8b 45 44 mov eax, DWORD PTR rs$2[rbp] 0008e c1 f8 04 sar eax, 4 00091 83 e0 0f and eax, 15 00094 89 45 64 mov DWORD PTR run$3[rbp], eax ; 1752 : int magbits = rs & 15; 00097 8b 45 44 mov eax, DWORD PTR rs$2[rbp] 0009a 83 e0 0f and eax, 15 0009d 89 85 84 00 00 00 mov DWORD PTR magbits$4[rbp], eax ; 1753 : int len = h->size[fast]; 000a3 0f b6 45 24 movzx eax, BYTE PTR fast$1[rbp] 000a7 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR h$[rbp] 000ae 0f b6 84 01 00 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] 000b6 89 85 a4 00 00 00 mov DWORD PTR len$5[rbp], eax ; 1754 : ; 1755 : if (magbits && len + magbits <= FAST_BITS) { 000bc 83 bd 84 00 00 00 00 cmp DWORD PTR magbits$4[rbp], 0 000c3 0f 84 e0 00 00 00 je $LN6@stbi__buil 000c9 8b 85 84 00 00 00 mov eax, DWORD PTR magbits$4[rbp] 000cf 8b 8d a4 00 00 00 mov ecx, DWORD PTR len$5[rbp] 000d5 03 c8 add ecx, eax 000d7 8b c1 mov eax, ecx 000d9 83 f8 09 cmp eax, 9 000dc 0f 8f c7 00 00 00 jg $LN6@stbi__buil ; 1756 : // magnitude code followed by receive_extend code ; 1757 : int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> 000e2 8b 85 a4 00 00 00 mov eax, DWORD PTR len$5[rbp] 000e8 0f b6 c8 movzx ecx, al 000eb 8b 45 04 mov eax, DWORD PTR i$[rbp] 000ee d3 e0 shl eax, cl 000f0 25 ff 01 00 00 and eax, 511 ; 000001ffH 000f5 b9 09 00 00 00 mov ecx, 9 000fa 2b 8d 84 00 00 00 sub ecx, DWORD PTR magbits$4[rbp] 00100 d3 f8 sar eax, cl 00102 89 85 c4 00 00 00 mov DWORD PTR k$6[rbp], eax ; 1758 : (FAST_BITS - magbits); ; 1759 : int m = 1 << (magbits - 1); 00108 8b 85 84 00 00 00 mov eax, DWORD PTR magbits$4[rbp] 0010e ff c8 dec eax 00110 b9 01 00 00 00 mov ecx, 1 00115 89 8d b4 01 00 00 mov DWORD PTR tv174[rbp], ecx 0011b 0f b6 c8 movzx ecx, al 0011e 8b 85 b4 01 00 00 mov eax, DWORD PTR tv174[rbp] 00124 d3 e0 shl eax, cl 00126 89 85 e4 00 00 00 mov DWORD PTR m$7[rbp], eax ; 1760 : if (k < m) 0012c 8b 85 e4 00 00 00 mov eax, DWORD PTR m$7[rbp] 00132 39 85 c4 00 00 00 cmp DWORD PTR k$6[rbp], eax 00138 7d 2c jge SHORT $LN7@stbi__buil ; 1761 : k += (~0U << magbits) + 1; 0013a 8b 85 84 00 00 00 mov eax, DWORD PTR magbits$4[rbp] 00140 b9 ff ff ff ff mov ecx, -1 ; ffffffffH 00145 89 8d b4 01 00 00 mov DWORD PTR tv178[rbp], ecx 0014b 0f b6 c8 movzx ecx, al 0014e 8b 85 b4 01 00 00 mov eax, DWORD PTR tv178[rbp] 00154 d3 e0 shl eax, cl 00156 8b 8d c4 00 00 00 mov ecx, DWORD PTR k$6[rbp] 0015c 8d 44 01 01 lea eax, DWORD PTR [rcx+rax+1] 00160 89 85 c4 00 00 00 mov DWORD PTR k$6[rbp], eax $LN7@stbi__buil: ; 1762 : // if the result is small enough, we can fit it in fast_ac table ; 1763 : if (k >= -128 && k <= 127) 00166 83 bd c4 00 00 00 80 cmp DWORD PTR k$6[rbp], -128 ; ffffffffffffff80H 0016d 7c 3a jl SHORT $LN8@stbi__buil 0016f 83 bd c4 00 00 00 7f cmp DWORD PTR k$6[rbp], 127 ; 0000007fH 00176 7f 31 jg SHORT $LN8@stbi__buil ; 1764 : fast_ac[i] = (stbi__int16)((k * 256) + (run * 16) + 00178 69 85 c4 00 00 00 00 01 00 00 imul eax, DWORD PTR k$6[rbp], 256 ; 00000100H 00182 6b 4d 64 10 imul ecx, DWORD PTR run$3[rbp], 16 00186 03 c1 add eax, ecx 00188 8b 8d 84 00 00 00 mov ecx, DWORD PTR magbits$4[rbp] 0018e 8b 95 a4 00 00 00 mov edx, DWORD PTR len$5[rbp] 00194 03 d1 add edx, ecx 00196 8b ca mov ecx, edx 00198 03 c1 add eax, ecx 0019a 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 0019e 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR fast_ac$[rbp] 001a5 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax $LN8@stbi__buil: $LN6@stbi__buil: $LN5@stbi__buil: ; 1765 : (len + magbits)); ; 1766 : } ; 1767 : } ; 1768 : } 001a9 e9 80 fe ff ff jmp $LN2@stbi__buil $LN3@stbi__buil: ; 1769 : } 001ae 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 001b5 5f pop rdi 001b6 5d pop rbp 001b7 c3 ret 0 stbi__build_fast_ac ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__build_huffman _TEXT SEGMENT i$ = 4 j$ = 36 k$ = 68 code$ = 100 s$1 = 132 c$2 = 164 m$3 = 196 tv238 = 404 h$ = 448 count$ = 456 stbi__build_huffman PROC ; COMDAT ; 1695 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec c8 01 00 00 sub rsp, 456 ; 000001c8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 1696 : int i, j, k = 0; 00025 c7 45 44 00 00 00 00 mov DWORD PTR k$[rbp], 0 ; 1697 : unsigned int code; ; 1698 : // build size list for each symbol (from JPEG spec) ; 1699 : for (i = 0; i < 16; ++i) { 0002c c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00033 eb 08 jmp SHORT $LN4@stbi__buil $LN2@stbi__buil: 00035 8b 45 04 mov eax, DWORD PTR i$[rbp] 00038 ff c0 inc eax 0003a 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__buil: 0003d 83 7d 04 10 cmp DWORD PTR i$[rbp], 16 00041 7d 61 jge SHORT $LN3@stbi__buil ; 1700 : for (j = 0; j < count[i]; ++j) { 00043 c7 45 24 00 00 00 00 mov DWORD PTR j$[rbp], 0 0004a eb 08 jmp SHORT $LN7@stbi__buil $LN5@stbi__buil: 0004c 8b 45 24 mov eax, DWORD PTR j$[rbp] 0004f ff c0 inc eax 00051 89 45 24 mov DWORD PTR j$[rbp], eax $LN7@stbi__buil: 00054 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00058 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR count$[rbp] 0005f 8b 04 81 mov eax, DWORD PTR [rcx+rax*4] 00062 39 45 24 cmp DWORD PTR j$[rbp], eax 00065 7d 3b jge SHORT $LN6@stbi__buil ; 1701 : h->size[k++] = (stbi_uc)(i + 1); 00067 8b 45 04 mov eax, DWORD PTR i$[rbp] 0006a ff c0 inc eax 0006c 48 63 4d 44 movsxd rcx, DWORD PTR k$[rbp] 00070 48 8b 95 c0 01 00 00 mov rdx, QWORD PTR h$[rbp] 00077 88 84 0a 00 05 00 00 mov BYTE PTR [rdx+rcx+1280], al 0007e 8b 45 44 mov eax, DWORD PTR k$[rbp] 00081 ff c0 inc eax 00083 89 45 44 mov DWORD PTR k$[rbp], eax ; 1702 : if (k >= 257) 00086 81 7d 44 01 01 00 00 cmp DWORD PTR k$[rbp], 257 ; 00000101H 0008d 7c 11 jl SHORT $LN19@stbi__buil ; 1703 : return stbi__err("bad size list", "Corrupt JPEG"); 0008f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@DEFOLMLB@bad?5size?5list@ 00096 e8 00 00 00 00 call stbi__err 0009b e9 10 02 00 00 jmp $LN1@stbi__buil $LN19@stbi__buil: ; 1704 : } 000a0 eb aa jmp SHORT $LN5@stbi__buil $LN6@stbi__buil: ; 1705 : } 000a2 eb 91 jmp SHORT $LN2@stbi__buil $LN3@stbi__buil: ; 1706 : h->size[k] = 0; 000a4 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 000a8 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR h$[rbp] 000af c6 84 01 00 05 00 00 00 mov BYTE PTR [rcx+rax+1280], 0 ; 1707 : ; 1708 : // compute actual symbols (from jpeg spec) ; 1709 : code = 0; 000b7 c7 45 64 00 00 00 00 mov DWORD PTR code$[rbp], 0 ; 1710 : k = 0; 000be c7 45 44 00 00 00 00 mov DWORD PTR k$[rbp], 0 ; 1711 : for (j = 1; j <= 16; ++j) { 000c5 c7 45 24 01 00 00 00 mov DWORD PTR j$[rbp], 1 000cc eb 08 jmp SHORT $LN10@stbi__buil $LN8@stbi__buil: 000ce 8b 45 24 mov eax, DWORD PTR j$[rbp] 000d1 ff c0 inc eax 000d3 89 45 24 mov DWORD PTR j$[rbp], eax $LN10@stbi__buil: 000d6 83 7d 24 10 cmp DWORD PTR j$[rbp], 16 000da 0f 8f ca 00 00 00 jg $LN9@stbi__buil ; 1712 : // compute delta to add to code to compute symbol id ; 1713 : h->delta[j] = k - code; 000e0 8b 45 64 mov eax, DWORD PTR code$[rbp] 000e3 8b 4d 44 mov ecx, DWORD PTR k$[rbp] 000e6 2b c8 sub ecx, eax 000e8 8b c1 mov eax, ecx 000ea 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] 000ee 48 8b 95 c0 01 00 00 mov rdx, QWORD PTR h$[rbp] 000f5 89 84 8a 4c 06 00 00 mov DWORD PTR [rdx+rcx*4+1612], eax ; 1714 : if (h->size[k] == j) { 000fc 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 00100 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR h$[rbp] 00107 0f b6 84 01 00 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] 0010f 3b 45 24 cmp eax, DWORD PTR j$[rbp] 00112 75 67 jne SHORT $LN20@stbi__buil $LN11@stbi__buil: ; 1715 : while (h->size[k] == j) 00114 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 00118 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR h$[rbp] 0011f 0f b6 84 01 00 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] 00127 3b 45 24 cmp eax, DWORD PTR j$[rbp] 0012a 75 29 jne SHORT $LN12@stbi__buil ; 1716 : h->code[k++] = (stbi__uint16)(code++); 0012c 48 63 45 44 movsxd rax, DWORD PTR k$[rbp] 00130 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR h$[rbp] 00137 0f b7 55 64 movzx edx, WORD PTR code$[rbp] 0013b 66 89 94 41 00 02 00 00 mov WORD PTR [rcx+rax*2+512], dx 00143 8b 45 44 mov eax, DWORD PTR k$[rbp] 00146 ff c0 inc eax 00148 89 45 44 mov DWORD PTR k$[rbp], eax 0014b 8b 45 64 mov eax, DWORD PTR code$[rbp] 0014e ff c0 inc eax 00150 89 45 64 mov DWORD PTR code$[rbp], eax 00153 eb bf jmp SHORT $LN11@stbi__buil $LN12@stbi__buil: ; 1717 : if (code - 1 >= (1u << j)) 00155 8b 45 64 mov eax, DWORD PTR code$[rbp] 00158 ff c8 dec eax 0015a 8b 4d 24 mov ecx, DWORD PTR j$[rbp] 0015d ba 01 00 00 00 mov edx, 1 00162 d3 e2 shl edx, cl 00164 8b ca mov ecx, edx 00166 3b c1 cmp eax, ecx 00168 72 11 jb SHORT $LN21@stbi__buil ; 1718 : return stbi__err("bad code lengths", "Corrupt JPEG"); 0016a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FOKGPEKG@bad?5code?5lengths@ 00171 e8 00 00 00 00 call stbi__err 00176 e9 35 01 00 00 jmp $LN1@stbi__buil $LN21@stbi__buil: $LN20@stbi__buil: ; 1719 : } ; 1720 : // compute largest code + 1 for this size, preshifted as needed later ; 1721 : h->maxcode[j] = code << (16 - j); 0017b b8 10 00 00 00 mov eax, 16 00180 2b 45 24 sub eax, DWORD PTR j$[rbp] 00183 0f b6 c8 movzx ecx, al 00186 8b 45 64 mov eax, DWORD PTR code$[rbp] 00189 d3 e0 shl eax, cl 0018b 48 63 4d 24 movsxd rcx, DWORD PTR j$[rbp] 0018f 48 8b 95 c0 01 00 00 mov rdx, QWORD PTR h$[rbp] 00196 89 84 8a 04 06 00 00 mov DWORD PTR [rdx+rcx*4+1540], eax ; 1722 : code <<= 1; 0019d 8b 45 64 mov eax, DWORD PTR code$[rbp] 001a0 d1 e0 shl eax, 1 001a2 89 45 64 mov DWORD PTR code$[rbp], eax ; 1723 : } 001a5 e9 24 ff ff ff jmp $LN8@stbi__buil $LN9@stbi__buil: ; 1724 : h->maxcode[j] = 0xffffffff; 001aa 48 63 45 24 movsxd rax, DWORD PTR j$[rbp] 001ae 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR h$[rbp] 001b5 c7 84 81 04 06 00 00 ff ff ff ff mov DWORD PTR [rcx+rax*4+1540], -1 ; ffffffffH ; 1725 : ; 1726 : // build non-spec acceleration table; 255 is flag for not-accelerated ; 1727 : memset(h->fast, 255, 1 << FAST_BITS); 001c0 48 8b 85 c0 01 00 00 mov rax, QWORD PTR h$[rbp] 001c7 41 b8 00 02 00 00 mov r8d, 512 ; 00000200H 001cd ba ff 00 00 00 mov edx, 255 ; 000000ffH 001d2 48 8b c8 mov rcx, rax 001d5 e8 00 00 00 00 call memset 001da 90 npad 1 ; 1728 : for (i = 0; i < k; ++i) { 001db c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 001e2 eb 08 jmp SHORT $LN15@stbi__buil $LN13@stbi__buil: 001e4 8b 45 04 mov eax, DWORD PTR i$[rbp] 001e7 ff c0 inc eax 001e9 89 45 04 mov DWORD PTR i$[rbp], eax $LN15@stbi__buil: 001ec 8b 45 44 mov eax, DWORD PTR k$[rbp] 001ef 39 45 04 cmp DWORD PTR i$[rbp], eax 001f2 0f 8d b3 00 00 00 jge $LN14@stbi__buil ; 1729 : int s = h->size[i]; 001f8 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 001fc 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR h$[rbp] 00203 0f b6 84 01 00 05 00 00 movzx eax, BYTE PTR [rcx+rax+1280] 0020b 89 85 84 00 00 00 mov DWORD PTR s$1[rbp], eax ; 1730 : if (s <= FAST_BITS) { 00211 83 bd 84 00 00 00 09 cmp DWORD PTR s$1[rbp], 9 00218 0f 8f 88 00 00 00 jg $LN22@stbi__buil ; 1731 : int c = h->code[i] << (FAST_BITS - s); 0021e 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00222 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR h$[rbp] 00229 0f b7 84 41 00 02 00 00 movzx eax, WORD PTR [rcx+rax*2+512] 00231 b9 09 00 00 00 mov ecx, 9 00236 2b 8d 84 00 00 00 sub ecx, DWORD PTR s$1[rbp] 0023c d3 e0 shl eax, cl 0023e 89 85 a4 00 00 00 mov DWORD PTR c$2[rbp], eax ; 1732 : int m = 1 << (FAST_BITS - s); 00244 b8 09 00 00 00 mov eax, 9 00249 2b 85 84 00 00 00 sub eax, DWORD PTR s$1[rbp] 0024f b9 01 00 00 00 mov ecx, 1 00254 89 8d 94 01 00 00 mov DWORD PTR tv238[rbp], ecx 0025a 0f b6 c8 movzx ecx, al 0025d 8b 85 94 01 00 00 mov eax, DWORD PTR tv238[rbp] 00263 d3 e0 shl eax, cl 00265 89 85 c4 00 00 00 mov DWORD PTR m$3[rbp], eax ; 1733 : for (j = 0; j < m; ++j) { 0026b c7 45 24 00 00 00 00 mov DWORD PTR j$[rbp], 0 00272 eb 08 jmp SHORT $LN18@stbi__buil $LN16@stbi__buil: 00274 8b 45 24 mov eax, DWORD PTR j$[rbp] 00277 ff c0 inc eax 00279 89 45 24 mov DWORD PTR j$[rbp], eax $LN18@stbi__buil: 0027c 8b 85 c4 00 00 00 mov eax, DWORD PTR m$3[rbp] 00282 39 45 24 cmp DWORD PTR j$[rbp], eax 00285 7d 1f jge SHORT $LN17@stbi__buil ; 1734 : h->fast[c + j] = (stbi_uc)i; 00287 8b 45 24 mov eax, DWORD PTR j$[rbp] 0028a 8b 8d a4 00 00 00 mov ecx, DWORD PTR c$2[rbp] 00290 03 c8 add ecx, eax 00292 8b c1 mov eax, ecx 00294 48 98 cdqe 00296 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR h$[rbp] 0029d 0f b6 55 04 movzx edx, BYTE PTR i$[rbp] 002a1 88 14 01 mov BYTE PTR [rcx+rax], dl ; 1735 : } 002a4 eb ce jmp SHORT $LN16@stbi__buil $LN17@stbi__buil: $LN22@stbi__buil: ; 1736 : } ; 1737 : } 002a6 e9 39 ff ff ff jmp $LN13@stbi__buil $LN14@stbi__buil: ; 1738 : return 1; 002ab b8 01 00 00 00 mov eax, 1 $LN1@stbi__buil: ; 1739 : } 002b0 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] 002b7 5f pop rdi 002b8 5d pop rbp 002b9 c3 ret 0 stbi__build_huffman ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__convert_format16 _TEXT SEGMENT i$ = 4 j$ = 36 good$ = 72 src$1 = 104 dest$2 = 136 tv129 = 340 tv261 = 340 tv281 = 340 tv303 = 340 tv323 = 340 tv82 = 344 tv356 = 344 data$ = 384 img_n$ = 392 req_comp$ = 400 x$ = 408 y$ = 416 stbi__convert_format16 PROC ; COMDAT ; 1416 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002d 90 npad 1 ; 1417 : int i, j; ; 1418 : stbi__uint16 *good; ; 1419 : ; 1420 : if (req_comp == img_n) 0002e 8b 85 88 01 00 00 mov eax, DWORD PTR img_n$[rbp] 00034 39 85 90 01 00 00 cmp DWORD PTR req_comp$[rbp], eax 0003a 75 0c jne SHORT $LN43@stbi__conv ; 1421 : return data; 0003c 48 8b 85 80 01 00 00 mov rax, QWORD PTR data$[rbp] 00043 e9 37 0a 00 00 jmp $LN1@stbi__conv $LN43@stbi__conv: ; 1422 : STBI_ASSERT(req_comp >= 1 && req_comp <= 4); 00048 83 bd 90 01 00 00 01 cmp DWORD PTR req_comp$[rbp], 1 0004f 7c 09 jl SHORT $LN59@stbi__conv 00051 83 bd 90 01 00 00 04 cmp DWORD PTR req_comp$[rbp], 4 00058 7e 1c jle SHORT $LN60@stbi__conv $LN59@stbi__conv: 0005a 41 b8 8e 05 00 00 mov r8d, 1422 ; 0000058eH 00060 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00067 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ 0006e ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00074 33 c0 xor eax, eax $LN60@stbi__conv: ; 1423 : ; 1424 : good = (stbi__uint16 *)stbi__malloc(req_comp * x * y * 2); 00076 8b 85 90 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 0007c 0f af 85 98 01 00 00 imul eax, DWORD PTR x$[rbp] 00083 0f af 85 a0 01 00 00 imul eax, DWORD PTR y$[rbp] 0008a d1 e0 shl eax, 1 0008c 8b c0 mov eax, eax 0008e 8b c8 mov ecx, eax 00090 e8 00 00 00 00 call stbi__malloc 00095 48 89 45 48 mov QWORD PTR good$[rbp], rax ; 1425 : if (good == NULL) { 00099 48 83 7d 48 00 cmp QWORD PTR good$[rbp], 0 0009e 75 42 jne SHORT $LN44@stbi__conv ; 1426 : STBI_FREE(data); 000a0 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR data$[rbp] 000a7 ff 15 00 00 00 00 call QWORD PTR __imp_free 000ad 90 npad 1 ; 1427 : return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory"); 000ae 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 000b5 e8 00 00 00 00 call stbi__err 000ba 85 c0 test eax, eax 000bc 74 0d je SHORT $LN61@stbi__conv 000be 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv82[rbp], 0 000c9 eb 0b jmp SHORT $LN62@stbi__conv $LN61@stbi__conv: 000cb 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv82[rbp], 0 $LN62@stbi__conv: 000d6 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv82[rbp] 000dd e9 9d 09 00 00 jmp $LN1@stbi__conv $LN44@stbi__conv: ; 1428 : } ; 1429 : ; 1430 : for (j = 0; j < (int)y; ++j) { 000e2 c7 45 24 00 00 00 00 mov DWORD PTR j$[rbp], 0 000e9 eb 08 jmp SHORT $LN4@stbi__conv $LN2@stbi__conv: 000eb 8b 45 24 mov eax, DWORD PTR j$[rbp] 000ee ff c0 inc eax 000f0 89 45 24 mov DWORD PTR j$[rbp], eax $LN4@stbi__conv: 000f3 8b 85 a0 01 00 00 mov eax, DWORD PTR y$[rbp] 000f9 39 45 24 cmp DWORD PTR j$[rbp], eax 000fc 0f 8d 6b 09 00 00 jge $LN3@stbi__conv ; 1431 : stbi__uint16 *src = data + j * x * img_n; 00102 8b 45 24 mov eax, DWORD PTR j$[rbp] 00105 0f af 85 98 01 00 00 imul eax, DWORD PTR x$[rbp] 0010c 0f af 85 88 01 00 00 imul eax, DWORD PTR img_n$[rbp] 00113 8b c0 mov eax, eax 00115 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR data$[rbp] 0011c 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] 00120 48 89 45 68 mov QWORD PTR src$1[rbp], rax ; 1432 : stbi__uint16 *dest = good + j * x * req_comp; 00124 8b 45 24 mov eax, DWORD PTR j$[rbp] 00127 0f af 85 98 01 00 00 imul eax, DWORD PTR x$[rbp] 0012e 0f af 85 90 01 00 00 imul eax, DWORD PTR req_comp$[rbp] 00135 8b c0 mov eax, eax 00137 48 8b 4d 48 mov rcx, QWORD PTR good$[rbp] 0013b 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] 0013f 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax ; 1433 : ; 1434 : #define STBI__COMBO(a, b) ((a) * 8 + (b)) ; 1435 : #define STBI__CASE(a, b) \ ; 1436 : case STBI__COMBO(a, b): \ ; 1437 : for (i = x - 1; i >= 0; --i, src += a, dest += b) ; 1438 : // convert source image with img_n components to one with req_comp components; ; 1439 : // avoid switch per pixel, so use switch per scanline and massive macros ; 1440 : switch (STBI__COMBO(img_n, req_comp)) { 00146 8b 85 90 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 0014c 8b 8d 88 01 00 00 mov ecx, DWORD PTR img_n$[rbp] 00152 8d 04 c8 lea eax, DWORD PTR [rax+rcx*8] 00155 89 85 54 01 00 00 mov DWORD PTR tv129[rbp], eax 0015b 8b 85 54 01 00 00 mov eax, DWORD PTR tv129[rbp] 00161 83 e8 0a sub eax, 10 00164 89 85 54 01 00 00 mov DWORD PTR tv129[rbp], eax 0016a 83 bd 54 01 00 00 19 cmp DWORD PTR tv129[rbp], 25 00171 0f 87 85 08 00 00 ja $LN57@stbi__conv 00177 48 63 85 54 01 00 00 movsxd rax, DWORD PTR tv129[rbp] 0017e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase 00185 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN66@stbi__conv[rcx+rax*4] 0018c 48 03 c1 add rax, rcx 0018f ff e0 jmp rax $LN45@stbi__conv: ; 1441 : STBI__CASE(1, 2) 00191 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00197 ff c8 dec eax 00199 89 45 04 mov DWORD PTR i$[rbp], eax 0019c eb 26 jmp SHORT $LN9@stbi__conv $LN7@stbi__conv: 0019e 8b 45 04 mov eax, DWORD PTR i$[rbp] 001a1 ff c8 dec eax 001a3 89 45 04 mov DWORD PTR i$[rbp], eax 001a6 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 001aa 48 83 c0 02 add rax, 2 001ae 48 89 45 68 mov QWORD PTR src$1[rbp], rax 001b2 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 001b9 48 83 c0 04 add rax, 4 001bd 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN9@stbi__conv: 001c4 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 001c8 7c 41 jl SHORT $LN8@stbi__conv ; 1442 : { ; 1443 : dest[0] = src[0]; 001ca b8 02 00 00 00 mov eax, 2 001cf 48 6b c0 00 imul rax, rax, 0 001d3 b9 02 00 00 00 mov ecx, 2 001d8 48 6b c9 00 imul rcx, rcx, 0 001dc 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 001e3 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 001e7 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 001ec 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1444 : dest[1] = 0xffff; 001f0 b8 02 00 00 00 mov eax, 2 001f5 48 6b c0 01 imul rax, rax, 1 001f9 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH 001fe 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00205 66 89 0c 02 mov WORD PTR [rdx+rax], cx ; 1445 : } 00209 eb 93 jmp SHORT $LN7@stbi__conv $LN8@stbi__conv: ; 1446 : break; 0020b e9 58 08 00 00 jmp $LN5@stbi__conv $LN46@stbi__conv: ; 1447 : STBI__CASE(1, 3) 00210 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00216 ff c8 dec eax 00218 89 45 04 mov DWORD PTR i$[rbp], eax 0021b eb 26 jmp SHORT $LN12@stbi__conv $LN10@stbi__conv: 0021d 8b 45 04 mov eax, DWORD PTR i$[rbp] 00220 ff c8 dec eax 00222 89 45 04 mov DWORD PTR i$[rbp], eax 00225 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00229 48 83 c0 02 add rax, 2 0022d 48 89 45 68 mov QWORD PTR src$1[rbp], rax 00231 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 00238 48 83 c0 06 add rax, 6 0023c 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN12@stbi__conv: 00243 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 00247 7c 7d jl SHORT $LN11@stbi__conv ; 1448 : { ; 1449 : dest[0] = dest[1] = dest[2] = src[0]; 00249 b8 02 00 00 00 mov eax, 2 0024e 48 6b c0 00 imul rax, rax, 0 00252 b9 02 00 00 00 mov ecx, 2 00257 48 6b c9 02 imul rcx, rcx, 2 0025b 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00262 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00266 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 0026b 66 89 04 0a mov WORD PTR [rdx+rcx], ax 0026f b8 02 00 00 00 mov eax, 2 00274 48 6b c0 02 imul rax, rax, 2 00278 b9 02 00 00 00 mov ecx, 2 0027d 48 6b c9 01 imul rcx, rcx, 1 00281 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00288 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 0028f 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 00294 66 89 04 0a mov WORD PTR [rdx+rcx], ax 00298 b8 02 00 00 00 mov eax, 2 0029d 48 6b c0 01 imul rax, rax, 1 002a1 b9 02 00 00 00 mov ecx, 2 002a6 48 6b c9 00 imul rcx, rcx, 0 002aa 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 002b1 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 002b8 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 002bd 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1450 : } 002c1 e9 57 ff ff ff jmp $LN10@stbi__conv $LN11@stbi__conv: ; 1451 : break; 002c6 e9 9d 07 00 00 jmp $LN5@stbi__conv $LN47@stbi__conv: ; 1452 : STBI__CASE(1, 4) 002cb 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 002d1 ff c8 dec eax 002d3 89 45 04 mov DWORD PTR i$[rbp], eax 002d6 eb 26 jmp SHORT $LN15@stbi__conv $LN13@stbi__conv: 002d8 8b 45 04 mov eax, DWORD PTR i$[rbp] 002db ff c8 dec eax 002dd 89 45 04 mov DWORD PTR i$[rbp], eax 002e0 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 002e4 48 83 c0 02 add rax, 2 002e8 48 89 45 68 mov QWORD PTR src$1[rbp], rax 002ec 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 002f3 48 83 c0 08 add rax, 8 002f7 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN15@stbi__conv: 002fe 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 00302 0f 8c 96 00 00 00 jl $LN14@stbi__conv ; 1453 : { ; 1454 : dest[0] = dest[1] = dest[2] = src[0]; 00308 b8 02 00 00 00 mov eax, 2 0030d 48 6b c0 00 imul rax, rax, 0 00311 b9 02 00 00 00 mov ecx, 2 00316 48 6b c9 02 imul rcx, rcx, 2 0031a 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00321 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00325 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 0032a 66 89 04 0a mov WORD PTR [rdx+rcx], ax 0032e b8 02 00 00 00 mov eax, 2 00333 48 6b c0 02 imul rax, rax, 2 00337 b9 02 00 00 00 mov ecx, 2 0033c 48 6b c9 01 imul rcx, rcx, 1 00340 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00347 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 0034e 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 00353 66 89 04 0a mov WORD PTR [rdx+rcx], ax 00357 b8 02 00 00 00 mov eax, 2 0035c 48 6b c0 01 imul rax, rax, 1 00360 b9 02 00 00 00 mov ecx, 2 00365 48 6b c9 00 imul rcx, rcx, 0 00369 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00370 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00377 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 0037c 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1455 : dest[3] = 0xffff; 00380 b8 02 00 00 00 mov eax, 2 00385 48 6b c0 03 imul rax, rax, 3 00389 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH 0038e 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00395 66 89 0c 02 mov WORD PTR [rdx+rax], cx ; 1456 : } 00399 e9 3a ff ff ff jmp $LN13@stbi__conv $LN14@stbi__conv: ; 1457 : break; 0039e e9 c5 06 00 00 jmp $LN5@stbi__conv $LN48@stbi__conv: ; 1458 : STBI__CASE(2, 1) 003a3 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 003a9 ff c8 dec eax 003ab 89 45 04 mov DWORD PTR i$[rbp], eax 003ae eb 26 jmp SHORT $LN18@stbi__conv $LN16@stbi__conv: 003b0 8b 45 04 mov eax, DWORD PTR i$[rbp] 003b3 ff c8 dec eax 003b5 89 45 04 mov DWORD PTR i$[rbp], eax 003b8 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 003bc 48 83 c0 04 add rax, 4 003c0 48 89 45 68 mov QWORD PTR src$1[rbp], rax 003c4 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 003cb 48 83 c0 02 add rax, 2 003cf 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN18@stbi__conv: 003d6 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 003da 7c 28 jl SHORT $LN17@stbi__conv ; 1459 : { ; 1460 : dest[0] = src[0]; 003dc b8 02 00 00 00 mov eax, 2 003e1 48 6b c0 00 imul rax, rax, 0 003e5 b9 02 00 00 00 mov ecx, 2 003ea 48 6b c9 00 imul rcx, rcx, 0 003ee 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 003f5 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 003f9 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 003fe 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1461 : } 00402 eb ac jmp SHORT $LN16@stbi__conv $LN17@stbi__conv: ; 1462 : break; 00404 e9 5f 06 00 00 jmp $LN5@stbi__conv $LN49@stbi__conv: ; 1463 : STBI__CASE(2, 3) 00409 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 0040f ff c8 dec eax 00411 89 45 04 mov DWORD PTR i$[rbp], eax 00414 eb 26 jmp SHORT $LN21@stbi__conv $LN19@stbi__conv: 00416 8b 45 04 mov eax, DWORD PTR i$[rbp] 00419 ff c8 dec eax 0041b 89 45 04 mov DWORD PTR i$[rbp], eax 0041e 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00422 48 83 c0 04 add rax, 4 00426 48 89 45 68 mov QWORD PTR src$1[rbp], rax 0042a 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 00431 48 83 c0 06 add rax, 6 00435 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN21@stbi__conv: 0043c 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 00440 7c 7d jl SHORT $LN20@stbi__conv ; 1464 : { ; 1465 : dest[0] = dest[1] = dest[2] = src[0]; 00442 b8 02 00 00 00 mov eax, 2 00447 48 6b c0 00 imul rax, rax, 0 0044b b9 02 00 00 00 mov ecx, 2 00450 48 6b c9 02 imul rcx, rcx, 2 00454 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0045b 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 0045f 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 00464 66 89 04 0a mov WORD PTR [rdx+rcx], ax 00468 b8 02 00 00 00 mov eax, 2 0046d 48 6b c0 02 imul rax, rax, 2 00471 b9 02 00 00 00 mov ecx, 2 00476 48 6b c9 01 imul rcx, rcx, 1 0047a 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00481 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00488 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 0048d 66 89 04 0a mov WORD PTR [rdx+rcx], ax 00491 b8 02 00 00 00 mov eax, 2 00496 48 6b c0 01 imul rax, rax, 1 0049a b9 02 00 00 00 mov ecx, 2 0049f 48 6b c9 00 imul rcx, rcx, 0 004a3 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 004aa 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 004b1 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 004b6 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1466 : } 004ba e9 57 ff ff ff jmp $LN19@stbi__conv $LN20@stbi__conv: ; 1467 : break; 004bf e9 a4 05 00 00 jmp $LN5@stbi__conv $LN50@stbi__conv: ; 1468 : STBI__CASE(2, 4) 004c4 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 004ca ff c8 dec eax 004cc 89 45 04 mov DWORD PTR i$[rbp], eax 004cf eb 26 jmp SHORT $LN24@stbi__conv $LN22@stbi__conv: 004d1 8b 45 04 mov eax, DWORD PTR i$[rbp] 004d4 ff c8 dec eax 004d6 89 45 04 mov DWORD PTR i$[rbp], eax 004d9 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 004dd 48 83 c0 04 add rax, 4 004e1 48 89 45 68 mov QWORD PTR src$1[rbp], rax 004e5 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 004ec 48 83 c0 08 add rax, 8 004f0 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN24@stbi__conv: 004f7 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 004fb 0f 8c a3 00 00 00 jl $LN23@stbi__conv ; 1469 : { ; 1470 : dest[0] = dest[1] = dest[2] = src[0]; 00501 b8 02 00 00 00 mov eax, 2 00506 48 6b c0 00 imul rax, rax, 0 0050a b9 02 00 00 00 mov ecx, 2 0050f 48 6b c9 02 imul rcx, rcx, 2 00513 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0051a 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 0051e 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 00523 66 89 04 0a mov WORD PTR [rdx+rcx], ax 00527 b8 02 00 00 00 mov eax, 2 0052c 48 6b c0 02 imul rax, rax, 2 00530 b9 02 00 00 00 mov ecx, 2 00535 48 6b c9 01 imul rcx, rcx, 1 00539 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00540 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00547 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 0054c 66 89 04 0a mov WORD PTR [rdx+rcx], ax 00550 b8 02 00 00 00 mov eax, 2 00555 48 6b c0 01 imul rax, rax, 1 00559 b9 02 00 00 00 mov ecx, 2 0055e 48 6b c9 00 imul rcx, rcx, 0 00562 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00569 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00570 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 00575 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1471 : dest[3] = src[1]; 00579 b8 02 00 00 00 mov eax, 2 0057e 48 6b c0 01 imul rax, rax, 1 00582 b9 02 00 00 00 mov ecx, 2 00587 48 6b c9 03 imul rcx, rcx, 3 0058b 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00592 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00596 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 0059b 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1472 : } 0059f e9 2d ff ff ff jmp $LN22@stbi__conv $LN23@stbi__conv: ; 1473 : break; 005a4 e9 bf 04 00 00 jmp $LN5@stbi__conv $LN51@stbi__conv: ; 1474 : STBI__CASE(3, 4) 005a9 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 005af ff c8 dec eax 005b1 89 45 04 mov DWORD PTR i$[rbp], eax 005b4 eb 26 jmp SHORT $LN27@stbi__conv $LN25@stbi__conv: 005b6 8b 45 04 mov eax, DWORD PTR i$[rbp] 005b9 ff c8 dec eax 005bb 89 45 04 mov DWORD PTR i$[rbp], eax 005be 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 005c2 48 83 c0 06 add rax, 6 005c6 48 89 45 68 mov QWORD PTR src$1[rbp], rax 005ca 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 005d1 48 83 c0 08 add rax, 8 005d5 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN27@stbi__conv: 005dc 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 005e0 0f 8c 90 00 00 00 jl $LN26@stbi__conv ; 1475 : { ; 1476 : dest[0] = src[0]; 005e6 b8 02 00 00 00 mov eax, 2 005eb 48 6b c0 00 imul rax, rax, 0 005ef b9 02 00 00 00 mov ecx, 2 005f4 48 6b c9 00 imul rcx, rcx, 0 005f8 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 005ff 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00603 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 00608 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1477 : dest[1] = src[1]; 0060c b8 02 00 00 00 mov eax, 2 00611 48 6b c0 01 imul rax, rax, 1 00615 b9 02 00 00 00 mov ecx, 2 0061a 48 6b c9 01 imul rcx, rcx, 1 0061e 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00625 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00629 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 0062e 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1478 : dest[2] = src[2]; 00632 b8 02 00 00 00 mov eax, 2 00637 48 6b c0 02 imul rax, rax, 2 0063b b9 02 00 00 00 mov ecx, 2 00640 48 6b c9 02 imul rcx, rcx, 2 00644 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0064b 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 0064f 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 00654 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1479 : dest[3] = 0xffff; 00658 b8 02 00 00 00 mov eax, 2 0065d 48 6b c0 03 imul rax, rax, 3 00661 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH 00666 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0066d 66 89 0c 02 mov WORD PTR [rdx+rax], cx ; 1480 : } 00671 e9 40 ff ff ff jmp $LN25@stbi__conv $LN26@stbi__conv: ; 1481 : break; 00676 e9 ed 03 00 00 jmp $LN5@stbi__conv $LN52@stbi__conv: ; 1482 : STBI__CASE(3, 1) 0067b 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00681 ff c8 dec eax 00683 89 45 04 mov DWORD PTR i$[rbp], eax 00686 eb 26 jmp SHORT $LN30@stbi__conv $LN28@stbi__conv: 00688 8b 45 04 mov eax, DWORD PTR i$[rbp] 0068b ff c8 dec eax 0068d 89 45 04 mov DWORD PTR i$[rbp], eax 00690 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00694 48 83 c0 06 add rax, 6 00698 48 89 45 68 mov QWORD PTR src$1[rbp], rax 0069c 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 006a3 48 83 c0 02 add rax, 2 006a7 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN30@stbi__conv: 006ae 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 006b2 7c 65 jl SHORT $LN29@stbi__conv ; 1483 : { ; 1484 : dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); 006b4 b8 02 00 00 00 mov eax, 2 006b9 48 6b c0 02 imul rax, rax, 2 006bd 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] 006c1 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 006c5 b9 02 00 00 00 mov ecx, 2 006ca 48 6b c9 01 imul rcx, rcx, 1 006ce 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] 006d2 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] 006d6 ba 02 00 00 00 mov edx, 2 006db 48 6b d2 00 imul rdx, rdx, 0 006df 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 006e3 41 0f b7 14 10 movzx edx, WORD PTR [r8+rdx] 006e8 89 95 54 01 00 00 mov DWORD PTR tv261[rbp], edx 006ee 44 8b c0 mov r8d, eax 006f1 8b d1 mov edx, ecx 006f3 8b 85 54 01 00 00 mov eax, DWORD PTR tv261[rbp] 006f9 8b c8 mov ecx, eax 006fb e8 00 00 00 00 call stbi__compute_y_16 00700 b9 02 00 00 00 mov ecx, 2 00705 48 6b c9 00 imul rcx, rcx, 0 00709 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00710 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1485 : } 00714 e9 6f ff ff ff jmp $LN28@stbi__conv $LN29@stbi__conv: ; 1486 : break; 00719 e9 4a 03 00 00 jmp $LN5@stbi__conv $LN53@stbi__conv: ; 1487 : STBI__CASE(3, 2) 0071e 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00724 ff c8 dec eax 00726 89 45 04 mov DWORD PTR i$[rbp], eax 00729 eb 26 jmp SHORT $LN33@stbi__conv $LN31@stbi__conv: 0072b 8b 45 04 mov eax, DWORD PTR i$[rbp] 0072e ff c8 dec eax 00730 89 45 04 mov DWORD PTR i$[rbp], eax 00733 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00737 48 83 c0 06 add rax, 6 0073b 48 89 45 68 mov QWORD PTR src$1[rbp], rax 0073f 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 00746 48 83 c0 04 add rax, 4 0074a 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN33@stbi__conv: 00751 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 00755 7c 7e jl SHORT $LN32@stbi__conv ; 1488 : { ; 1489 : dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); 00757 b8 02 00 00 00 mov eax, 2 0075c 48 6b c0 02 imul rax, rax, 2 00760 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] 00764 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 00768 b9 02 00 00 00 mov ecx, 2 0076d 48 6b c9 01 imul rcx, rcx, 1 00771 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] 00775 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] 00779 ba 02 00 00 00 mov edx, 2 0077e 48 6b d2 00 imul rdx, rdx, 0 00782 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00786 41 0f b7 14 10 movzx edx, WORD PTR [r8+rdx] 0078b 89 95 54 01 00 00 mov DWORD PTR tv281[rbp], edx 00791 44 8b c0 mov r8d, eax 00794 8b d1 mov edx, ecx 00796 8b 85 54 01 00 00 mov eax, DWORD PTR tv281[rbp] 0079c 8b c8 mov ecx, eax 0079e e8 00 00 00 00 call stbi__compute_y_16 007a3 b9 02 00 00 00 mov ecx, 2 007a8 48 6b c9 00 imul rcx, rcx, 0 007ac 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 007b3 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1490 : dest[1] = 0xffff; 007b7 b8 02 00 00 00 mov eax, 2 007bc 48 6b c0 01 imul rax, rax, 1 007c0 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH 007c5 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 007cc 66 89 0c 02 mov WORD PTR [rdx+rax], cx ; 1491 : } 007d0 e9 56 ff ff ff jmp $LN31@stbi__conv $LN32@stbi__conv: ; 1492 : break; 007d5 e9 8e 02 00 00 jmp $LN5@stbi__conv $LN54@stbi__conv: ; 1493 : STBI__CASE(4, 1) 007da 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 007e0 ff c8 dec eax 007e2 89 45 04 mov DWORD PTR i$[rbp], eax 007e5 eb 26 jmp SHORT $LN36@stbi__conv $LN34@stbi__conv: 007e7 8b 45 04 mov eax, DWORD PTR i$[rbp] 007ea ff c8 dec eax 007ec 89 45 04 mov DWORD PTR i$[rbp], eax 007ef 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 007f3 48 83 c0 08 add rax, 8 007f7 48 89 45 68 mov QWORD PTR src$1[rbp], rax 007fb 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 00802 48 83 c0 02 add rax, 2 00806 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN36@stbi__conv: 0080d 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 00811 7c 65 jl SHORT $LN35@stbi__conv ; 1494 : { ; 1495 : dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); 00813 b8 02 00 00 00 mov eax, 2 00818 48 6b c0 02 imul rax, rax, 2 0081c 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] 00820 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 00824 b9 02 00 00 00 mov ecx, 2 00829 48 6b c9 01 imul rcx, rcx, 1 0082d 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] 00831 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] 00835 ba 02 00 00 00 mov edx, 2 0083a 48 6b d2 00 imul rdx, rdx, 0 0083e 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00842 41 0f b7 14 10 movzx edx, WORD PTR [r8+rdx] 00847 89 95 54 01 00 00 mov DWORD PTR tv303[rbp], edx 0084d 44 8b c0 mov r8d, eax 00850 8b d1 mov edx, ecx 00852 8b 85 54 01 00 00 mov eax, DWORD PTR tv303[rbp] 00858 8b c8 mov ecx, eax 0085a e8 00 00 00 00 call stbi__compute_y_16 0085f b9 02 00 00 00 mov ecx, 2 00864 48 6b c9 00 imul rcx, rcx, 0 00868 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0086f 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1496 : } 00873 e9 6f ff ff ff jmp $LN34@stbi__conv $LN35@stbi__conv: ; 1497 : break; 00878 e9 eb 01 00 00 jmp $LN5@stbi__conv $LN55@stbi__conv: ; 1498 : STBI__CASE(4, 2) 0087d 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00883 ff c8 dec eax 00885 89 45 04 mov DWORD PTR i$[rbp], eax 00888 eb 26 jmp SHORT $LN39@stbi__conv $LN37@stbi__conv: 0088a 8b 45 04 mov eax, DWORD PTR i$[rbp] 0088d ff c8 dec eax 0088f 89 45 04 mov DWORD PTR i$[rbp], eax 00892 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00896 48 83 c0 08 add rax, 8 0089a 48 89 45 68 mov QWORD PTR src$1[rbp], rax 0089e 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 008a5 48 83 c0 04 add rax, 4 008a9 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN39@stbi__conv: 008b0 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 008b4 0f 8c 8b 00 00 00 jl $LN38@stbi__conv ; 1499 : { ; 1500 : dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); 008ba b8 02 00 00 00 mov eax, 2 008bf 48 6b c0 02 imul rax, rax, 2 008c3 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] 008c7 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 008cb b9 02 00 00 00 mov ecx, 2 008d0 48 6b c9 01 imul rcx, rcx, 1 008d4 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] 008d8 0f b7 0c 0a movzx ecx, WORD PTR [rdx+rcx] 008dc ba 02 00 00 00 mov edx, 2 008e1 48 6b d2 00 imul rdx, rdx, 0 008e5 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 008e9 41 0f b7 14 10 movzx edx, WORD PTR [r8+rdx] 008ee 89 95 54 01 00 00 mov DWORD PTR tv323[rbp], edx 008f4 44 8b c0 mov r8d, eax 008f7 8b d1 mov edx, ecx 008f9 8b 85 54 01 00 00 mov eax, DWORD PTR tv323[rbp] 008ff 8b c8 mov ecx, eax 00901 e8 00 00 00 00 call stbi__compute_y_16 00906 b9 02 00 00 00 mov ecx, 2 0090b 48 6b c9 00 imul rcx, rcx, 0 0090f 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00916 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1501 : dest[1] = src[3]; 0091a b8 02 00 00 00 mov eax, 2 0091f 48 6b c0 03 imul rax, rax, 3 00923 b9 02 00 00 00 mov ecx, 2 00928 48 6b c9 01 imul rcx, rcx, 1 0092c 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00933 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00937 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 0093c 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1502 : } 00940 e9 45 ff ff ff jmp $LN37@stbi__conv $LN38@stbi__conv: ; 1503 : break; 00945 e9 1e 01 00 00 jmp $LN5@stbi__conv $LN56@stbi__conv: ; 1504 : STBI__CASE(4, 3) 0094a 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00950 ff c8 dec eax 00952 89 45 04 mov DWORD PTR i$[rbp], eax 00955 eb 26 jmp SHORT $LN42@stbi__conv $LN40@stbi__conv: 00957 8b 45 04 mov eax, DWORD PTR i$[rbp] 0095a ff c8 dec eax 0095c 89 45 04 mov DWORD PTR i$[rbp], eax 0095f 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00963 48 83 c0 08 add rax, 8 00967 48 89 45 68 mov QWORD PTR src$1[rbp], rax 0096b 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 00972 48 83 c0 06 add rax, 6 00976 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN42@stbi__conv: 0097d 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 00981 7c 77 jl SHORT $LN41@stbi__conv ; 1505 : { ; 1506 : dest[0] = src[0]; 00983 b8 02 00 00 00 mov eax, 2 00988 48 6b c0 00 imul rax, rax, 0 0098c b9 02 00 00 00 mov ecx, 2 00991 48 6b c9 00 imul rcx, rcx, 0 00995 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0099c 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 009a0 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 009a5 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1507 : dest[1] = src[1]; 009a9 b8 02 00 00 00 mov eax, 2 009ae 48 6b c0 01 imul rax, rax, 1 009b2 b9 02 00 00 00 mov ecx, 2 009b7 48 6b c9 01 imul rcx, rcx, 1 009bb 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 009c2 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 009c6 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 009cb 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1508 : dest[2] = src[2]; 009cf b8 02 00 00 00 mov eax, 2 009d4 48 6b c0 02 imul rax, rax, 2 009d8 b9 02 00 00 00 mov ecx, 2 009dd 48 6b c9 02 imul rcx, rcx, 2 009e1 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 009e8 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 009ec 41 0f b7 04 00 movzx eax, WORD PTR [r8+rax] 009f1 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 1509 : } 009f5 e9 5d ff ff ff jmp $LN40@stbi__conv $LN41@stbi__conv: ; 1510 : break; 009fa eb 6c jmp SHORT $LN5@stbi__conv $LN57@stbi__conv: ; 1511 : default: ; 1512 : STBI_ASSERT(0); 009fc 33 c0 xor eax, eax 009fe 85 c0 test eax, eax 00a00 75 1c jne SHORT $LN63@stbi__conv 00a02 41 b8 e8 05 00 00 mov r8d, 1512 ; 000005e8H 00a08 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00a0f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_13COJANIEC@?$AA0@ 00a16 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00a1c 33 c0 xor eax, eax $LN63@stbi__conv: ; 1513 : STBI_FREE(data); 00a1e 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR data$[rbp] 00a25 ff 15 00 00 00 00 call QWORD PTR __imp_free 00a2b 90 npad 1 ; 1514 : STBI_FREE(good); 00a2c 48 8b 4d 48 mov rcx, QWORD PTR good$[rbp] 00a30 ff 15 00 00 00 00 call QWORD PTR __imp_free 00a36 90 npad 1 ; 1515 : return (stbi__uint16 *)stbi__errpuc("unsupported", 00a37 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@MHDBFHD@unsupported@ 00a3e e8 00 00 00 00 call stbi__err 00a43 85 c0 test eax, eax 00a45 74 0d je SHORT $LN64@stbi__conv 00a47 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv356[rbp], 0 00a52 eb 0b jmp SHORT $LN65@stbi__conv $LN64@stbi__conv: 00a54 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv356[rbp], 0 $LN65@stbi__conv: 00a5f 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv356[rbp] 00a66 eb 17 jmp SHORT $LN1@stbi__conv $LN5@stbi__conv: ; 1516 : "Unsupported format conversion"); ; 1517 : } ; 1518 : #undef STBI__CASE ; 1519 : } 00a68 e9 7e f6 ff ff jmp $LN2@stbi__conv $LN3@stbi__conv: ; 1520 : ; 1521 : STBI_FREE(data); 00a6d 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR data$[rbp] 00a74 ff 15 00 00 00 00 call QWORD PTR __imp_free 00a7a 90 npad 1 ; 1522 : return good; 00a7b 48 8b 45 48 mov rax, QWORD PTR good$[rbp] $LN1@stbi__conv: ; 1523 : } 00a7f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] 00a86 5f pop rdi 00a87 5d pop rbp 00a88 c3 ret 0 00a89 0f 1f 00 npad 3 $LN66@stbi__conv: 00a8c 00 00 00 00 DD $LN45@stbi__conv 00a90 00 00 00 00 DD $LN46@stbi__conv 00a94 00 00 00 00 DD $LN47@stbi__conv 00a98 00 00 00 00 DD $LN57@stbi__conv 00a9c 00 00 00 00 DD $LN57@stbi__conv 00aa0 00 00 00 00 DD $LN57@stbi__conv 00aa4 00 00 00 00 DD $LN57@stbi__conv 00aa8 00 00 00 00 DD $LN48@stbi__conv 00aac 00 00 00 00 DD $LN57@stbi__conv 00ab0 00 00 00 00 DD $LN49@stbi__conv 00ab4 00 00 00 00 DD $LN50@stbi__conv 00ab8 00 00 00 00 DD $LN57@stbi__conv 00abc 00 00 00 00 DD $LN57@stbi__conv 00ac0 00 00 00 00 DD $LN57@stbi__conv 00ac4 00 00 00 00 DD $LN57@stbi__conv 00ac8 00 00 00 00 DD $LN52@stbi__conv 00acc 00 00 00 00 DD $LN53@stbi__conv 00ad0 00 00 00 00 DD $LN57@stbi__conv 00ad4 00 00 00 00 DD $LN51@stbi__conv 00ad8 00 00 00 00 DD $LN57@stbi__conv 00adc 00 00 00 00 DD $LN57@stbi__conv 00ae0 00 00 00 00 DD $LN57@stbi__conv 00ae4 00 00 00 00 DD $LN57@stbi__conv 00ae8 00 00 00 00 DD $LN54@stbi__conv 00aec 00 00 00 00 DD $LN55@stbi__conv 00af0 00 00 00 00 DD $LN56@stbi__conv stbi__convert_format16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__compute_y_16 _TEXT SEGMENT r$ = 224 g$ = 232 b$ = 240 stbi__compute_y_16 PROC ; COMDAT ; 1406 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 0000d 55 push rbp 0000e 57 push rdi 0000f 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00027 90 npad 1 ; 1407 : return (stbi__uint16)(((r * 77) + (g * 150) + (29 * b)) >> 8); 00028 6b 85 e0 00 00 00 4d imul eax, DWORD PTR r$[rbp], 77 ; 0000004dH 0002f 69 8d e8 00 00 00 96 00 00 00 imul ecx, DWORD PTR g$[rbp], 150 ; 00000096H 00039 03 c1 add eax, ecx 0003b 6b 8d f0 00 00 00 1d imul ecx, DWORD PTR b$[rbp], 29 00042 03 c1 add eax, ecx 00044 c1 f8 08 sar eax, 8 ; 1408 : } 00047 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0004e 5f pop rdi 0004f 5d pop rbp 00050 c3 ret 0 stbi__compute_y_16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__convert_format _TEXT SEGMENT i$ = 4 j$ = 36 good$ = 72 src$1 = 104 dest$2 = 136 tv94 = 340 tv258 = 340 tv278 = 340 tv300 = 340 tv320 = 340 tv81 = 344 tv353 = 344 data$ = 384 img_n$ = 392 req_comp$ = 400 x$ = 408 y$ = 416 stbi__convert_format PROC ; COMDAT ; 1293 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002d 90 npad 1 ; 1294 : int i, j; ; 1295 : unsigned char *good; ; 1296 : ; 1297 : if (req_comp == img_n) 0002e 8b 85 88 01 00 00 mov eax, DWORD PTR img_n$[rbp] 00034 39 85 90 01 00 00 cmp DWORD PTR req_comp$[rbp], eax 0003a 75 0c jne SHORT $LN43@stbi__conv ; 1298 : return data; 0003c 48 8b 85 80 01 00 00 mov rax, QWORD PTR data$[rbp] 00043 e9 03 0a 00 00 jmp $LN1@stbi__conv $LN43@stbi__conv: ; 1299 : STBI_ASSERT(req_comp >= 1 && req_comp <= 4); 00048 83 bd 90 01 00 00 01 cmp DWORD PTR req_comp$[rbp], 1 0004f 7c 09 jl SHORT $LN59@stbi__conv 00051 83 bd 90 01 00 00 04 cmp DWORD PTR req_comp$[rbp], 4 00058 7e 1c jle SHORT $LN60@stbi__conv $LN59@stbi__conv: 0005a 41 b8 13 05 00 00 mov r8d, 1299 ; 00000513H 00060 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00067 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1DO@MABJBNAJ@?$AAr?$AAe?$AAq?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DO?$AA?$DN?$AA?5?$AA1?$AA?5?$AA?$CG@ 0006e ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00074 33 c0 xor eax, eax $LN60@stbi__conv: ; 1300 : ; 1301 : good = (unsigned char *)stbi__malloc_mad3(req_comp, x, y, 0); 00076 45 33 c9 xor r9d, r9d 00079 44 8b 85 a0 01 00 00 mov r8d, DWORD PTR y$[rbp] 00080 8b 95 98 01 00 00 mov edx, DWORD PTR x$[rbp] 00086 8b 8d 90 01 00 00 mov ecx, DWORD PTR req_comp$[rbp] 0008c e8 00 00 00 00 call stbi__malloc_mad3 00091 48 89 45 48 mov QWORD PTR good$[rbp], rax ; 1302 : if (good == NULL) { 00095 48 83 7d 48 00 cmp QWORD PTR good$[rbp], 0 0009a 75 42 jne SHORT $LN44@stbi__conv ; 1303 : STBI_FREE(data); 0009c 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR data$[rbp] 000a3 ff 15 00 00 00 00 call QWORD PTR __imp_free 000a9 90 npad 1 ; 1304 : return stbi__errpuc("outofmem", "Out of memory"); 000aa 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 000b1 e8 00 00 00 00 call stbi__err 000b6 85 c0 test eax, eax 000b8 74 0d je SHORT $LN61@stbi__conv 000ba 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv81[rbp], 0 000c5 eb 0b jmp SHORT $LN62@stbi__conv $LN61@stbi__conv: 000c7 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv81[rbp], 0 $LN62@stbi__conv: 000d2 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv81[rbp] 000d9 e9 6d 09 00 00 jmp $LN1@stbi__conv $LN44@stbi__conv: ; 1305 : } ; 1306 : ; 1307 : for (j = 0; j < (int)y; ++j) { 000de c7 45 24 00 00 00 00 mov DWORD PTR j$[rbp], 0 000e5 eb 08 jmp SHORT $LN4@stbi__conv $LN2@stbi__conv: 000e7 8b 45 24 mov eax, DWORD PTR j$[rbp] 000ea ff c0 inc eax 000ec 89 45 24 mov DWORD PTR j$[rbp], eax $LN4@stbi__conv: 000ef 8b 85 a0 01 00 00 mov eax, DWORD PTR y$[rbp] 000f5 39 45 24 cmp DWORD PTR j$[rbp], eax 000f8 0f 8d 3b 09 00 00 jge $LN3@stbi__conv ; 1308 : unsigned char *src = data + j * x * img_n; 000fe 8b 45 24 mov eax, DWORD PTR j$[rbp] 00101 0f af 85 98 01 00 00 imul eax, DWORD PTR x$[rbp] 00108 0f af 85 88 01 00 00 imul eax, DWORD PTR img_n$[rbp] 0010f 8b c0 mov eax, eax 00111 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR data$[rbp] 00118 48 03 c8 add rcx, rax 0011b 48 8b c1 mov rax, rcx 0011e 48 89 45 68 mov QWORD PTR src$1[rbp], rax ; 1309 : unsigned char *dest = good + j * x * req_comp; 00122 8b 45 24 mov eax, DWORD PTR j$[rbp] 00125 0f af 85 98 01 00 00 imul eax, DWORD PTR x$[rbp] 0012c 0f af 85 90 01 00 00 imul eax, DWORD PTR req_comp$[rbp] 00133 8b c0 mov eax, eax 00135 48 8b 4d 48 mov rcx, QWORD PTR good$[rbp] 00139 48 03 c8 add rcx, rax 0013c 48 8b c1 mov rax, rcx 0013f 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax ; 1310 : ; 1311 : #define STBI__COMBO(a, b) ((a) * 8 + (b)) ; 1312 : #define STBI__CASE(a, b) \ ; 1313 : case STBI__COMBO(a, b): \ ; 1314 : for (i = x - 1; i >= 0; --i, src += a, dest += b) ; 1315 : // convert source image with img_n components to one with req_comp components; ; 1316 : // avoid switch per pixel, so use switch per scanline and massive macros ; 1317 : switch (STBI__COMBO(img_n, req_comp)) { 00146 8b 85 90 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 0014c 8b 8d 88 01 00 00 mov ecx, DWORD PTR img_n$[rbp] 00152 8d 04 c8 lea eax, DWORD PTR [rax+rcx*8] 00155 89 85 54 01 00 00 mov DWORD PTR tv94[rbp], eax 0015b 8b 85 54 01 00 00 mov eax, DWORD PTR tv94[rbp] 00161 83 e8 0a sub eax, 10 00164 89 85 54 01 00 00 mov DWORD PTR tv94[rbp], eax 0016a 83 bd 54 01 00 00 19 cmp DWORD PTR tv94[rbp], 25 00171 0f 87 51 08 00 00 ja $LN57@stbi__conv 00177 48 63 85 54 01 00 00 movsxd rax, DWORD PTR tv94[rbp] 0017e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase 00185 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN66@stbi__conv[rcx+rax*4] 0018c 48 03 c1 add rax, rcx 0018f ff e0 jmp rax $LN45@stbi__conv: ; 1318 : STBI__CASE(1, 2) 00191 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00197 ff c8 dec eax 00199 89 45 04 mov DWORD PTR i$[rbp], eax 0019c eb 25 jmp SHORT $LN9@stbi__conv $LN7@stbi__conv: 0019e 8b 45 04 mov eax, DWORD PTR i$[rbp] 001a1 ff c8 dec eax 001a3 89 45 04 mov DWORD PTR i$[rbp], eax 001a6 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 001aa 48 ff c0 inc rax 001ad 48 89 45 68 mov QWORD PTR src$1[rbp], rax 001b1 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 001b8 48 83 c0 02 add rax, 2 001bc 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN9@stbi__conv: 001c3 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 001c7 7c 3b jl SHORT $LN8@stbi__conv ; 1319 : { ; 1320 : dest[0] = src[0]; 001c9 b8 01 00 00 00 mov eax, 1 001ce 48 6b c0 00 imul rax, rax, 0 001d2 b9 01 00 00 00 mov ecx, 1 001d7 48 6b c9 00 imul rcx, rcx, 0 001db 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 001e2 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 001e6 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 001eb 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1321 : dest[1] = 255; 001ee b8 01 00 00 00 mov eax, 1 001f3 48 6b c0 01 imul rax, rax, 1 001f7 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dest$2[rbp] 001fe c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 1322 : } 00202 eb 9a jmp SHORT $LN7@stbi__conv $LN8@stbi__conv: ; 1323 : break; 00204 e9 2b 08 00 00 jmp $LN5@stbi__conv $LN46@stbi__conv: ; 1324 : STBI__CASE(1, 3) 00209 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 0020f ff c8 dec eax 00211 89 45 04 mov DWORD PTR i$[rbp], eax 00214 eb 25 jmp SHORT $LN12@stbi__conv $LN10@stbi__conv: 00216 8b 45 04 mov eax, DWORD PTR i$[rbp] 00219 ff c8 dec eax 0021b 89 45 04 mov DWORD PTR i$[rbp], eax 0021e 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00222 48 ff c0 inc rax 00225 48 89 45 68 mov QWORD PTR src$1[rbp], rax 00229 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 00230 48 83 c0 03 add rax, 3 00234 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN12@stbi__conv: 0023b 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 0023f 7c 7a jl SHORT $LN11@stbi__conv ; 1325 : { ; 1326 : dest[0] = dest[1] = dest[2] = src[0]; 00241 b8 01 00 00 00 mov eax, 1 00246 48 6b c0 00 imul rax, rax, 0 0024a b9 01 00 00 00 mov ecx, 1 0024f 48 6b c9 02 imul rcx, rcx, 2 00253 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0025a 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 0025e 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00263 88 04 0a mov BYTE PTR [rdx+rcx], al 00266 b8 01 00 00 00 mov eax, 1 0026b 48 6b c0 02 imul rax, rax, 2 0026f b9 01 00 00 00 mov ecx, 1 00274 48 6b c9 01 imul rcx, rcx, 1 00278 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0027f 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00286 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0028b 88 04 0a mov BYTE PTR [rdx+rcx], al 0028e b8 01 00 00 00 mov eax, 1 00293 48 6b c0 01 imul rax, rax, 1 00297 b9 01 00 00 00 mov ecx, 1 0029c 48 6b c9 00 imul rcx, rcx, 0 002a0 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 002a7 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 002ae 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 002b3 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1327 : } 002b6 e9 5b ff ff ff jmp $LN10@stbi__conv $LN11@stbi__conv: ; 1328 : break; 002bb e9 74 07 00 00 jmp $LN5@stbi__conv $LN47@stbi__conv: ; 1329 : STBI__CASE(1, 4) 002c0 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 002c6 ff c8 dec eax 002c8 89 45 04 mov DWORD PTR i$[rbp], eax 002cb eb 25 jmp SHORT $LN15@stbi__conv $LN13@stbi__conv: 002cd 8b 45 04 mov eax, DWORD PTR i$[rbp] 002d0 ff c8 dec eax 002d2 89 45 04 mov DWORD PTR i$[rbp], eax 002d5 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 002d9 48 ff c0 inc rax 002dc 48 89 45 68 mov QWORD PTR src$1[rbp], rax 002e0 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 002e7 48 83 c0 04 add rax, 4 002eb 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN15@stbi__conv: 002f2 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 002f6 0f 8c 8e 00 00 00 jl $LN14@stbi__conv ; 1330 : { ; 1331 : dest[0] = dest[1] = dest[2] = src[0]; 002fc b8 01 00 00 00 mov eax, 1 00301 48 6b c0 00 imul rax, rax, 0 00305 b9 01 00 00 00 mov ecx, 1 0030a 48 6b c9 02 imul rcx, rcx, 2 0030e 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00315 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00319 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0031e 88 04 0a mov BYTE PTR [rdx+rcx], al 00321 b8 01 00 00 00 mov eax, 1 00326 48 6b c0 02 imul rax, rax, 2 0032a b9 01 00 00 00 mov ecx, 1 0032f 48 6b c9 01 imul rcx, rcx, 1 00333 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0033a 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00341 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00346 88 04 0a mov BYTE PTR [rdx+rcx], al 00349 b8 01 00 00 00 mov eax, 1 0034e 48 6b c0 01 imul rax, rax, 1 00352 b9 01 00 00 00 mov ecx, 1 00357 48 6b c9 00 imul rcx, rcx, 0 0035b 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00362 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00369 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0036e 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1332 : dest[3] = 255; 00371 b8 01 00 00 00 mov eax, 1 00376 48 6b c0 03 imul rax, rax, 3 0037a 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dest$2[rbp] 00381 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 1333 : } 00385 e9 43 ff ff ff jmp $LN13@stbi__conv $LN14@stbi__conv: ; 1334 : break; 0038a e9 a5 06 00 00 jmp $LN5@stbi__conv $LN48@stbi__conv: ; 1335 : STBI__CASE(2, 1) 0038f 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00395 ff c8 dec eax 00397 89 45 04 mov DWORD PTR i$[rbp], eax 0039a eb 25 jmp SHORT $LN18@stbi__conv $LN16@stbi__conv: 0039c 8b 45 04 mov eax, DWORD PTR i$[rbp] 0039f ff c8 dec eax 003a1 89 45 04 mov DWORD PTR i$[rbp], eax 003a4 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 003a8 48 83 c0 02 add rax, 2 003ac 48 89 45 68 mov QWORD PTR src$1[rbp], rax 003b0 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 003b7 48 ff c0 inc rax 003ba 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN18@stbi__conv: 003c1 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 003c5 7c 27 jl SHORT $LN17@stbi__conv ; 1336 : { ; 1337 : dest[0] = src[0]; 003c7 b8 01 00 00 00 mov eax, 1 003cc 48 6b c0 00 imul rax, rax, 0 003d0 b9 01 00 00 00 mov ecx, 1 003d5 48 6b c9 00 imul rcx, rcx, 0 003d9 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 003e0 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 003e4 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 003e9 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1338 : } 003ec eb ae jmp SHORT $LN16@stbi__conv $LN17@stbi__conv: ; 1339 : break; 003ee e9 41 06 00 00 jmp $LN5@stbi__conv $LN49@stbi__conv: ; 1340 : STBI__CASE(2, 3) 003f3 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 003f9 ff c8 dec eax 003fb 89 45 04 mov DWORD PTR i$[rbp], eax 003fe eb 26 jmp SHORT $LN21@stbi__conv $LN19@stbi__conv: 00400 8b 45 04 mov eax, DWORD PTR i$[rbp] 00403 ff c8 dec eax 00405 89 45 04 mov DWORD PTR i$[rbp], eax 00408 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 0040c 48 83 c0 02 add rax, 2 00410 48 89 45 68 mov QWORD PTR src$1[rbp], rax 00414 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 0041b 48 83 c0 03 add rax, 3 0041f 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN21@stbi__conv: 00426 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 0042a 7c 7a jl SHORT $LN20@stbi__conv ; 1341 : { ; 1342 : dest[0] = dest[1] = dest[2] = src[0]; 0042c b8 01 00 00 00 mov eax, 1 00431 48 6b c0 00 imul rax, rax, 0 00435 b9 01 00 00 00 mov ecx, 1 0043a 48 6b c9 02 imul rcx, rcx, 2 0043e 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00445 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00449 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0044e 88 04 0a mov BYTE PTR [rdx+rcx], al 00451 b8 01 00 00 00 mov eax, 1 00456 48 6b c0 02 imul rax, rax, 2 0045a b9 01 00 00 00 mov ecx, 1 0045f 48 6b c9 01 imul rcx, rcx, 1 00463 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0046a 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00471 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00476 88 04 0a mov BYTE PTR [rdx+rcx], al 00479 b8 01 00 00 00 mov eax, 1 0047e 48 6b c0 01 imul rax, rax, 1 00482 b9 01 00 00 00 mov ecx, 1 00487 48 6b c9 00 imul rcx, rcx, 0 0048b 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00492 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00499 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0049e 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1343 : } 004a1 e9 5a ff ff ff jmp $LN19@stbi__conv $LN20@stbi__conv: ; 1344 : break; 004a6 e9 89 05 00 00 jmp $LN5@stbi__conv $LN50@stbi__conv: ; 1345 : STBI__CASE(2, 4) 004ab 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 004b1 ff c8 dec eax 004b3 89 45 04 mov DWORD PTR i$[rbp], eax 004b6 eb 26 jmp SHORT $LN24@stbi__conv $LN22@stbi__conv: 004b8 8b 45 04 mov eax, DWORD PTR i$[rbp] 004bb ff c8 dec eax 004bd 89 45 04 mov DWORD PTR i$[rbp], eax 004c0 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 004c4 48 83 c0 02 add rax, 2 004c8 48 89 45 68 mov QWORD PTR src$1[rbp], rax 004cc 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 004d3 48 83 c0 04 add rax, 4 004d7 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN24@stbi__conv: 004de 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 004e2 0f 8c 9f 00 00 00 jl $LN23@stbi__conv ; 1346 : { ; 1347 : dest[0] = dest[1] = dest[2] = src[0]; 004e8 b8 01 00 00 00 mov eax, 1 004ed 48 6b c0 00 imul rax, rax, 0 004f1 b9 01 00 00 00 mov ecx, 1 004f6 48 6b c9 02 imul rcx, rcx, 2 004fa 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00501 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00505 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0050a 88 04 0a mov BYTE PTR [rdx+rcx], al 0050d b8 01 00 00 00 mov eax, 1 00512 48 6b c0 02 imul rax, rax, 2 00516 b9 01 00 00 00 mov ecx, 1 0051b 48 6b c9 01 imul rcx, rcx, 1 0051f 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00526 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 0052d 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00532 88 04 0a mov BYTE PTR [rdx+rcx], al 00535 b8 01 00 00 00 mov eax, 1 0053a 48 6b c0 01 imul rax, rax, 1 0053e b9 01 00 00 00 mov ecx, 1 00543 48 6b c9 00 imul rcx, rcx, 0 00547 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0054e 4c 8b 85 88 00 00 00 mov r8, QWORD PTR dest$2[rbp] 00555 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0055a 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1348 : dest[3] = src[1]; 0055d b8 01 00 00 00 mov eax, 1 00562 48 6b c0 01 imul rax, rax, 1 00566 b9 01 00 00 00 mov ecx, 1 0056b 48 6b c9 03 imul rcx, rcx, 3 0056f 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00576 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 0057a 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0057f 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1349 : } 00582 e9 31 ff ff ff jmp $LN22@stbi__conv $LN23@stbi__conv: ; 1350 : break; 00587 e9 a8 04 00 00 jmp $LN5@stbi__conv $LN51@stbi__conv: ; 1351 : STBI__CASE(3, 4) 0058c 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00592 ff c8 dec eax 00594 89 45 04 mov DWORD PTR i$[rbp], eax 00597 eb 26 jmp SHORT $LN27@stbi__conv $LN25@stbi__conv: 00599 8b 45 04 mov eax, DWORD PTR i$[rbp] 0059c ff c8 dec eax 0059e 89 45 04 mov DWORD PTR i$[rbp], eax 005a1 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 005a5 48 83 c0 03 add rax, 3 005a9 48 89 45 68 mov QWORD PTR src$1[rbp], rax 005ad 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 005b4 48 83 c0 04 add rax, 4 005b8 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN27@stbi__conv: 005bf 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 005c3 0f 8c 88 00 00 00 jl $LN26@stbi__conv ; 1352 : { ; 1353 : dest[0] = src[0]; 005c9 b8 01 00 00 00 mov eax, 1 005ce 48 6b c0 00 imul rax, rax, 0 005d2 b9 01 00 00 00 mov ecx, 1 005d7 48 6b c9 00 imul rcx, rcx, 0 005db 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 005e2 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 005e6 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 005eb 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1354 : dest[1] = src[1]; 005ee b8 01 00 00 00 mov eax, 1 005f3 48 6b c0 01 imul rax, rax, 1 005f7 b9 01 00 00 00 mov ecx, 1 005fc 48 6b c9 01 imul rcx, rcx, 1 00600 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00607 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 0060b 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00610 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1355 : dest[2] = src[2]; 00613 b8 01 00 00 00 mov eax, 1 00618 48 6b c0 02 imul rax, rax, 2 0061c b9 01 00 00 00 mov ecx, 1 00621 48 6b c9 02 imul rcx, rcx, 2 00625 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0062c 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00630 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00635 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1356 : dest[3] = 255; 00638 b8 01 00 00 00 mov eax, 1 0063d 48 6b c0 03 imul rax, rax, 3 00641 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dest$2[rbp] 00648 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 1357 : } 0064c e9 48 ff ff ff jmp $LN25@stbi__conv $LN26@stbi__conv: ; 1358 : break; 00651 e9 de 03 00 00 jmp $LN5@stbi__conv $LN52@stbi__conv: ; 1359 : STBI__CASE(3, 1) 00656 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 0065c ff c8 dec eax 0065e 89 45 04 mov DWORD PTR i$[rbp], eax 00661 eb 25 jmp SHORT $LN30@stbi__conv $LN28@stbi__conv: 00663 8b 45 04 mov eax, DWORD PTR i$[rbp] 00666 ff c8 dec eax 00668 89 45 04 mov DWORD PTR i$[rbp], eax 0066b 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 0066f 48 83 c0 03 add rax, 3 00673 48 89 45 68 mov QWORD PTR src$1[rbp], rax 00677 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 0067e 48 ff c0 inc rax 00681 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN30@stbi__conv: 00688 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 0068c 7c 64 jl SHORT $LN29@stbi__conv ; 1360 : { ; 1361 : dest[0] = stbi__compute_y(src[0], src[1], src[2]); 0068e b8 01 00 00 00 mov eax, 1 00693 48 6b c0 02 imul rax, rax, 2 00697 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] 0069b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0069f b9 01 00 00 00 mov ecx, 1 006a4 48 6b c9 01 imul rcx, rcx, 1 006a8 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] 006ac 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 006b0 ba 01 00 00 00 mov edx, 1 006b5 48 6b d2 00 imul rdx, rdx, 0 006b9 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 006bd 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] 006c2 89 95 54 01 00 00 mov DWORD PTR tv258[rbp], edx 006c8 44 8b c0 mov r8d, eax 006cb 8b d1 mov edx, ecx 006cd 8b 85 54 01 00 00 mov eax, DWORD PTR tv258[rbp] 006d3 8b c8 mov ecx, eax 006d5 e8 00 00 00 00 call stbi__compute_y 006da b9 01 00 00 00 mov ecx, 1 006df 48 6b c9 00 imul rcx, rcx, 0 006e3 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 006ea 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1362 : } 006ed e9 71 ff ff ff jmp $LN28@stbi__conv $LN29@stbi__conv: ; 1363 : break; 006f2 e9 3d 03 00 00 jmp $LN5@stbi__conv $LN53@stbi__conv: ; 1364 : STBI__CASE(3, 2) 006f7 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 006fd ff c8 dec eax 006ff 89 45 04 mov DWORD PTR i$[rbp], eax 00702 eb 26 jmp SHORT $LN33@stbi__conv $LN31@stbi__conv: 00704 8b 45 04 mov eax, DWORD PTR i$[rbp] 00707 ff c8 dec eax 00709 89 45 04 mov DWORD PTR i$[rbp], eax 0070c 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00710 48 83 c0 03 add rax, 3 00714 48 89 45 68 mov QWORD PTR src$1[rbp], rax 00718 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 0071f 48 83 c0 02 add rax, 2 00723 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN33@stbi__conv: 0072a 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 0072e 7c 78 jl SHORT $LN32@stbi__conv ; 1365 : { ; 1366 : dest[0] = stbi__compute_y(src[0], src[1], src[2]); 00730 b8 01 00 00 00 mov eax, 1 00735 48 6b c0 02 imul rax, rax, 2 00739 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] 0073d 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00741 b9 01 00 00 00 mov ecx, 1 00746 48 6b c9 01 imul rcx, rcx, 1 0074a 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] 0074e 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00752 ba 01 00 00 00 mov edx, 1 00757 48 6b d2 00 imul rdx, rdx, 0 0075b 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 0075f 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] 00764 89 95 54 01 00 00 mov DWORD PTR tv278[rbp], edx 0076a 44 8b c0 mov r8d, eax 0076d 8b d1 mov edx, ecx 0076f 8b 85 54 01 00 00 mov eax, DWORD PTR tv278[rbp] 00775 8b c8 mov ecx, eax 00777 e8 00 00 00 00 call stbi__compute_y 0077c b9 01 00 00 00 mov ecx, 1 00781 48 6b c9 00 imul rcx, rcx, 0 00785 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0078c 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1367 : dest[1] = 255; 0078f b8 01 00 00 00 mov eax, 1 00794 48 6b c0 01 imul rax, rax, 1 00798 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dest$2[rbp] 0079f c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH ; 1368 : } 007a3 e9 5c ff ff ff jmp $LN31@stbi__conv $LN32@stbi__conv: ; 1369 : break; 007a8 e9 87 02 00 00 jmp $LN5@stbi__conv $LN54@stbi__conv: ; 1370 : STBI__CASE(4, 1) 007ad 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 007b3 ff c8 dec eax 007b5 89 45 04 mov DWORD PTR i$[rbp], eax 007b8 eb 25 jmp SHORT $LN36@stbi__conv $LN34@stbi__conv: 007ba 8b 45 04 mov eax, DWORD PTR i$[rbp] 007bd ff c8 dec eax 007bf 89 45 04 mov DWORD PTR i$[rbp], eax 007c2 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 007c6 48 83 c0 04 add rax, 4 007ca 48 89 45 68 mov QWORD PTR src$1[rbp], rax 007ce 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 007d5 48 ff c0 inc rax 007d8 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN36@stbi__conv: 007df 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 007e3 7c 64 jl SHORT $LN35@stbi__conv ; 1371 : { ; 1372 : dest[0] = stbi__compute_y(src[0], src[1], src[2]); 007e5 b8 01 00 00 00 mov eax, 1 007ea 48 6b c0 02 imul rax, rax, 2 007ee 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] 007f2 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 007f6 b9 01 00 00 00 mov ecx, 1 007fb 48 6b c9 01 imul rcx, rcx, 1 007ff 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] 00803 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 00807 ba 01 00 00 00 mov edx, 1 0080c 48 6b d2 00 imul rdx, rdx, 0 00810 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00814 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] 00819 89 95 54 01 00 00 mov DWORD PTR tv300[rbp], edx 0081f 44 8b c0 mov r8d, eax 00822 8b d1 mov edx, ecx 00824 8b 85 54 01 00 00 mov eax, DWORD PTR tv300[rbp] 0082a 8b c8 mov ecx, eax 0082c e8 00 00 00 00 call stbi__compute_y 00831 b9 01 00 00 00 mov ecx, 1 00836 48 6b c9 00 imul rcx, rcx, 0 0083a 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00841 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1373 : } 00844 e9 71 ff ff ff jmp $LN34@stbi__conv $LN35@stbi__conv: ; 1374 : break; 00849 e9 e6 01 00 00 jmp $LN5@stbi__conv $LN55@stbi__conv: ; 1375 : STBI__CASE(4, 2) 0084e 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 00854 ff c8 dec eax 00856 89 45 04 mov DWORD PTR i$[rbp], eax 00859 eb 26 jmp SHORT $LN39@stbi__conv $LN37@stbi__conv: 0085b 8b 45 04 mov eax, DWORD PTR i$[rbp] 0085e ff c8 dec eax 00860 89 45 04 mov DWORD PTR i$[rbp], eax 00863 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00867 48 83 c0 04 add rax, 4 0086b 48 89 45 68 mov QWORD PTR src$1[rbp], rax 0086f 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 00876 48 83 c0 02 add rax, 2 0087a 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN39@stbi__conv: 00881 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 00885 0f 8c 89 00 00 00 jl $LN38@stbi__conv ; 1376 : { ; 1377 : dest[0] = stbi__compute_y(src[0], src[1], src[2]); 0088b b8 01 00 00 00 mov eax, 1 00890 48 6b c0 02 imul rax, rax, 2 00894 48 8b 4d 68 mov rcx, QWORD PTR src$1[rbp] 00898 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0089c b9 01 00 00 00 mov ecx, 1 008a1 48 6b c9 01 imul rcx, rcx, 1 008a5 48 8b 55 68 mov rdx, QWORD PTR src$1[rbp] 008a9 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 008ad ba 01 00 00 00 mov edx, 1 008b2 48 6b d2 00 imul rdx, rdx, 0 008b6 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 008ba 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx] 008bf 89 95 54 01 00 00 mov DWORD PTR tv320[rbp], edx 008c5 44 8b c0 mov r8d, eax 008c8 8b d1 mov edx, ecx 008ca 8b 85 54 01 00 00 mov eax, DWORD PTR tv320[rbp] 008d0 8b c8 mov ecx, eax 008d2 e8 00 00 00 00 call stbi__compute_y 008d7 b9 01 00 00 00 mov ecx, 1 008dc 48 6b c9 00 imul rcx, rcx, 0 008e0 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 008e7 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1378 : dest[1] = src[3]; 008ea b8 01 00 00 00 mov eax, 1 008ef 48 6b c0 03 imul rax, rax, 3 008f3 b9 01 00 00 00 mov ecx, 1 008f8 48 6b c9 01 imul rcx, rcx, 1 008fc 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00903 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00907 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 0090c 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1379 : } 0090f e9 47 ff ff ff jmp $LN37@stbi__conv $LN38@stbi__conv: ; 1380 : break; 00914 e9 1b 01 00 00 jmp $LN5@stbi__conv $LN56@stbi__conv: ; 1381 : STBI__CASE(4, 3) 00919 8b 85 98 01 00 00 mov eax, DWORD PTR x$[rbp] 0091f ff c8 dec eax 00921 89 45 04 mov DWORD PTR i$[rbp], eax 00924 eb 26 jmp SHORT $LN42@stbi__conv $LN40@stbi__conv: 00926 8b 45 04 mov eax, DWORD PTR i$[rbp] 00929 ff c8 dec eax 0092b 89 45 04 mov DWORD PTR i$[rbp], eax 0092e 48 8b 45 68 mov rax, QWORD PTR src$1[rbp] 00932 48 83 c0 04 add rax, 4 00936 48 89 45 68 mov QWORD PTR src$1[rbp], rax 0093a 48 8b 85 88 00 00 00 mov rax, QWORD PTR dest$2[rbp] 00941 48 83 c0 03 add rax, 3 00945 48 89 85 88 00 00 00 mov QWORD PTR dest$2[rbp], rax $LN42@stbi__conv: 0094c 83 7d 04 00 cmp DWORD PTR i$[rbp], 0 00950 7c 74 jl SHORT $LN41@stbi__conv ; 1382 : { ; 1383 : dest[0] = src[0]; 00952 b8 01 00 00 00 mov eax, 1 00957 48 6b c0 00 imul rax, rax, 0 0095b b9 01 00 00 00 mov ecx, 1 00960 48 6b c9 00 imul rcx, rcx, 0 00964 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 0096b 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 0096f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00974 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1384 : dest[1] = src[1]; 00977 b8 01 00 00 00 mov eax, 1 0097c 48 6b c0 01 imul rax, rax, 1 00980 b9 01 00 00 00 mov ecx, 1 00985 48 6b c9 01 imul rcx, rcx, 1 00989 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 00990 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 00994 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 00999 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1385 : dest[2] = src[2]; 0099c b8 01 00 00 00 mov eax, 1 009a1 48 6b c0 02 imul rax, rax, 2 009a5 b9 01 00 00 00 mov ecx, 1 009aa 48 6b c9 02 imul rcx, rcx, 2 009ae 48 8b 95 88 00 00 00 mov rdx, QWORD PTR dest$2[rbp] 009b5 4c 8b 45 68 mov r8, QWORD PTR src$1[rbp] 009b9 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 009be 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1386 : } 009c1 e9 60 ff ff ff jmp $LN40@stbi__conv $LN41@stbi__conv: ; 1387 : break; 009c6 eb 6c jmp SHORT $LN5@stbi__conv $LN57@stbi__conv: ; 1388 : default: ; 1389 : STBI_ASSERT(0); 009c8 33 c0 xor eax, eax 009ca 85 c0 test eax, eax 009cc 75 1c jne SHORT $LN63@stbi__conv 009ce 41 b8 6d 05 00 00 mov r8d, 1389 ; 0000056dH 009d4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 009db 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_13COJANIEC@?$AA0@ 009e2 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 009e8 33 c0 xor eax, eax $LN63@stbi__conv: ; 1390 : STBI_FREE(data); 009ea 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR data$[rbp] 009f1 ff 15 00 00 00 00 call QWORD PTR __imp_free 009f7 90 npad 1 ; 1391 : STBI_FREE(good); 009f8 48 8b 4d 48 mov rcx, QWORD PTR good$[rbp] 009fc ff 15 00 00 00 00 call QWORD PTR __imp_free 00a02 90 npad 1 ; 1392 : return stbi__errpuc("unsupported", "Unsupported format conversion"); 00a03 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@MHDBFHD@unsupported@ 00a0a e8 00 00 00 00 call stbi__err 00a0f 85 c0 test eax, eax 00a11 74 0d je SHORT $LN64@stbi__conv 00a13 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv353[rbp], 0 00a1e eb 0b jmp SHORT $LN65@stbi__conv $LN64@stbi__conv: 00a20 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv353[rbp], 0 $LN65@stbi__conv: 00a2b 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv353[rbp] 00a32 eb 17 jmp SHORT $LN1@stbi__conv $LN5@stbi__conv: ; 1393 : } ; 1394 : #undef STBI__CASE ; 1395 : } 00a34 e9 ae f6 ff ff jmp $LN2@stbi__conv $LN3@stbi__conv: ; 1396 : ; 1397 : STBI_FREE(data); 00a39 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR data$[rbp] 00a40 ff 15 00 00 00 00 call QWORD PTR __imp_free 00a46 90 npad 1 ; 1398 : return good; 00a47 48 8b 45 48 mov rax, QWORD PTR good$[rbp] $LN1@stbi__conv: ; 1399 : } 00a4b 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] 00a52 5f pop rdi 00a53 5d pop rbp 00a54 c3 ret 0 00a55 0f 1f 00 npad 3 $LN66@stbi__conv: 00a58 00 00 00 00 DD $LN45@stbi__conv 00a5c 00 00 00 00 DD $LN46@stbi__conv 00a60 00 00 00 00 DD $LN47@stbi__conv 00a64 00 00 00 00 DD $LN57@stbi__conv 00a68 00 00 00 00 DD $LN57@stbi__conv 00a6c 00 00 00 00 DD $LN57@stbi__conv 00a70 00 00 00 00 DD $LN57@stbi__conv 00a74 00 00 00 00 DD $LN48@stbi__conv 00a78 00 00 00 00 DD $LN57@stbi__conv 00a7c 00 00 00 00 DD $LN49@stbi__conv 00a80 00 00 00 00 DD $LN50@stbi__conv 00a84 00 00 00 00 DD $LN57@stbi__conv 00a88 00 00 00 00 DD $LN57@stbi__conv 00a8c 00 00 00 00 DD $LN57@stbi__conv 00a90 00 00 00 00 DD $LN57@stbi__conv 00a94 00 00 00 00 DD $LN52@stbi__conv 00a98 00 00 00 00 DD $LN53@stbi__conv 00a9c 00 00 00 00 DD $LN57@stbi__conv 00aa0 00 00 00 00 DD $LN51@stbi__conv 00aa4 00 00 00 00 DD $LN57@stbi__conv 00aa8 00 00 00 00 DD $LN57@stbi__conv 00aac 00 00 00 00 DD $LN57@stbi__conv 00ab0 00 00 00 00 DD $LN57@stbi__conv 00ab4 00 00 00 00 DD $LN54@stbi__conv 00ab8 00 00 00 00 DD $LN55@stbi__conv 00abc 00 00 00 00 DD $LN56@stbi__conv stbi__convert_format ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__compute_y _TEXT SEGMENT r$ = 224 g$ = 232 b$ = 240 stbi__compute_y PROC ; COMDAT ; 1281 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 0000d 55 push rbp 0000e 57 push rdi 0000f 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00027 90 npad 1 ; 1282 : return (stbi_uc)(((r * 77) + (g * 150) + (29 * b)) >> 8); 00028 6b 85 e0 00 00 00 4d imul eax, DWORD PTR r$[rbp], 77 ; 0000004dH 0002f 69 8d e8 00 00 00 96 00 00 00 imul ecx, DWORD PTR g$[rbp], 150 ; 00000096H 00039 03 c1 add eax, ecx 0003b 6b 8d f0 00 00 00 1d imul ecx, DWORD PTR b$[rbp], 29 00042 03 c1 add eax, ecx 00044 c1 f8 08 sar eax, 8 ; 1283 : } 00047 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0004e 5f pop rdi 0004f 5d pop rbp 00050 c3 ret 0 stbi__compute_y ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__get32le _TEXT SEGMENT z$ = 4 s$ = 256 stbi__get32le PROC ; COMDAT ; 1255 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1256 : stbi__uint32 z = stbi__get16le(s); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get16le 0002c 89 45 04 mov DWORD PTR z$[rbp], eax ; 1257 : z += (stbi__uint32)stbi__get16le(s) << 16; 0002f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__get16le 0003b c1 e0 10 shl eax, 16 0003e 8b 4d 04 mov ecx, DWORD PTR z$[rbp] 00041 03 c8 add ecx, eax 00043 8b c1 mov eax, ecx 00045 89 45 04 mov DWORD PTR z$[rbp], eax ; 1258 : return z; 00048 8b 45 04 mov eax, DWORD PTR z$[rbp] ; 1259 : } 0004b 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00052 5f pop rdi 00053 5d pop rbp 00054 c3 ret 0 stbi__get32le ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__get16le _TEXT SEGMENT z$ = 4 s$ = 256 stbi__get16le PROC ; COMDAT ; 1247 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1248 : int z = stbi__get8(s); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get8 0002c 0f b6 c0 movzx eax, al 0002f 89 45 04 mov DWORD PTR z$[rbp], eax ; 1249 : return z + (stbi__get8(s) << 8); 00032 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00039 e8 00 00 00 00 call stbi__get8 0003e 0f b6 c0 movzx eax, al 00041 c1 e0 08 shl eax, 8 00044 8b 4d 04 mov ecx, DWORD PTR z$[rbp] 00047 03 c8 add ecx, eax 00049 8b c1 mov eax, ecx ; 1250 : } 0004b 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00052 5f pop rdi 00053 5d pop rbp 00054 c3 ret 0 stbi__get16le ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__get32be _TEXT SEGMENT z$ = 4 tv66 = 212 s$ = 256 stbi__get32be PROC ; COMDAT ; 1237 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1238 : stbi__uint32 z = stbi__get16be(s); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get16be 0002c 89 45 04 mov DWORD PTR z$[rbp], eax ; 1239 : return (z << 16) + stbi__get16be(s); 0002f 8b 45 04 mov eax, DWORD PTR z$[rbp] 00032 c1 e0 10 shl eax, 16 00035 89 85 d4 00 00 00 mov DWORD PTR tv66[rbp], eax 0003b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00042 e8 00 00 00 00 call stbi__get16be 00047 8b 8d d4 00 00 00 mov ecx, DWORD PTR tv66[rbp] 0004d 03 c8 add ecx, eax 0004f 8b c1 mov eax, ecx ; 1240 : } 00051 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00058 5f pop rdi 00059 5d pop rbp 0005a c3 ret 0 stbi__get32be ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__get16be _TEXT SEGMENT z$ = 4 tv67 = 212 s$ = 256 stbi__get16be PROC ; COMDAT ; 1227 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1228 : int z = stbi__get8(s); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get8 0002c 0f b6 c0 movzx eax, al 0002f 89 45 04 mov DWORD PTR z$[rbp], eax ; 1229 : return (z << 8) + stbi__get8(s); 00032 8b 45 04 mov eax, DWORD PTR z$[rbp] 00035 c1 e0 08 shl eax, 8 00038 89 85 d4 00 00 00 mov DWORD PTR tv67[rbp], eax 0003e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00045 e8 00 00 00 00 call stbi__get8 0004a 0f b6 c0 movzx eax, al 0004d 8b 8d d4 00 00 00 mov ecx, DWORD PTR tv67[rbp] 00053 03 c8 add ecx, eax 00055 8b c1 mov eax, ecx ; 1230 : } 00057 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 0005e 5f pop rdi 0005f 5d pop rbp 00060 c3 ret 0 stbi__get16be ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__getn _TEXT SEGMENT blen$1 = 4 res$2 = 36 count$3 = 68 tv87 = 276 s$ = 320 buffer$ = 328 n$ = 336 stbi__getn PROC ; COMDAT ; 1199 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 1200 : if (s->io.read) { 0002a 48 8b 85 40 01 00 00 mov rax, QWORD PTR s$[rbp] 00031 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 00036 0f 84 e1 00 00 00 je $LN2@stbi__getn ; 1201 : int blen = (int)(s->img_buffer_end - s->img_buffer); 0003c 48 8b 85 40 01 00 00 mov rax, QWORD PTR s$[rbp] 00043 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0004a 48 8b 89 c0 00 00 00 mov rcx, QWORD PTR [rcx+192] 00051 48 8b 80 c8 00 00 00 mov rax, QWORD PTR [rax+200] 00058 48 2b c1 sub rax, rcx 0005b 89 45 04 mov DWORD PTR blen$1[rbp], eax ; 1202 : if (blen < n) { 0005e 8b 85 50 01 00 00 mov eax, DWORD PTR n$[rbp] 00064 39 45 04 cmp DWORD PTR blen$1[rbp], eax 00067 0f 8d b0 00 00 00 jge $LN3@stbi__getn ; 1203 : int res, count; ; 1204 : ; 1205 : memcpy(buffer, s->img_buffer, blen); 0006d 48 63 45 04 movsxd rax, DWORD PTR blen$1[rbp] 00071 4c 8b c0 mov r8, rax 00074 48 8b 85 40 01 00 00 mov rax, QWORD PTR s$[rbp] 0007b 48 8b 90 c0 00 00 00 mov rdx, QWORD PTR [rax+192] 00082 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR buffer$[rbp] 00089 e8 00 00 00 00 call memcpy 0008e 90 npad 1 ; 1206 : ; 1207 : count = (s->io.read)(s->io_user_data, (char *)buffer + blen, n - blen); 0008f 8b 45 04 mov eax, DWORD PTR blen$1[rbp] 00092 8b 8d 50 01 00 00 mov ecx, DWORD PTR n$[rbp] 00098 2b c8 sub ecx, eax 0009a 8b c1 mov eax, ecx 0009c 48 63 4d 04 movsxd rcx, DWORD PTR blen$1[rbp] 000a0 48 8b 95 48 01 00 00 mov rdx, QWORD PTR buffer$[rbp] 000a7 48 03 d1 add rdx, rcx 000aa 48 8b ca mov rcx, rdx 000ad 44 8b c0 mov r8d, eax 000b0 48 8b d1 mov rdx, rcx 000b3 48 8b 85 40 01 00 00 mov rax, QWORD PTR s$[rbp] 000ba 48 8b 48 28 mov rcx, QWORD PTR [rax+40] 000be 48 8b 85 40 01 00 00 mov rax, QWORD PTR s$[rbp] 000c5 ff 50 10 call QWORD PTR [rax+16] 000c8 89 45 44 mov DWORD PTR count$3[rbp], eax ; 1208 : res = (count == (n - blen)); 000cb 8b 45 04 mov eax, DWORD PTR blen$1[rbp] 000ce 8b 8d 50 01 00 00 mov ecx, DWORD PTR n$[rbp] 000d4 2b c8 sub ecx, eax 000d6 8b c1 mov eax, ecx 000d8 39 45 44 cmp DWORD PTR count$3[rbp], eax 000db 75 0c jne SHORT $LN7@stbi__getn 000dd c7 85 14 01 00 00 01 00 00 00 mov DWORD PTR tv87[rbp], 1 000e7 eb 0a jmp SHORT $LN8@stbi__getn $LN7@stbi__getn: 000e9 c7 85 14 01 00 00 00 00 00 00 mov DWORD PTR tv87[rbp], 0 $LN8@stbi__getn: 000f3 8b 85 14 01 00 00 mov eax, DWORD PTR tv87[rbp] 000f9 89 45 24 mov DWORD PTR res$2[rbp], eax ; 1209 : s->img_buffer = s->img_buffer_end; 000fc 48 8b 85 40 01 00 00 mov rax, QWORD PTR s$[rbp] 00103 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0010a 48 8b 89 c8 00 00 00 mov rcx, QWORD PTR [rcx+200] 00111 48 89 88 c0 00 00 00 mov QWORD PTR [rax+192], rcx ; 1210 : return res; 00118 8b 45 24 mov eax, DWORD PTR res$2[rbp] 0011b eb 78 jmp SHORT $LN1@stbi__getn $LN3@stbi__getn: $LN2@stbi__getn: ; 1211 : } ; 1212 : } ; 1213 : ; 1214 : if (s->img_buffer + n <= s->img_buffer_end) { 0011d 48 63 85 50 01 00 00 movsxd rax, DWORD PTR n$[rbp] 00124 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0012b 48 03 81 c0 00 00 00 add rax, QWORD PTR [rcx+192] 00132 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00139 48 3b 81 c8 00 00 00 cmp rax, QWORD PTR [rcx+200] 00140 77 51 ja SHORT $LN4@stbi__getn ; 1215 : memcpy(buffer, s->img_buffer, n); 00142 48 63 85 50 01 00 00 movsxd rax, DWORD PTR n$[rbp] 00149 4c 8b c0 mov r8, rax 0014c 48 8b 85 40 01 00 00 mov rax, QWORD PTR s$[rbp] 00153 48 8b 90 c0 00 00 00 mov rdx, QWORD PTR [rax+192] 0015a 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR buffer$[rbp] 00161 e8 00 00 00 00 call memcpy 00166 90 npad 1 ; 1216 : s->img_buffer += n; 00167 48 63 85 50 01 00 00 movsxd rax, DWORD PTR n$[rbp] 0016e 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00175 48 03 81 c0 00 00 00 add rax, QWORD PTR [rcx+192] 0017c 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00183 48 89 81 c0 00 00 00 mov QWORD PTR [rcx+192], rax ; 1217 : return 1; 0018a b8 01 00 00 00 mov eax, 1 0018f eb 04 jmp SHORT $LN1@stbi__getn ; 1218 : } else 00191 eb 02 jmp SHORT $LN5@stbi__getn $LN4@stbi__getn: ; 1219 : return 0; 00193 33 c0 xor eax, eax $LN5@stbi__getn: $LN1@stbi__getn: ; 1220 : } 00195 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 0019c 5f pop rdi 0019d 5d pop rbp 0019e c3 ret 0 stbi__getn ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__skip _TEXT SEGMENT blen$1 = 4 s$ = 256 n$ = 264 stbi__skip PROC ; COMDAT ; 1176 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 1177 : if (n == 0) 00024 83 bd 08 01 00 00 00 cmp DWORD PTR n$[rbp], 0 0002b 75 05 jne SHORT $LN2@stbi__skip ; 1178 : return; // already there! 0002d e9 cb 00 00 00 jmp $LN1@stbi__skip $LN2@stbi__skip: ; 1179 : if (n < 0) { 00032 83 bd 08 01 00 00 00 cmp DWORD PTR n$[rbp], 0 00039 7d 21 jge SHORT $LN3@stbi__skip ; 1180 : s->img_buffer = s->img_buffer_end; 0003b 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00042 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00049 48 8b 89 c8 00 00 00 mov rcx, QWORD PTR [rcx+200] 00050 48 89 88 c0 00 00 00 mov QWORD PTR [rax+192], rcx ; 1181 : return; 00057 e9 a1 00 00 00 jmp $LN1@stbi__skip $LN3@stbi__skip: ; 1182 : } ; 1183 : if (s->io.read) { 0005c 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00063 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 00068 74 70 je SHORT $LN4@stbi__skip ; 1184 : int blen = (int)(s->img_buffer_end - s->img_buffer); 0006a 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00071 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00078 48 8b 89 c0 00 00 00 mov rcx, QWORD PTR [rcx+192] 0007f 48 8b 80 c8 00 00 00 mov rax, QWORD PTR [rax+200] 00086 48 2b c1 sub rax, rcx 00089 89 45 04 mov DWORD PTR blen$1[rbp], eax ; 1185 : if (blen < n) { 0008c 8b 85 08 01 00 00 mov eax, DWORD PTR n$[rbp] 00092 39 45 04 cmp DWORD PTR blen$1[rbp], eax 00095 7d 43 jge SHORT $LN5@stbi__skip ; 1186 : s->img_buffer = s->img_buffer_end; 00097 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 0009e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000a5 48 8b 89 c8 00 00 00 mov rcx, QWORD PTR [rcx+200] 000ac 48 89 88 c0 00 00 00 mov QWORD PTR [rax+192], rcx ; 1187 : (s->io.skip)(s->io_user_data, n - blen); 000b3 8b 45 04 mov eax, DWORD PTR blen$1[rbp] 000b6 8b 8d 08 01 00 00 mov ecx, DWORD PTR n$[rbp] 000bc 2b c8 sub ecx, eax 000be 8b c1 mov eax, ecx 000c0 8b d0 mov edx, eax 000c2 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 000c9 48 8b 48 28 mov rcx, QWORD PTR [rax+40] 000cd 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 000d4 ff 50 18 call QWORD PTR [rax+24] 000d7 90 npad 1 ; 1188 : return; 000d8 eb 23 jmp SHORT $LN1@stbi__skip $LN5@stbi__skip: $LN4@stbi__skip: ; 1189 : } ; 1190 : } ; 1191 : s->img_buffer += n; 000da 48 63 85 08 01 00 00 movsxd rax, DWORD PTR n$[rbp] 000e1 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000e8 48 03 81 c0 00 00 00 add rax, QWORD PTR [rcx+192] 000ef 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000f6 48 89 81 c0 00 00 00 mov QWORD PTR [rcx+192], rax $LN1@stbi__skip: ; 1192 : } 000fd 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00104 5f pop rdi 00105 5d pop rbp 00106 c3 ret 0 stbi__skip ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__at_eof _TEXT SEGMENT tv76 = 192 s$ = 240 stbi__at_eof PROC ; COMDAT ; 1156 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1157 : if (s->io.read) { 00020 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00027 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 0002c 74 31 je SHORT $LN2@stbi__at_e ; 1158 : if (!(s->io.eof)(s->io_user_data)) 0002e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00035 48 8b 48 28 mov rcx, QWORD PTR [rax+40] 00039 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00040 ff 50 20 call QWORD PTR [rax+32] 00043 85 c0 test eax, eax 00045 75 04 jne SHORT $LN3@stbi__at_e ; 1159 : return 0; 00047 33 c0 xor eax, eax 00049 eb 4e jmp SHORT $LN1@stbi__at_e $LN3@stbi__at_e: ; 1160 : // if feof() is true, check if buffer = end ; 1161 : // special case: we've only got the special 0 character at the end ; 1162 : if (s->read_from_callbacks == 0) 0004b 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00052 83 78 30 00 cmp DWORD PTR [rax+48], 0 00056 75 07 jne SHORT $LN4@stbi__at_e ; 1163 : return 1; 00058 b8 01 00 00 00 mov eax, 1 0005d eb 3a jmp SHORT $LN1@stbi__at_e $LN4@stbi__at_e: $LN2@stbi__at_e: ; 1164 : } ; 1165 : ; 1166 : return s->img_buffer >= s->img_buffer_end; 0005f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00066 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0006d 48 8b 89 c8 00 00 00 mov rcx, QWORD PTR [rcx+200] 00074 48 39 88 c0 00 00 00 cmp QWORD PTR [rax+192], rcx 0007b 72 0c jb SHORT $LN6@stbi__at_e 0007d c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv76[rbp], 1 00087 eb 0a jmp SHORT $LN7@stbi__at_e $LN6@stbi__at_e: 00089 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv76[rbp], 0 $LN7@stbi__at_e: 00093 8b 85 c0 00 00 00 mov eax, DWORD PTR tv76[rbp] $LN1@stbi__at_e: ; 1167 : } 00099 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000a0 5f pop rdi 000a1 5d pop rbp 000a2 c3 ret 0 stbi__at_eof ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__get8 _TEXT SEGMENT tv72 = 192 tv81 = 192 s$ = 240 stbi__get8 PROC ; COMDAT ; 1142 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1143 : if (s->img_buffer < s->img_buffer_end) 00020 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00027 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0002e 48 8b 89 c8 00 00 00 mov rcx, QWORD PTR [rcx+200] 00035 48 39 88 c0 00 00 00 cmp QWORD PTR [rax+192], rcx 0003c 73 3f jae SHORT $LN2@stbi__get8 ; 1144 : return *s->img_buffer++; 0003e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00045 48 8b 80 c0 00 00 00 mov rax, QWORD PTR [rax+192] 0004c 0f b6 00 movzx eax, BYTE PTR [rax] 0004f 88 85 c0 00 00 00 mov BYTE PTR tv72[rbp], al 00055 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0005c 48 8b 80 c0 00 00 00 mov rax, QWORD PTR [rax+192] 00063 48 ff c0 inc rax 00066 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0006d 48 89 81 c0 00 00 00 mov QWORD PTR [rcx+192], rax 00074 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv72[rbp] 0007b eb 5b jmp SHORT $LN1@stbi__get8 $LN2@stbi__get8: ; 1145 : if (s->read_from_callbacks) { 0007d 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00084 83 78 30 00 cmp DWORD PTR [rax+48], 0 00088 74 4c je SHORT $LN3@stbi__get8 ; 1146 : stbi__refill_buffer(s); 0008a 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR s$[rbp] 00091 e8 00 00 00 00 call stbi__refill_buffer 00096 90 npad 1 ; 1147 : return *s->img_buffer++; 00097 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0009e 48 8b 80 c0 00 00 00 mov rax, QWORD PTR [rax+192] 000a5 0f b6 00 movzx eax, BYTE PTR [rax] 000a8 88 85 c0 00 00 00 mov BYTE PTR tv81[rbp], al 000ae 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 000b5 48 8b 80 c0 00 00 00 mov rax, QWORD PTR [rax+192] 000bc 48 ff c0 inc rax 000bf 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR s$[rbp] 000c6 48 89 81 c0 00 00 00 mov QWORD PTR [rcx+192], rax 000cd 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv81[rbp] 000d4 eb 02 jmp SHORT $LN1@stbi__get8 $LN3@stbi__get8: ; 1148 : } ; 1149 : return 0; 000d6 32 c0 xor al, al $LN1@stbi__get8: ; 1150 : } 000d8 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000df 5f pop rdi 000e0 5d pop rbp 000e1 c3 ret 0 stbi__get8 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__loadf_main _TEXT SEGMENT data$ = 8 ri$4 = 40 hdr_data$5 = 88 tv89 = 292 tv129 = 296 __$ArrayPad$ = 304 s$ = 352 x$ = 360 y$ = 368 comp$ = 376 req_comp$ = 384 stbi__loadf_main PROC ; COMDAT ; 979 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 22 00 00 00 mov ecx, 34 ; 00000022H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 98 01 00 00 mov rcx, QWORD PTR [rsp+408] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 30 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 980 : unsigned char *data; ; 981 : #ifndef STBI_NO_HDR ; 982 : if (stbi__hdr_test(s)) { 00059 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR s$[rbp] 00060 e8 00 00 00 00 call stbi__hdr_test 00065 85 c0 test eax, eax 00067 74 71 je SHORT $LN2@stbi__load ; 983 : stbi__result_info ri; ; 984 : float *hdr_data = stbi__hdr_load(s, x, y, comp, req_comp, &ri); 00069 48 8d 45 28 lea rax, QWORD PTR ri$4[rbp] 0006d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 00072 8b 85 80 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00078 89 44 24 20 mov DWORD PTR [rsp+32], eax 0007c 4c 8b 8d 78 01 00 00 mov r9, QWORD PTR comp$[rbp] 00083 4c 8b 85 70 01 00 00 mov r8, QWORD PTR y$[rbp] 0008a 48 8b 95 68 01 00 00 mov rdx, QWORD PTR x$[rbp] 00091 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR s$[rbp] 00098 e8 00 00 00 00 call stbi__hdr_load 0009d 48 89 45 58 mov QWORD PTR hdr_data$5[rbp], rax ; 985 : if (hdr_data) 000a1 48 83 7d 58 00 cmp QWORD PTR hdr_data$5[rbp], 0 000a6 74 29 je SHORT $LN3@stbi__load ; 986 : stbi__float_postprocess(hdr_data, x, y, comp, req_comp); 000a8 8b 85 80 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 000ae 89 44 24 20 mov DWORD PTR [rsp+32], eax 000b2 4c 8b 8d 78 01 00 00 mov r9, QWORD PTR comp$[rbp] 000b9 4c 8b 85 70 01 00 00 mov r8, QWORD PTR y$[rbp] 000c0 48 8b 95 68 01 00 00 mov rdx, QWORD PTR x$[rbp] 000c7 48 8b 4d 58 mov rcx, QWORD PTR hdr_data$5[rbp] 000cb e8 00 00 00 00 call stbi__float_postprocess 000d0 90 npad 1 $LN3@stbi__load: ; 987 : return hdr_data; 000d1 48 8b 45 58 mov rax, QWORD PTR hdr_data$5[rbp] 000d5 e9 b0 00 00 00 jmp $LN1@stbi__load $LN2@stbi__load: ; 988 : } ; 989 : #endif ; 990 : data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); 000da 8b 85 80 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 000e0 89 44 24 20 mov DWORD PTR [rsp+32], eax 000e4 4c 8b 8d 78 01 00 00 mov r9, QWORD PTR comp$[rbp] 000eb 4c 8b 85 70 01 00 00 mov r8, QWORD PTR y$[rbp] 000f2 48 8b 95 68 01 00 00 mov rdx, QWORD PTR x$[rbp] 000f9 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR s$[rbp] 00100 e8 00 00 00 00 call stbi__load_and_postprocess_8bit 00105 48 89 45 08 mov QWORD PTR data$[rbp], rax ; 991 : if (data) 00109 48 83 7d 08 00 cmp QWORD PTR data$[rbp], 0 0010e 74 4b je SHORT $LN4@stbi__load ; 992 : return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); 00110 83 bd 80 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 00117 74 0e je SHORT $LN6@stbi__load 00119 8b 85 80 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 0011f 89 85 24 01 00 00 mov DWORD PTR tv89[rbp], eax 00125 eb 0f jmp SHORT $LN7@stbi__load $LN6@stbi__load: 00127 48 8b 85 78 01 00 00 mov rax, QWORD PTR comp$[rbp] 0012e 8b 00 mov eax, DWORD PTR [rax] 00130 89 85 24 01 00 00 mov DWORD PTR tv89[rbp], eax $LN7@stbi__load: 00136 44 8b 8d 24 01 00 00 mov r9d, DWORD PTR tv89[rbp] 0013d 48 8b 85 70 01 00 00 mov rax, QWORD PTR y$[rbp] 00144 44 8b 00 mov r8d, DWORD PTR [rax] 00147 48 8b 85 68 01 00 00 mov rax, QWORD PTR x$[rbp] 0014e 8b 10 mov edx, DWORD PTR [rax] 00150 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp] 00154 e8 00 00 00 00 call stbi__ldr_to_hdr 00159 eb 2f jmp SHORT $LN1@stbi__load $LN4@stbi__load: ; 993 : return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); 0015b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@CBEDEJPH@unknown?5image?5type@ 00162 e8 00 00 00 00 call stbi__err 00167 85 c0 test eax, eax 00169 74 0d je SHORT $LN8@stbi__load 0016b 48 c7 85 28 01 00 00 00 00 00 00 mov QWORD PTR tv129[rbp], 0 00176 eb 0b jmp SHORT $LN9@stbi__load $LN8@stbi__load: 00178 48 c7 85 28 01 00 00 00 00 00 00 mov QWORD PTR tv129[rbp], 0 $LN9@stbi__load: 00183 48 8b 85 28 01 00 00 mov rax, QWORD PTR tv129[rbp] $LN1@stbi__load: ; 994 : } 0018a 48 8b f8 mov rdi, rax 0018d 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00191 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__loadf_main$rtcFrameData 00198 e8 00 00 00 00 call _RTC_CheckStackVars 0019d 48 8b c7 mov rax, rdi 001a0 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 001a7 48 33 cd xor rcx, rbp 001aa e8 00 00 00 00 call __security_check_cookie 001af 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 001b6 5f pop rdi 001b7 5d pop rbp 001b8 c3 ret 0 stbi__loadf_main ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__fopen _TEXT SEGMENT f$ = 8 __$ArrayPad$ = 216 filename$ = 256 mode$ = 264 stbi__fopen PROC ; COMDAT ; 836 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001d b9 0a 00 00 00 mov ecx, 10 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 28 01 00 00 mov rcx, QWORD PTR [rsp+296] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0004e 90 npad 1 ; 837 : FILE *f; ; 838 : #if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) ; 839 : wchar_t wMode[64]; ; 840 : wchar_t wFilename[1024]; ; 841 : if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, ; 842 : sizeof(wFilename) / sizeof(*wFilename))) ; 843 : return 0; ; 844 : ; 845 : if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, ; 846 : sizeof(wMode) / sizeof(*wMode))) ; 847 : return 0; ; 848 : ; 849 : #if defined(_MSC_VER) && _MSC_VER >= 1400 ; 850 : if (0 != _wfopen_s(&f, wFilename, wMode)) ; 851 : f = 0; ; 852 : #else ; 853 : f = _wfopen(wFilename, wMode); ; 854 : #endif ; 855 : ; 856 : #elif defined(_MSC_VER) && _MSC_VER >= 1400 ; 857 : if (0 != fopen_s(&f, filename, mode)) 0004f 4c 8b 85 08 01 00 00 mov r8, QWORD PTR mode$[rbp] 00056 48 8b 95 00 01 00 00 mov rdx, QWORD PTR filename$[rbp] 0005d 48 8d 4d 08 lea rcx, QWORD PTR f$[rbp] 00061 ff 15 00 00 00 00 call QWORD PTR __imp_fopen_s 00067 85 c0 test eax, eax 00069 74 08 je SHORT $LN2@stbi__fope ; 858 : f = 0; 0006b 48 c7 45 08 00 00 00 00 mov QWORD PTR f$[rbp], 0 $LN2@stbi__fope: ; 859 : #else ; 860 : f = fopen(filename, mode); ; 861 : #endif ; 862 : return f; 00073 48 8b 45 08 mov rax, QWORD PTR f$[rbp] ; 863 : } 00077 48 8b f8 mov rdi, rax 0007a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0007e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__fopen$rtcFrameData 00085 e8 00 00 00 00 call _RTC_CheckStackVars 0008a 48 8b c7 mov rax, rdi 0008d 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00094 48 33 cd xor rcx, rbp 00097 e8 00 00 00 00 call __security_check_cookie 0009c 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000a3 5f pop rdi 000a4 5d pop rbp 000a5 c3 ret 0 stbi__fopen ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__float_postprocess _TEXT SEGMENT channels$1 = 4 tv77 = 212 tv81 = 212 result$ = 256 x$ = 264 y$ = 272 comp$ = 280 req_comp$ = 288 stbi__float_postprocess PROC ; COMDAT ; 807 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 808 : if (stbi__vertically_flip_on_load && result != NULL) { 0002f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set 00034 8b c0 mov eax, eax 00036 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0003c 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00045 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00049 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 0004d 74 25 je SHORT $LN4@stbi__floa 0004f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local 00054 8b c0 mov eax, eax 00056 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0005c 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00065 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00069 8b 04 08 mov eax, DWORD PTR [rax+rcx] 0006c 89 85 d4 00 00 00 mov DWORD PTR tv77[rbp], eax 00072 eb 0c jmp SHORT $LN5@stbi__floa $LN4@stbi__floa: 00074 8b 05 00 00 00 00 mov eax, DWORD PTR stbi__vertically_flip_on_load_global 0007a 89 85 d4 00 00 00 mov DWORD PTR tv77[rbp], eax $LN5@stbi__floa: 00080 83 bd d4 00 00 00 00 cmp DWORD PTR tv77[rbp], 0 00087 74 64 je SHORT $LN2@stbi__floa 00089 48 83 bd 00 01 00 00 00 cmp QWORD PTR result$[rbp], 0 00091 74 5a je SHORT $LN2@stbi__floa ; 809 : int channels = req_comp ? req_comp : *comp; 00093 83 bd 20 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 0009a 74 0e je SHORT $LN6@stbi__floa 0009c 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 000a2 89 85 d4 00 00 00 mov DWORD PTR tv81[rbp], eax 000a8 eb 0f jmp SHORT $LN7@stbi__floa $LN6@stbi__floa: 000aa 48 8b 85 18 01 00 00 mov rax, QWORD PTR comp$[rbp] 000b1 8b 00 mov eax, DWORD PTR [rax] 000b3 89 85 d4 00 00 00 mov DWORD PTR tv81[rbp], eax $LN7@stbi__floa: 000b9 8b 85 d4 00 00 00 mov eax, DWORD PTR tv81[rbp] 000bf 89 45 04 mov DWORD PTR channels$1[rbp], eax ; 810 : stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); 000c2 48 63 45 04 movsxd rax, DWORD PTR channels$1[rbp] 000c6 48 c1 e0 02 shl rax, 2 000ca 44 8b c8 mov r9d, eax 000cd 48 8b 85 10 01 00 00 mov rax, QWORD PTR y$[rbp] 000d4 44 8b 00 mov r8d, DWORD PTR [rax] 000d7 48 8b 85 08 01 00 00 mov rax, QWORD PTR x$[rbp] 000de 8b 10 mov edx, DWORD PTR [rax] 000e0 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR result$[rbp] 000e7 e8 00 00 00 00 call stbi__vertical_flip 000ec 90 npad 1 $LN2@stbi__floa: ; 811 : } ; 812 : } 000ed 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 000f4 5f pop rdi 000f5 5d pop rbp 000f6 c3 ret 0 stbi__float_postprocess ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__load_and_postprocess_16bit _TEXT SEGMENT ri$ = 8 result$ = 56 channels$4 = 84 tv82 = 292 tv132 = 292 tv135 = 292 __$ArrayPad$ = 296 s$ = 336 x$ = 344 y$ = 352 comp$ = 360 req_comp$ = 368 stbi__load_and_postprocess_16bit PROC ; COMDAT ; 778 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0001d 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] 00022 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] 00027 b9 1e 00 00 00 mov ecx, 30 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 98 01 00 00 mov rcx, QWORD PTR [rsp+408] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 779 : stbi__result_info ri; ; 780 : void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); 00059 c7 44 24 30 10 00 00 00 mov DWORD PTR [rsp+48], 16 00061 48 8d 45 08 lea rax, QWORD PTR ri$[rbp] 00065 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 0006a 8b 85 70 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax 00074 4c 8b 8d 68 01 00 00 mov r9, QWORD PTR comp$[rbp] 0007b 4c 8b 85 60 01 00 00 mov r8, QWORD PTR y$[rbp] 00082 48 8b 95 58 01 00 00 mov rdx, QWORD PTR x$[rbp] 00089 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR s$[rbp] 00090 e8 00 00 00 00 call stbi__load_main 00095 48 89 45 38 mov QWORD PTR result$[rbp], rax ; 781 : ; 782 : if (result == NULL) 00099 48 83 7d 38 00 cmp QWORD PTR result$[rbp], 0 0009e 75 07 jne SHORT $LN2@stbi__load ; 783 : return NULL; 000a0 33 c0 xor eax, eax 000a2 e9 36 01 00 00 jmp $LN1@stbi__load $LN2@stbi__load: ; 784 : ; 785 : // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. ; 786 : STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); 000a7 83 7d 08 08 cmp DWORD PTR ri$[rbp], 8 000ab 74 22 je SHORT $LN6@stbi__load 000ad 83 7d 08 10 cmp DWORD PTR ri$[rbp], 16 000b1 74 1c je SHORT $LN6@stbi__load 000b3 41 b8 12 03 00 00 mov r8d, 786 ; 00000312H 000b9 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 000c0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ 000c7 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 000cd 33 c0 xor eax, eax $LN6@stbi__load: ; 787 : ; 788 : if (ri.bits_per_channel != 16) { 000cf 83 7d 08 10 cmp DWORD PTR ri$[rbp], 16 000d3 74 54 je SHORT $LN3@stbi__load ; 789 : result = stbi__convert_8_to_16((stbi_uc *)result, *x, *y, 000d5 83 bd 70 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 000dc 75 11 jne SHORT $LN7@stbi__load 000de 48 8b 85 68 01 00 00 mov rax, QWORD PTR comp$[rbp] 000e5 8b 00 mov eax, DWORD PTR [rax] 000e7 89 85 24 01 00 00 mov DWORD PTR tv82[rbp], eax 000ed eb 0c jmp SHORT $LN8@stbi__load $LN7@stbi__load: 000ef 8b 85 70 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 000f5 89 85 24 01 00 00 mov DWORD PTR tv82[rbp], eax $LN8@stbi__load: 000fb 44 8b 8d 24 01 00 00 mov r9d, DWORD PTR tv82[rbp] 00102 48 8b 85 60 01 00 00 mov rax, QWORD PTR y$[rbp] 00109 44 8b 00 mov r8d, DWORD PTR [rax] 0010c 48 8b 85 58 01 00 00 mov rax, QWORD PTR x$[rbp] 00113 8b 10 mov edx, DWORD PTR [rax] 00115 48 8b 4d 38 mov rcx, QWORD PTR result$[rbp] 00119 e8 00 00 00 00 call stbi__convert_8_to_16 0011e 48 89 45 38 mov QWORD PTR result$[rbp], rax ; 790 : req_comp == 0 ? *comp : req_comp); ; 791 : ri.bits_per_channel = 16; 00122 c7 45 08 10 00 00 00 mov DWORD PTR ri$[rbp], 16 $LN3@stbi__load: ; 792 : } ; 793 : ; 794 : // @TODO: move stbi__convert_format16 to here ; 795 : // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision ; 796 : ; 797 : if (stbi__vertically_flip_on_load) { 00129 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set 0012e 8b c0 mov eax, eax 00130 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00136 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 0013f 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00143 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 00147 74 25 je SHORT $LN9@stbi__load 00149 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local 0014e 8b c0 mov eax, eax 00150 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00156 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 0015f 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00163 8b 04 08 mov eax, DWORD PTR [rax+rcx] 00166 89 85 24 01 00 00 mov DWORD PTR tv132[rbp], eax 0016c eb 0c jmp SHORT $LN10@stbi__load $LN9@stbi__load: 0016e 8b 05 00 00 00 00 mov eax, DWORD PTR stbi__vertically_flip_on_load_global 00174 89 85 24 01 00 00 mov DWORD PTR tv132[rbp], eax $LN10@stbi__load: 0017a 83 bd 24 01 00 00 00 cmp DWORD PTR tv132[rbp], 0 00181 74 56 je SHORT $LN4@stbi__load ; 798 : int channels = req_comp ? req_comp : *comp; 00183 83 bd 70 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 0018a 74 0e je SHORT $LN11@stbi__load 0018c 8b 85 70 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00192 89 85 24 01 00 00 mov DWORD PTR tv135[rbp], eax 00198 eb 0f jmp SHORT $LN12@stbi__load $LN11@stbi__load: 0019a 48 8b 85 68 01 00 00 mov rax, QWORD PTR comp$[rbp] 001a1 8b 00 mov eax, DWORD PTR [rax] 001a3 89 85 24 01 00 00 mov DWORD PTR tv135[rbp], eax $LN12@stbi__load: 001a9 8b 85 24 01 00 00 mov eax, DWORD PTR tv135[rbp] 001af 89 45 54 mov DWORD PTR channels$4[rbp], eax ; 799 : stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); 001b2 48 63 45 54 movsxd rax, DWORD PTR channels$4[rbp] 001b6 48 d1 e0 shl rax, 1 001b9 44 8b c8 mov r9d, eax 001bc 48 8b 85 60 01 00 00 mov rax, QWORD PTR y$[rbp] 001c3 44 8b 00 mov r8d, DWORD PTR [rax] 001c6 48 8b 85 58 01 00 00 mov rax, QWORD PTR x$[rbp] 001cd 8b 10 mov edx, DWORD PTR [rax] 001cf 48 8b 4d 38 mov rcx, QWORD PTR result$[rbp] 001d3 e8 00 00 00 00 call stbi__vertical_flip 001d8 90 npad 1 $LN4@stbi__load: ; 800 : } ; 801 : ; 802 : return (stbi__uint16 *)result; 001d9 48 8b 45 38 mov rax, QWORD PTR result$[rbp] $LN1@stbi__load: ; 803 : } 001dd 48 8b f8 mov rdi, rax 001e0 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] 001e4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__load_and_postprocess_16bit$rtcFrameData 001eb e8 00 00 00 00 call _RTC_CheckStackVars 001f0 48 8b c7 mov rax, rdi 001f3 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 001fa 48 33 cd xor rcx, rbp 001fd e8 00 00 00 00 call __security_check_cookie 00202 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] 00209 5f pop rdi 0020a 5d pop rbp 0020b c3 ret 0 stbi__load_and_postprocess_16bit ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__load_and_postprocess_8bit _TEXT SEGMENT ri$ = 8 result$ = 56 channels$4 = 84 tv82 = 292 tv132 = 292 tv135 = 292 __$ArrayPad$ = 296 s$ = 336 x$ = 344 y$ = 352 comp$ = 360 req_comp$ = 368 stbi__load_and_postprocess_8bit PROC ; COMDAT ; 750 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0001d 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] 00022 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] 00027 b9 1e 00 00 00 mov ecx, 30 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 98 01 00 00 mov rcx, QWORD PTR [rsp+408] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 751 : stbi__result_info ri; ; 752 : void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); 00059 c7 44 24 30 08 00 00 00 mov DWORD PTR [rsp+48], 8 00061 48 8d 45 08 lea rax, QWORD PTR ri$[rbp] 00065 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 0006a 8b 85 70 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax 00074 4c 8b 8d 68 01 00 00 mov r9, QWORD PTR comp$[rbp] 0007b 4c 8b 85 60 01 00 00 mov r8, QWORD PTR y$[rbp] 00082 48 8b 95 58 01 00 00 mov rdx, QWORD PTR x$[rbp] 00089 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR s$[rbp] 00090 e8 00 00 00 00 call stbi__load_main 00095 48 89 45 38 mov QWORD PTR result$[rbp], rax ; 753 : ; 754 : if (result == NULL) 00099 48 83 7d 38 00 cmp QWORD PTR result$[rbp], 0 0009e 75 07 jne SHORT $LN2@stbi__load ; 755 : return NULL; 000a0 33 c0 xor eax, eax 000a2 e9 30 01 00 00 jmp $LN1@stbi__load $LN2@stbi__load: ; 756 : ; 757 : // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. ; 758 : STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); 000a7 83 7d 08 08 cmp DWORD PTR ri$[rbp], 8 000ab 74 22 je SHORT $LN6@stbi__load 000ad 83 7d 08 10 cmp DWORD PTR ri$[rbp], 16 000b1 74 1c je SHORT $LN6@stbi__load 000b3 41 b8 f6 02 00 00 mov r8d, 758 ; 000002f6H 000b9 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 000c0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1GM@LFNCFCEN@?$AAr?$AAi?$AA?4?$AAb?$AAi?$AAt?$AAs?$AA_?$AAp?$AAe?$AAr?$AA_?$AAc?$AAh?$AAa@ 000c7 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 000cd 33 c0 xor eax, eax $LN6@stbi__load: ; 759 : ; 760 : if (ri.bits_per_channel != 8) { 000cf 83 7d 08 08 cmp DWORD PTR ri$[rbp], 8 000d3 74 54 je SHORT $LN3@stbi__load ; 761 : result = stbi__convert_16_to_8((stbi__uint16 *)result, *x, *y, 000d5 83 bd 70 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 000dc 75 11 jne SHORT $LN7@stbi__load 000de 48 8b 85 68 01 00 00 mov rax, QWORD PTR comp$[rbp] 000e5 8b 00 mov eax, DWORD PTR [rax] 000e7 89 85 24 01 00 00 mov DWORD PTR tv82[rbp], eax 000ed eb 0c jmp SHORT $LN8@stbi__load $LN7@stbi__load: 000ef 8b 85 70 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 000f5 89 85 24 01 00 00 mov DWORD PTR tv82[rbp], eax $LN8@stbi__load: 000fb 44 8b 8d 24 01 00 00 mov r9d, DWORD PTR tv82[rbp] 00102 48 8b 85 60 01 00 00 mov rax, QWORD PTR y$[rbp] 00109 44 8b 00 mov r8d, DWORD PTR [rax] 0010c 48 8b 85 58 01 00 00 mov rax, QWORD PTR x$[rbp] 00113 8b 10 mov edx, DWORD PTR [rax] 00115 48 8b 4d 38 mov rcx, QWORD PTR result$[rbp] 00119 e8 00 00 00 00 call stbi__convert_16_to_8 0011e 48 89 45 38 mov QWORD PTR result$[rbp], rax ; 762 : req_comp == 0 ? *comp : req_comp); ; 763 : ri.bits_per_channel = 8; 00122 c7 45 08 08 00 00 00 mov DWORD PTR ri$[rbp], 8 $LN3@stbi__load: ; 764 : } ; 765 : ; 766 : // @TODO: move stbi__convert_format to here ; 767 : ; 768 : if (stbi__vertically_flip_on_load) { 00129 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set 0012e 8b c0 mov eax, eax 00130 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00136 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 0013f 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00143 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 00147 74 25 je SHORT $LN9@stbi__load 00149 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local 0014e 8b c0 mov eax, eax 00150 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00156 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 0015f 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00163 8b 04 08 mov eax, DWORD PTR [rax+rcx] 00166 89 85 24 01 00 00 mov DWORD PTR tv132[rbp], eax 0016c eb 0c jmp SHORT $LN10@stbi__load $LN9@stbi__load: 0016e 8b 05 00 00 00 00 mov eax, DWORD PTR stbi__vertically_flip_on_load_global 00174 89 85 24 01 00 00 mov DWORD PTR tv132[rbp], eax $LN10@stbi__load: 0017a 83 bd 24 01 00 00 00 cmp DWORD PTR tv132[rbp], 0 00181 74 50 je SHORT $LN4@stbi__load ; 769 : int channels = req_comp ? req_comp : *comp; 00183 83 bd 70 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 0018a 74 0e je SHORT $LN11@stbi__load 0018c 8b 85 70 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00192 89 85 24 01 00 00 mov DWORD PTR tv135[rbp], eax 00198 eb 0f jmp SHORT $LN12@stbi__load $LN11@stbi__load: 0019a 48 8b 85 68 01 00 00 mov rax, QWORD PTR comp$[rbp] 001a1 8b 00 mov eax, DWORD PTR [rax] 001a3 89 85 24 01 00 00 mov DWORD PTR tv135[rbp], eax $LN12@stbi__load: 001a9 8b 85 24 01 00 00 mov eax, DWORD PTR tv135[rbp] 001af 89 45 54 mov DWORD PTR channels$4[rbp], eax ; 770 : stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); 001b2 44 8b 4d 54 mov r9d, DWORD PTR channels$4[rbp] 001b6 48 8b 85 60 01 00 00 mov rax, QWORD PTR y$[rbp] 001bd 44 8b 00 mov r8d, DWORD PTR [rax] 001c0 48 8b 85 58 01 00 00 mov rax, QWORD PTR x$[rbp] 001c7 8b 10 mov edx, DWORD PTR [rax] 001c9 48 8b 4d 38 mov rcx, QWORD PTR result$[rbp] 001cd e8 00 00 00 00 call stbi__vertical_flip 001d2 90 npad 1 $LN4@stbi__load: ; 771 : } ; 772 : ; 773 : return (unsigned char *)result; 001d3 48 8b 45 38 mov rax, QWORD PTR result$[rbp] $LN1@stbi__load: ; 774 : } 001d7 48 8b f8 mov rdi, rax 001da 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] 001de 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__load_and_postprocess_8bit$rtcFrameData 001e5 e8 00 00 00 00 call _RTC_CheckStackVars 001ea 48 8b c7 mov rax, rdi 001ed 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 001f4 48 33 cd xor rcx, rbp 001f7 e8 00 00 00 00 call __security_check_cookie 001fc 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] 00203 5f pop rdi 00204 5d pop rbp 00205 c3 ret 0 stbi__load_and_postprocess_8bit ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__vertical_flip_slices _TEXT SEGMENT slice$ = 4 slice_size$ = 36 bytes$ = 72 image$ = 320 w$ = 328 h$ = 336 z$ = 344 bytes_per_pixel$ = 352 stbi__vertical_flip_slices PROC ; COMDAT ; 736 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002d 90 npad 1 ; 737 : int slice; ; 738 : int slice_size = w * h * bytes_per_pixel; 0002e 8b 85 48 01 00 00 mov eax, DWORD PTR w$[rbp] 00034 0f af 85 50 01 00 00 imul eax, DWORD PTR h$[rbp] 0003b 0f af 85 60 01 00 00 imul eax, DWORD PTR bytes_per_pixel$[rbp] 00042 89 45 24 mov DWORD PTR slice_size$[rbp], eax ; 739 : ; 740 : stbi_uc *bytes = (stbi_uc *)image; 00045 48 8b 85 40 01 00 00 mov rax, QWORD PTR image$[rbp] 0004c 48 89 45 48 mov QWORD PTR bytes$[rbp], rax ; 741 : for (slice = 0; slice < z; ++slice) { 00050 c7 45 04 00 00 00 00 mov DWORD PTR slice$[rbp], 0 00057 eb 08 jmp SHORT $LN4@stbi__vert $LN2@stbi__vert: 00059 8b 45 04 mov eax, DWORD PTR slice$[rbp] 0005c ff c0 inc eax 0005e 89 45 04 mov DWORD PTR slice$[rbp], eax $LN4@stbi__vert: 00061 8b 85 58 01 00 00 mov eax, DWORD PTR z$[rbp] 00067 39 45 04 cmp DWORD PTR slice$[rbp], eax 0006a 7d 32 jge SHORT $LN3@stbi__vert ; 742 : stbi__vertical_flip(bytes, w, h, bytes_per_pixel); 0006c 44 8b 8d 60 01 00 00 mov r9d, DWORD PTR bytes_per_pixel$[rbp] 00073 44 8b 85 50 01 00 00 mov r8d, DWORD PTR h$[rbp] 0007a 8b 95 48 01 00 00 mov edx, DWORD PTR w$[rbp] 00080 48 8b 4d 48 mov rcx, QWORD PTR bytes$[rbp] 00084 e8 00 00 00 00 call stbi__vertical_flip 00089 90 npad 1 ; 743 : bytes += slice_size; 0008a 48 63 45 24 movsxd rax, DWORD PTR slice_size$[rbp] 0008e 48 8b 4d 48 mov rcx, QWORD PTR bytes$[rbp] 00092 48 03 c8 add rcx, rax 00095 48 8b c1 mov rax, rcx 00098 48 89 45 48 mov QWORD PTR bytes$[rbp], rax ; 744 : } 0009c eb bb jmp SHORT $LN2@stbi__vert $LN3@stbi__vert: ; 745 : } 0009e 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 000a5 5f pop rdi 000a6 5d pop rbp 000a7 c3 ret 0 stbi__vertical_flip_slices ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__vertical_flip _TEXT SEGMENT row$ = 4 bytes_per_row$ = 40 temp$ = 80 bytes$ = 2152 row0$4 = 2184 row1$5 = 2216 bytes_left$6 = 2248 bytes_copy$7 = 2280 tv80 = 3256 __$ArrayPad$ = 3264 image$ = 3312 w$ = 3320 h$ = 3328 bytes_per_pixel$ = 3336 stbi__vertical_flip PROC ; COMDAT ; 711 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec f8 0c 00 00 sub rsp, 3320 ; 00000cf8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00026 b9 46 02 00 00 mov ecx, 582 ; 00000246H 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00030 f3 ab rep stosd 00032 48 8b 8c 24 18 0d 00 00 mov rcx, QWORD PTR [rsp+3352] 0003a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00041 48 33 c5 xor rax, rbp 00044 48 89 85 c0 0c 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00057 90 npad 1 ; 712 : int row; ; 713 : size_t bytes_per_row = (size_t)w * bytes_per_pixel; 00058 48 63 85 f8 0c 00 00 movsxd rax, DWORD PTR w$[rbp] 0005f 48 63 8d 08 0d 00 00 movsxd rcx, DWORD PTR bytes_per_pixel$[rbp] 00066 48 0f af c1 imul rax, rcx 0006a 48 89 45 28 mov QWORD PTR bytes_per_row$[rbp], rax ; 714 : stbi_uc temp[2048]; ; 715 : stbi_uc *bytes = (stbi_uc *)image; 0006e 48 8b 85 f0 0c 00 00 mov rax, QWORD PTR image$[rbp] 00075 48 89 85 68 08 00 00 mov QWORD PTR bytes$[rbp], rax ; 716 : ; 717 : for (row = 0; row < (h >> 1); row++) { 0007c c7 45 04 00 00 00 00 mov DWORD PTR row$[rbp], 0 00083 eb 08 jmp SHORT $LN4@stbi__vert $LN2@stbi__vert: 00085 8b 45 04 mov eax, DWORD PTR row$[rbp] 00088 ff c0 inc eax 0008a 89 45 04 mov DWORD PTR row$[rbp], eax $LN4@stbi__vert: 0008d 8b 85 00 0d 00 00 mov eax, DWORD PTR h$[rbp] 00093 d1 f8 sar eax, 1 00095 39 45 04 cmp DWORD PTR row$[rbp], eax 00098 0f 8d 3c 01 00 00 jge $LN3@stbi__vert ; 718 : stbi_uc *row0 = bytes + row * bytes_per_row; 0009e 48 63 45 04 movsxd rax, DWORD PTR row$[rbp] 000a2 48 0f af 45 28 imul rax, QWORD PTR bytes_per_row$[rbp] 000a7 48 8b 8d 68 08 00 00 mov rcx, QWORD PTR bytes$[rbp] 000ae 48 03 c8 add rcx, rax 000b1 48 8b c1 mov rax, rcx 000b4 48 89 85 88 08 00 00 mov QWORD PTR row0$4[rbp], rax ; 719 : stbi_uc *row1 = bytes + (h - row - 1) * bytes_per_row; 000bb 8b 45 04 mov eax, DWORD PTR row$[rbp] 000be 8b 8d 00 0d 00 00 mov ecx, DWORD PTR h$[rbp] 000c4 2b c8 sub ecx, eax 000c6 8b c1 mov eax, ecx 000c8 ff c8 dec eax 000ca 48 98 cdqe 000cc 48 0f af 45 28 imul rax, QWORD PTR bytes_per_row$[rbp] 000d1 48 8b 8d 68 08 00 00 mov rcx, QWORD PTR bytes$[rbp] 000d8 48 03 c8 add rcx, rax 000db 48 8b c1 mov rax, rcx 000de 48 89 85 a8 08 00 00 mov QWORD PTR row1$5[rbp], rax ; 720 : // swap row0 with row1 ; 721 : size_t bytes_left = bytes_per_row; 000e5 48 8b 45 28 mov rax, QWORD PTR bytes_per_row$[rbp] 000e9 48 89 85 c8 08 00 00 mov QWORD PTR bytes_left$6[rbp], rax $LN5@stbi__vert: ; 722 : while (bytes_left) { 000f0 48 83 bd c8 08 00 00 00 cmp QWORD PTR bytes_left$6[rbp], 0 000f8 0f 84 d7 00 00 00 je $LN6@stbi__vert ; 723 : size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); 000fe 48 81 bd c8 08 00 00 00 08 00 00 cmp QWORD PTR bytes_left$6[rbp], 2048 ; 00000800H 00109 73 10 jae SHORT $LN8@stbi__vert 0010b 48 8b 85 c8 08 00 00 mov rax, QWORD PTR bytes_left$6[rbp] 00112 48 89 85 b8 0c 00 00 mov QWORD PTR tv80[rbp], rax 00119 eb 0b jmp SHORT $LN9@stbi__vert $LN8@stbi__vert: 0011b 48 c7 85 b8 0c 00 00 00 08 00 00 mov QWORD PTR tv80[rbp], 2048 ; 00000800H $LN9@stbi__vert: 00126 48 8b 85 b8 0c 00 00 mov rax, QWORD PTR tv80[rbp] 0012d 48 89 85 e8 08 00 00 mov QWORD PTR bytes_copy$7[rbp], rax ; 724 : memcpy(temp, row0, bytes_copy); 00134 4c 8b 85 e8 08 00 00 mov r8, QWORD PTR bytes_copy$7[rbp] 0013b 48 8b 95 88 08 00 00 mov rdx, QWORD PTR row0$4[rbp] 00142 48 8d 4d 50 lea rcx, QWORD PTR temp$[rbp] 00146 e8 00 00 00 00 call memcpy 0014b 90 npad 1 ; 725 : memcpy(row0, row1, bytes_copy); 0014c 4c 8b 85 e8 08 00 00 mov r8, QWORD PTR bytes_copy$7[rbp] 00153 48 8b 95 a8 08 00 00 mov rdx, QWORD PTR row1$5[rbp] 0015a 48 8b 8d 88 08 00 00 mov rcx, QWORD PTR row0$4[rbp] 00161 e8 00 00 00 00 call memcpy 00166 90 npad 1 ; 726 : memcpy(row1, temp, bytes_copy); 00167 4c 8b 85 e8 08 00 00 mov r8, QWORD PTR bytes_copy$7[rbp] 0016e 48 8d 55 50 lea rdx, QWORD PTR temp$[rbp] 00172 48 8b 8d a8 08 00 00 mov rcx, QWORD PTR row1$5[rbp] 00179 e8 00 00 00 00 call memcpy 0017e 90 npad 1 ; 727 : row0 += bytes_copy; 0017f 48 8b 85 e8 08 00 00 mov rax, QWORD PTR bytes_copy$7[rbp] 00186 48 8b 8d 88 08 00 00 mov rcx, QWORD PTR row0$4[rbp] 0018d 48 03 c8 add rcx, rax 00190 48 8b c1 mov rax, rcx 00193 48 89 85 88 08 00 00 mov QWORD PTR row0$4[rbp], rax ; 728 : row1 += bytes_copy; 0019a 48 8b 85 e8 08 00 00 mov rax, QWORD PTR bytes_copy$7[rbp] 001a1 48 8b 8d a8 08 00 00 mov rcx, QWORD PTR row1$5[rbp] 001a8 48 03 c8 add rcx, rax 001ab 48 8b c1 mov rax, rcx 001ae 48 89 85 a8 08 00 00 mov QWORD PTR row1$5[rbp], rax ; 729 : bytes_left -= bytes_copy; 001b5 48 8b 85 e8 08 00 00 mov rax, QWORD PTR bytes_copy$7[rbp] 001bc 48 8b 8d c8 08 00 00 mov rcx, QWORD PTR bytes_left$6[rbp] 001c3 48 2b c8 sub rcx, rax 001c6 48 8b c1 mov rax, rcx 001c9 48 89 85 c8 08 00 00 mov QWORD PTR bytes_left$6[rbp], rax ; 730 : } 001d0 e9 1b ff ff ff jmp $LN5@stbi__vert $LN6@stbi__vert: ; 731 : } 001d5 e9 ab fe ff ff jmp $LN2@stbi__vert $LN3@stbi__vert: ; 732 : } 001da 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 001de 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__vertical_flip$rtcFrameData 001e5 e8 00 00 00 00 call _RTC_CheckStackVars 001ea 48 8b 8d c0 0c 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 001f1 48 33 cd xor rcx, rbp 001f4 e8 00 00 00 00 call __security_check_cookie 001f9 48 8d a5 d8 0c 00 00 lea rsp, QWORD PTR [rbp+3288] 00200 5f pop rdi 00201 5d pop rbp 00202 c3 ret 0 stbi__vertical_flip ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__convert_8_to_16 _TEXT SEGMENT i$ = 4 img_len$ = 36 enlarged$ = 72 tv74 = 280 orig$ = 320 w$ = 328 h$ = 336 channels$ = 344 stbi__convert_8_to_16 PROC ; COMDAT ; 692 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002d 90 npad 1 ; 693 : int i; ; 694 : int img_len = w * h * channels; 0002e 8b 85 48 01 00 00 mov eax, DWORD PTR w$[rbp] 00034 0f af 85 50 01 00 00 imul eax, DWORD PTR h$[rbp] 0003b 0f af 85 58 01 00 00 imul eax, DWORD PTR channels$[rbp] 00042 89 45 24 mov DWORD PTR img_len$[rbp], eax ; 695 : stbi__uint16 *enlarged; ; 696 : ; 697 : enlarged = (stbi__uint16 *)stbi__malloc(img_len * 2); 00045 8b 45 24 mov eax, DWORD PTR img_len$[rbp] 00048 d1 e0 shl eax, 1 0004a 48 98 cdqe 0004c 48 8b c8 mov rcx, rax 0004f e8 00 00 00 00 call stbi__malloc 00054 48 89 45 48 mov QWORD PTR enlarged$[rbp], rax ; 698 : if (enlarged == NULL) 00058 48 83 7d 48 00 cmp QWORD PTR enlarged$[rbp], 0 0005d 75 31 jne SHORT $LN5@stbi__conv ; 699 : return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory"); 0005f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00066 e8 00 00 00 00 call stbi__err 0006b 85 c0 test eax, eax 0006d 74 0d je SHORT $LN7@stbi__conv 0006f 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv74[rbp], 0 0007a eb 0b jmp SHORT $LN8@stbi__conv $LN7@stbi__conv: 0007c 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv74[rbp], 0 $LN8@stbi__conv: 00087 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv74[rbp] 0008e eb 5c jmp SHORT $LN1@stbi__conv $LN5@stbi__conv: ; 700 : ; 701 : for (i = 0; i < img_len; ++i) 00090 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00097 eb 08 jmp SHORT $LN4@stbi__conv $LN2@stbi__conv: 00099 8b 45 04 mov eax, DWORD PTR i$[rbp] 0009c ff c0 inc eax 0009e 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__conv: 000a1 8b 45 24 mov eax, DWORD PTR img_len$[rbp] 000a4 39 45 04 cmp DWORD PTR i$[rbp], eax 000a7 7d 31 jge SHORT $LN3@stbi__conv ; 702 : enlarged[i] = 000a9 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000ad 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR orig$[rbp] 000b4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 000b8 c1 e0 08 shl eax, 8 000bb 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 000bf 48 8b 95 40 01 00 00 mov rdx, QWORD PTR orig$[rbp] 000c6 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx] 000ca 03 c1 add eax, ecx 000cc 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 000d0 48 8b 55 48 mov rdx, QWORD PTR enlarged$[rbp] 000d4 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax 000d8 eb bf jmp SHORT $LN2@stbi__conv $LN3@stbi__conv: ; 703 : (stbi__uint16)((orig[i] << 8) + ; 704 : orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff ; 705 : ; 706 : STBI_FREE(orig); 000da 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR orig$[rbp] 000e1 ff 15 00 00 00 00 call QWORD PTR __imp_free 000e7 90 npad 1 ; 707 : return enlarged; 000e8 48 8b 45 48 mov rax, QWORD PTR enlarged$[rbp] $LN1@stbi__conv: ; 708 : } 000ec 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 000f3 5f pop rdi 000f4 5d pop rbp 000f5 c3 ret 0 stbi__convert_8_to_16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__convert_16_to_8 _TEXT SEGMENT i$ = 4 img_len$ = 36 reduced$ = 72 tv73 = 280 orig$ = 320 w$ = 328 h$ = 336 channels$ = 344 stbi__convert_16_to_8 PROC ; COMDAT ; 673 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002d 90 npad 1 ; 674 : int i; ; 675 : int img_len = w * h * channels; 0002e 8b 85 48 01 00 00 mov eax, DWORD PTR w$[rbp] 00034 0f af 85 50 01 00 00 imul eax, DWORD PTR h$[rbp] 0003b 0f af 85 58 01 00 00 imul eax, DWORD PTR channels$[rbp] 00042 89 45 24 mov DWORD PTR img_len$[rbp], eax ; 676 : stbi_uc *reduced; ; 677 : ; 678 : reduced = (stbi_uc *)stbi__malloc(img_len); 00045 48 63 45 24 movsxd rax, DWORD PTR img_len$[rbp] 00049 48 8b c8 mov rcx, rax 0004c e8 00 00 00 00 call stbi__malloc 00051 48 89 45 48 mov QWORD PTR reduced$[rbp], rax ; 679 : if (reduced == NULL) 00055 48 83 7d 48 00 cmp QWORD PTR reduced$[rbp], 0 0005a 75 31 jne SHORT $LN5@stbi__conv ; 680 : return stbi__errpuc("outofmem", "Out of memory"); 0005c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00063 e8 00 00 00 00 call stbi__err 00068 85 c0 test eax, eax 0006a 74 0d je SHORT $LN7@stbi__conv 0006c 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv73[rbp], 0 00077 eb 0b jmp SHORT $LN8@stbi__conv $LN7@stbi__conv: 00079 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv73[rbp], 0 $LN8@stbi__conv: 00084 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv73[rbp] 0008b eb 4f jmp SHORT $LN1@stbi__conv $LN5@stbi__conv: ; 681 : ; 682 : for (i = 0; i < img_len; ++i) 0008d c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00094 eb 08 jmp SHORT $LN4@stbi__conv $LN2@stbi__conv: 00096 8b 45 04 mov eax, DWORD PTR i$[rbp] 00099 ff c0 inc eax 0009b 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__conv: 0009e 8b 45 24 mov eax, DWORD PTR img_len$[rbp] 000a1 39 45 04 cmp DWORD PTR i$[rbp], eax 000a4 7d 24 jge SHORT $LN3@stbi__conv ; 683 : reduced[i] = 000a6 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 000aa 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR orig$[rbp] 000b1 0f b7 04 41 movzx eax, WORD PTR [rcx+rax*2] 000b5 c1 f8 08 sar eax, 8 000b8 25 ff 00 00 00 and eax, 255 ; 000000ffH 000bd 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp] 000c1 48 8b 55 48 mov rdx, QWORD PTR reduced$[rbp] 000c5 88 04 0a mov BYTE PTR [rdx+rcx], al 000c8 eb cc jmp SHORT $LN2@stbi__conv $LN3@stbi__conv: ; 684 : (stbi_uc)((orig[i] >> 8) & ; 685 : 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling ; 686 : ; 687 : STBI_FREE(orig); 000ca 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR orig$[rbp] 000d1 ff 15 00 00 00 00 call QWORD PTR __imp_free 000d7 90 npad 1 ; 688 : return reduced; 000d8 48 8b 45 48 mov rax, QWORD PTR reduced$[rbp] $LN1@stbi__conv: ; 689 : } 000dc 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 000e3 5f pop rdi 000e4 5d pop rbp 000e5 c3 ret 0 stbi__convert_16_to_8 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__load_main _TEXT SEGMENT hdr$1 = 8 tv185 = 212 tv203 = 216 s$ = 256 x$ = 264 y$ = 272 comp$ = 280 req_comp$ = 288 ri$ = 296 bpc$ = 304 stbi__load_main PROC ; COMDAT ; 611 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0001d 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 612 : memset(ri, 0, 0002f 41 b8 0c 00 00 00 mov r8d, 12 00035 33 d2 xor edx, edx 00037 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR ri$[rbp] 0003e e8 00 00 00 00 call memset 00043 90 npad 1 ; 613 : sizeof(*ri)); // make sure it's initialized if we add new fields ; 614 : ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed 00044 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 0004b c7 00 08 00 00 00 mov DWORD PTR [rax], 8 ; 615 : ri->channel_order = 00051 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 00058 c7 40 08 00 00 00 00 mov DWORD PTR [rax+8], 0 ; 616 : STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order ; 617 : ri->num_channels = 0; 0005f 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 00066 c7 40 04 00 00 00 00 mov DWORD PTR [rax+4], 0 ; 618 : ; 619 : // test the formats with a very explicit header first (at least a FOURCC ; 620 : // or distinctive magic number first) ; 621 : #ifndef STBI_NO_PNG ; 622 : if (stbi__png_test(s)) 0006d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00074 e8 00 00 00 00 call stbi__png_test 00079 85 c0 test eax, eax 0007b 74 3c je SHORT $LN2@stbi__load ; 623 : return stbi__png_load(s, x, y, comp, req_comp, ri); 0007d 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 00084 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 00089 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 0008f 89 44 24 20 mov DWORD PTR [rsp+32], eax 00093 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 0009a 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 000a1 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 000a8 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000af e8 00 00 00 00 call stbi__png_load 000b4 e9 e4 02 00 00 jmp $LN1@stbi__load $LN2@stbi__load: ; 624 : #endif ; 625 : #ifndef STBI_NO_BMP ; 626 : if (stbi__bmp_test(s)) 000b9 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000c0 e8 00 00 00 00 call stbi__bmp_test 000c5 85 c0 test eax, eax 000c7 74 3c je SHORT $LN3@stbi__load ; 627 : return stbi__bmp_load(s, x, y, comp, req_comp, ri); 000c9 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 000d0 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 000d5 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 000db 89 44 24 20 mov DWORD PTR [rsp+32], eax 000df 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 000e6 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 000ed 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 000f4 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000fb e8 00 00 00 00 call stbi__bmp_load 00100 e9 98 02 00 00 jmp $LN1@stbi__load $LN3@stbi__load: ; 628 : #endif ; 629 : #ifndef STBI_NO_GIF ; 630 : if (stbi__gif_test(s)) 00105 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0010c e8 00 00 00 00 call stbi__gif_test 00111 85 c0 test eax, eax 00113 74 3c je SHORT $LN4@stbi__load ; 631 : return stbi__gif_load(s, x, y, comp, req_comp, ri); 00115 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 0011c 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 00121 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00127 89 44 24 20 mov DWORD PTR [rsp+32], eax 0012b 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 00132 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 00139 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 00140 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00147 e8 00 00 00 00 call stbi__gif_load 0014c e9 4c 02 00 00 jmp $LN1@stbi__load $LN4@stbi__load: ; 632 : #endif ; 633 : #ifndef STBI_NO_PSD ; 634 : if (stbi__psd_test(s)) 00151 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00158 e8 00 00 00 00 call stbi__psd_test 0015d 85 c0 test eax, eax 0015f 74 46 je SHORT $LN5@stbi__load ; 635 : return stbi__psd_load(s, x, y, comp, req_comp, ri, bpc); 00161 8b 85 30 01 00 00 mov eax, DWORD PTR bpc$[rbp] 00167 89 44 24 30 mov DWORD PTR [rsp+48], eax 0016b 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 00172 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 00177 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 0017d 89 44 24 20 mov DWORD PTR [rsp+32], eax 00181 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 00188 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 0018f 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 00196 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0019d e8 00 00 00 00 call stbi__psd_load 001a2 e9 f6 01 00 00 jmp $LN1@stbi__load $LN5@stbi__load: ; 636 : #else ; 637 : STBI_NOTUSED(bpc); ; 638 : #endif ; 639 : #ifndef STBI_NO_PIC ; 640 : if (stbi__pic_test(s)) 001a7 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 001ae e8 00 00 00 00 call stbi__pic_test 001b3 85 c0 test eax, eax 001b5 74 3c je SHORT $LN6@stbi__load ; 641 : return stbi__pic_load(s, x, y, comp, req_comp, ri); 001b7 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 001be 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 001c3 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 001c9 89 44 24 20 mov DWORD PTR [rsp+32], eax 001cd 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 001d4 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 001db 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 001e2 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 001e9 e8 00 00 00 00 call stbi__pic_load 001ee e9 aa 01 00 00 jmp $LN1@stbi__load $LN6@stbi__load: ; 642 : #endif ; 643 : ; 644 : // then the formats that can end up attempting to load with just 1 or 2 ; 645 : // bytes matching expectations; these are prone to false positives, so ; 646 : // try them later ; 647 : #ifndef STBI_NO_JPEG ; 648 : if (stbi__jpeg_test(s)) 001f3 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 001fa e8 00 00 00 00 call stbi__jpeg_test 001ff 85 c0 test eax, eax 00201 74 3c je SHORT $LN7@stbi__load ; 649 : return stbi__jpeg_load(s, x, y, comp, req_comp, ri); 00203 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 0020a 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 0020f 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00215 89 44 24 20 mov DWORD PTR [rsp+32], eax 00219 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 00220 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 00227 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 0022e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00235 e8 00 00 00 00 call stbi__jpeg_load 0023a e9 5e 01 00 00 jmp $LN1@stbi__load $LN7@stbi__load: ; 650 : #endif ; 651 : #ifndef STBI_NO_PNM ; 652 : if (stbi__pnm_test(s)) 0023f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00246 e8 00 00 00 00 call stbi__pnm_test 0024b 85 c0 test eax, eax 0024d 74 3c je SHORT $LN8@stbi__load ; 653 : return stbi__pnm_load(s, x, y, comp, req_comp, ri); 0024f 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 00256 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 0025b 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00261 89 44 24 20 mov DWORD PTR [rsp+32], eax 00265 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 0026c 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 00273 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 0027a 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00281 e8 00 00 00 00 call stbi__pnm_load 00286 e9 12 01 00 00 jmp $LN1@stbi__load $LN8@stbi__load: ; 654 : #endif ; 655 : ; 656 : #ifndef STBI_NO_HDR ; 657 : if (stbi__hdr_test(s)) { 0028b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00292 e8 00 00 00 00 call stbi__hdr_test 00297 85 c0 test eax, eax 00299 0f 84 86 00 00 00 je $LN9@stbi__load ; 658 : float *hdr = stbi__hdr_load(s, x, y, comp, req_comp, ri); 0029f 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 002a6 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 002ab 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 002b1 89 44 24 20 mov DWORD PTR [rsp+32], eax 002b5 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 002bc 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 002c3 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 002ca 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 002d1 e8 00 00 00 00 call stbi__hdr_load 002d6 48 89 45 08 mov QWORD PTR hdr$1[rbp], rax ; 659 : return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); 002da 83 bd 20 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 002e1 74 0e je SHORT $LN12@stbi__load 002e3 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 002e9 89 85 d4 00 00 00 mov DWORD PTR tv185[rbp], eax 002ef eb 0f jmp SHORT $LN13@stbi__load $LN12@stbi__load: 002f1 48 8b 85 18 01 00 00 mov rax, QWORD PTR comp$[rbp] 002f8 8b 00 mov eax, DWORD PTR [rax] 002fa 89 85 d4 00 00 00 mov DWORD PTR tv185[rbp], eax $LN13@stbi__load: 00300 44 8b 8d d4 00 00 00 mov r9d, DWORD PTR tv185[rbp] 00307 48 8b 85 10 01 00 00 mov rax, QWORD PTR y$[rbp] 0030e 44 8b 00 mov r8d, DWORD PTR [rax] 00311 48 8b 85 08 01 00 00 mov rax, QWORD PTR x$[rbp] 00318 8b 10 mov edx, DWORD PTR [rax] 0031a 48 8b 4d 08 mov rcx, QWORD PTR hdr$1[rbp] 0031e e8 00 00 00 00 call stbi__hdr_to_ldr 00323 eb 78 jmp SHORT $LN1@stbi__load $LN9@stbi__load: ; 660 : } ; 661 : #endif ; 662 : ; 663 : #ifndef STBI_NO_TGA ; 664 : // test tga last because it's a crappy test! ; 665 : if (stbi__tga_test(s)) 00325 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0032c e8 00 00 00 00 call stbi__tga_test 00331 85 c0 test eax, eax 00333 74 39 je SHORT $LN10@stbi__load ; 666 : return stbi__tga_load(s, x, y, comp, req_comp, ri); 00335 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 0033c 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 00341 8b 85 20 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00347 89 44 24 20 mov DWORD PTR [rsp+32], eax 0034b 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR comp$[rbp] 00352 4c 8b 85 10 01 00 00 mov r8, QWORD PTR y$[rbp] 00359 48 8b 95 08 01 00 00 mov rdx, QWORD PTR x$[rbp] 00360 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00367 e8 00 00 00 00 call stbi__tga_load 0036c eb 2f jmp SHORT $LN1@stbi__load $LN10@stbi__load: ; 667 : #endif ; 668 : ; 669 : return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); 0036e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@CBEDEJPH@unknown?5image?5type@ 00375 e8 00 00 00 00 call stbi__err 0037a 85 c0 test eax, eax 0037c 74 0d je SHORT $LN14@stbi__load 0037e 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv203[rbp], 0 00389 eb 0b jmp SHORT $LN15@stbi__load $LN14@stbi__load: 0038b 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv203[rbp], 0 $LN15@stbi__load: 00396 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv203[rbp] $LN1@stbi__load: ; 670 : } 0039d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 003a4 5f pop rdi 003a5 5d pop rbp 003a6 c3 ret 0 stbi__load_main ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__hdr_to_ldr _TEXT SEGMENT i$ = 4 k$ = 36 n$ = 68 output$ = 104 z$1 = 132 z$2 = 164 tv75 = 376 tv93 = 376 data$ = 416 x$ = 424 y$ = 432 comp$ = 440 stbi__hdr_to_ldr PROC ; COMDAT ; 1563 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002d 90 npad 1 ; 1564 : int i, k, n; ; 1565 : stbi_uc *output; ; 1566 : if (!data) 0002e 48 83 bd a0 01 00 00 00 cmp QWORD PTR data$[rbp], 0 00036 75 07 jne SHORT $LN8@stbi__hdr_ ; 1567 : return NULL; 00038 33 c0 xor eax, eax 0003a e9 3e 02 00 00 jmp $LN1@stbi__hdr_ $LN8@stbi__hdr_: ; 1568 : output = (stbi_uc *)stbi__malloc_mad3(x, y, comp, 0); 0003f 45 33 c9 xor r9d, r9d 00042 44 8b 85 b8 01 00 00 mov r8d, DWORD PTR comp$[rbp] 00049 8b 95 b0 01 00 00 mov edx, DWORD PTR y$[rbp] 0004f 8b 8d a8 01 00 00 mov ecx, DWORD PTR x$[rbp] 00055 e8 00 00 00 00 call stbi__malloc_mad3 0005a 48 89 45 68 mov QWORD PTR output$[rbp], rax ; 1569 : if (output == NULL) { 0005e 48 83 7d 68 00 cmp QWORD PTR output$[rbp], 0 00063 75 42 jne SHORT $LN9@stbi__hdr_ ; 1570 : STBI_FREE(data); 00065 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR data$[rbp] 0006c ff 15 00 00 00 00 call QWORD PTR __imp_free 00072 90 npad 1 ; 1571 : return stbi__errpuc("outofmem", "Out of memory"); 00073 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0007a e8 00 00 00 00 call stbi__err 0007f 85 c0 test eax, eax 00081 74 0d je SHORT $LN18@stbi__hdr_ 00083 48 c7 85 78 01 00 00 00 00 00 00 mov QWORD PTR tv75[rbp], 0 0008e eb 0b jmp SHORT $LN19@stbi__hdr_ $LN18@stbi__hdr_: 00090 48 c7 85 78 01 00 00 00 00 00 00 mov QWORD PTR tv75[rbp], 0 $LN19@stbi__hdr_: 0009b 48 8b 85 78 01 00 00 mov rax, QWORD PTR tv75[rbp] 000a2 e9 d6 01 00 00 jmp $LN1@stbi__hdr_ $LN9@stbi__hdr_: ; 1572 : } ; 1573 : // compute number of non-alpha components ; 1574 : if (comp & 1) 000a7 8b 85 b8 01 00 00 mov eax, DWORD PTR comp$[rbp] 000ad 83 e0 01 and eax, 1 000b0 85 c0 test eax, eax 000b2 74 0b je SHORT $LN10@stbi__hdr_ ; 1575 : n = comp; 000b4 8b 85 b8 01 00 00 mov eax, DWORD PTR comp$[rbp] 000ba 89 45 44 mov DWORD PTR n$[rbp], eax 000bd eb 0b jmp SHORT $LN11@stbi__hdr_ $LN10@stbi__hdr_: ; 1576 : else ; 1577 : n = comp - 1; 000bf 8b 85 b8 01 00 00 mov eax, DWORD PTR comp$[rbp] 000c5 ff c8 dec eax 000c7 89 45 44 mov DWORD PTR n$[rbp], eax $LN11@stbi__hdr_: ; 1578 : for (i = 0; i < x * y; ++i) { 000ca c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 000d1 eb 08 jmp SHORT $LN4@stbi__hdr_ $LN2@stbi__hdr_: 000d3 8b 45 04 mov eax, DWORD PTR i$[rbp] 000d6 ff c0 inc eax 000d8 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__hdr_: 000db 8b 85 a8 01 00 00 mov eax, DWORD PTR x$[rbp] 000e1 0f af 85 b0 01 00 00 imul eax, DWORD PTR y$[rbp] 000e8 39 45 04 cmp DWORD PTR i$[rbp], eax 000eb 0f 8d 7a 01 00 00 jge $LN3@stbi__hdr_ ; 1579 : for (k = 0; k < n; ++k) { 000f1 c7 45 24 00 00 00 00 mov DWORD PTR k$[rbp], 0 000f8 eb 08 jmp SHORT $LN7@stbi__hdr_ $LN5@stbi__hdr_: 000fa 8b 45 24 mov eax, DWORD PTR k$[rbp] 000fd ff c0 inc eax 000ff 89 45 24 mov DWORD PTR k$[rbp], eax $LN7@stbi__hdr_: 00102 8b 45 44 mov eax, DWORD PTR n$[rbp] 00105 39 45 24 cmp DWORD PTR k$[rbp], eax 00108 0f 8d bf 00 00 00 jge $LN6@stbi__hdr_ ; 1580 : float z = (float)pow(data[i * comp + k] * stbi__h2l_scale_i, 0010e f3 0f 5a 05 00 00 00 00 cvtss2sd xmm0, DWORD PTR stbi__h2l_gamma_i 00116 8b 45 04 mov eax, DWORD PTR i$[rbp] 00119 0f af 85 b8 01 00 00 imul eax, DWORD PTR comp$[rbp] 00120 03 45 24 add eax, DWORD PTR k$[rbp] 00123 48 98 cdqe 00125 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR data$[rbp] 0012c f3 0f 10 0c 81 movss xmm1, DWORD PTR [rcx+rax*4] 00131 f3 0f 59 0d 00 00 00 00 mulss xmm1, DWORD PTR stbi__h2l_scale_i 00139 f3 0f 5a c9 cvtss2sd xmm1, xmm1 0013d f2 0f 11 8d 78 01 00 00 movsd QWORD PTR tv93[rbp], xmm1 00145 0f 28 c8 movaps xmm1, xmm0 00148 f2 0f 10 85 78 01 00 00 movsd xmm0, QWORD PTR tv93[rbp] 00150 e8 00 00 00 00 call pow 00155 f2 0f 5a c0 cvtsd2ss xmm0, xmm0 00159 f3 0f 59 05 00 00 00 00 mulss xmm0, DWORD PTR __real@437f0000 00161 f3 0f 58 05 00 00 00 00 addss xmm0, DWORD PTR __real@3f000000 00169 f3 0f 11 85 84 00 00 00 movss DWORD PTR z$1[rbp], xmm0 ; 1581 : stbi__h2l_gamma_i) * ; 1582 : 255 + ; 1583 : 0.5f; ; 1584 : if (z < 0) 00171 0f 57 c0 xorps xmm0, xmm0 00174 0f 2f 85 84 00 00 00 comiss xmm0, DWORD PTR z$1[rbp] 0017b 76 0b jbe SHORT $LN12@stbi__hdr_ ; 1585 : z = 0; 0017d 0f 57 c0 xorps xmm0, xmm0 00180 f3 0f 11 85 84 00 00 00 movss DWORD PTR z$1[rbp], xmm0 $LN12@stbi__hdr_: ; 1586 : if (z > 255) 00188 f3 0f 10 85 84 00 00 00 movss xmm0, DWORD PTR z$1[rbp] 00190 0f 2f 05 00 00 00 00 comiss xmm0, DWORD PTR __real@437f0000 00197 76 10 jbe SHORT $LN13@stbi__hdr_ ; 1587 : z = 255; 00199 f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@437f0000 001a1 f3 0f 11 85 84 00 00 00 movss DWORD PTR z$1[rbp], xmm0 $LN13@stbi__hdr_: ; 1588 : output[i * comp + k] = (stbi_uc)stbi__float2int(z); 001a9 f3 0f 2c 85 84 00 00 00 cvttss2si eax, DWORD PTR z$1[rbp] 001b1 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 001b4 0f af 8d b8 01 00 00 imul ecx, DWORD PTR comp$[rbp] 001bb 03 4d 24 add ecx, DWORD PTR k$[rbp] 001be 48 63 c9 movsxd rcx, ecx 001c1 48 8b 55 68 mov rdx, QWORD PTR output$[rbp] 001c5 88 04 0a mov BYTE PTR [rdx+rcx], al ; 1589 : } 001c8 e9 2d ff ff ff jmp $LN5@stbi__hdr_ $LN6@stbi__hdr_: ; 1590 : if (k < comp) { 001cd 8b 85 b8 01 00 00 mov eax, DWORD PTR comp$[rbp] 001d3 39 45 24 cmp DWORD PTR k$[rbp], eax 001d6 0f 8d 8a 00 00 00 jge $LN14@stbi__hdr_ ; 1591 : float z = data[i * comp + k] * 255 + 0.5f; 001dc 8b 45 04 mov eax, DWORD PTR i$[rbp] 001df 0f af 85 b8 01 00 00 imul eax, DWORD PTR comp$[rbp] 001e6 03 45 24 add eax, DWORD PTR k$[rbp] 001e9 48 98 cdqe 001eb 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR data$[rbp] 001f2 f3 0f 10 04 81 movss xmm0, DWORD PTR [rcx+rax*4] 001f7 f3 0f 59 05 00 00 00 00 mulss xmm0, DWORD PTR __real@437f0000 001ff f3 0f 58 05 00 00 00 00 addss xmm0, DWORD PTR __real@3f000000 00207 f3 0f 11 85 a4 00 00 00 movss DWORD PTR z$2[rbp], xmm0 ; 1592 : if (z < 0) 0020f 0f 57 c0 xorps xmm0, xmm0 00212 0f 2f 85 a4 00 00 00 comiss xmm0, DWORD PTR z$2[rbp] 00219 76 0b jbe SHORT $LN15@stbi__hdr_ ; 1593 : z = 0; 0021b 0f 57 c0 xorps xmm0, xmm0 0021e f3 0f 11 85 a4 00 00 00 movss DWORD PTR z$2[rbp], xmm0 $LN15@stbi__hdr_: ; 1594 : if (z > 255) 00226 f3 0f 10 85 a4 00 00 00 movss xmm0, DWORD PTR z$2[rbp] 0022e 0f 2f 05 00 00 00 00 comiss xmm0, DWORD PTR __real@437f0000 00235 76 10 jbe SHORT $LN16@stbi__hdr_ ; 1595 : z = 255; 00237 f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@437f0000 0023f f3 0f 11 85 a4 00 00 00 movss DWORD PTR z$2[rbp], xmm0 $LN16@stbi__hdr_: ; 1596 : output[i * comp + k] = (stbi_uc)stbi__float2int(z); 00247 f3 0f 2c 85 a4 00 00 00 cvttss2si eax, DWORD PTR z$2[rbp] 0024f 8b 4d 04 mov ecx, DWORD PTR i$[rbp] 00252 0f af 8d b8 01 00 00 imul ecx, DWORD PTR comp$[rbp] 00259 03 4d 24 add ecx, DWORD PTR k$[rbp] 0025c 48 63 c9 movsxd rcx, ecx 0025f 48 8b 55 68 mov rdx, QWORD PTR output$[rbp] 00263 88 04 0a mov BYTE PTR [rdx+rcx], al $LN14@stbi__hdr_: ; 1597 : } ; 1598 : } 00266 e9 68 fe ff ff jmp $LN2@stbi__hdr_ $LN3@stbi__hdr_: ; 1599 : STBI_FREE(data); 0026b 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR data$[rbp] 00272 ff 15 00 00 00 00 call QWORD PTR __imp_free 00278 90 npad 1 ; 1600 : return output; 00279 48 8b 45 68 mov rax, QWORD PTR output$[rbp] $LN1@stbi__hdr_: ; 1601 : } 0027d 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] 00284 5f pop rdi 00285 5d pop rbp 00286 c3 ret 0 stbi__hdr_to_ldr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__ldr_to_hdr _TEXT SEGMENT i$ = 4 k$ = 36 n$ = 68 output$ = 104 tv76 = 312 tv133 = 312 data$ = 352 x$ = 360 y$ = 368 comp$ = 376 stbi__ldr_to_hdr PROC ; COMDAT ; 1528 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00021 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002d 90 npad 1 ; 1529 : int i, k, n; ; 1530 : float *output; ; 1531 : if (!data) 0002e 48 83 bd 60 01 00 00 00 cmp QWORD PTR data$[rbp], 0 00036 75 07 jne SHORT $LN11@stbi__ldr_ ; 1532 : return NULL; 00038 33 c0 xor eax, eax 0003a e9 d2 01 00 00 jmp $LN1@stbi__ldr_ $LN11@stbi__ldr_: ; 1533 : output = (float *)stbi__malloc_mad4(x, y, comp, sizeof(float), 0); 0003f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 00047 41 b9 04 00 00 00 mov r9d, 4 0004d 44 8b 85 78 01 00 00 mov r8d, DWORD PTR comp$[rbp] 00054 8b 95 70 01 00 00 mov edx, DWORD PTR y$[rbp] 0005a 8b 8d 68 01 00 00 mov ecx, DWORD PTR x$[rbp] 00060 e8 00 00 00 00 call stbi__malloc_mad4 00065 48 89 45 68 mov QWORD PTR output$[rbp], rax ; 1534 : if (output == NULL) { 00069 48 83 7d 68 00 cmp QWORD PTR output$[rbp], 0 0006e 75 42 jne SHORT $LN12@stbi__ldr_ ; 1535 : STBI_FREE(data); 00070 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR data$[rbp] 00077 ff 15 00 00 00 00 call QWORD PTR __imp_free 0007d 90 npad 1 ; 1536 : return stbi__errpf("outofmem", "Out of memory"); 0007e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00085 e8 00 00 00 00 call stbi__err 0008a 85 c0 test eax, eax 0008c 74 0d je SHORT $LN17@stbi__ldr_ 0008e 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 00099 eb 0b jmp SHORT $LN18@stbi__ldr_ $LN17@stbi__ldr_: 0009b 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN18@stbi__ldr_: 000a6 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv76[rbp] 000ad e9 5f 01 00 00 jmp $LN1@stbi__ldr_ $LN12@stbi__ldr_: ; 1537 : } ; 1538 : // compute number of non-alpha components ; 1539 : if (comp & 1) 000b2 8b 85 78 01 00 00 mov eax, DWORD PTR comp$[rbp] 000b8 83 e0 01 and eax, 1 000bb 85 c0 test eax, eax 000bd 74 0b je SHORT $LN13@stbi__ldr_ ; 1540 : n = comp; 000bf 8b 85 78 01 00 00 mov eax, DWORD PTR comp$[rbp] 000c5 89 45 44 mov DWORD PTR n$[rbp], eax 000c8 eb 0b jmp SHORT $LN14@stbi__ldr_ $LN13@stbi__ldr_: ; 1541 : else ; 1542 : n = comp - 1; 000ca 8b 85 78 01 00 00 mov eax, DWORD PTR comp$[rbp] 000d0 ff c8 dec eax 000d2 89 45 44 mov DWORD PTR n$[rbp], eax $LN14@stbi__ldr_: ; 1543 : for (i = 0; i < x * y; ++i) { 000d5 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 000dc eb 08 jmp SHORT $LN4@stbi__ldr_ $LN2@stbi__ldr_: 000de 8b 45 04 mov eax, DWORD PTR i$[rbp] 000e1 ff c0 inc eax 000e3 89 45 04 mov DWORD PTR i$[rbp], eax $LN4@stbi__ldr_: 000e6 8b 85 68 01 00 00 mov eax, DWORD PTR x$[rbp] 000ec 0f af 85 70 01 00 00 imul eax, DWORD PTR y$[rbp] 000f3 39 45 04 cmp DWORD PTR i$[rbp], eax 000f6 0f 8d 95 00 00 00 jge $LN3@stbi__ldr_ ; 1544 : for (k = 0; k < n; ++k) { 000fc c7 45 24 00 00 00 00 mov DWORD PTR k$[rbp], 0 00103 eb 08 jmp SHORT $LN7@stbi__ldr_ $LN5@stbi__ldr_: 00105 8b 45 24 mov eax, DWORD PTR k$[rbp] 00108 ff c0 inc eax 0010a 89 45 24 mov DWORD PTR k$[rbp], eax $LN7@stbi__ldr_: 0010d 8b 45 44 mov eax, DWORD PTR n$[rbp] 00110 39 45 24 cmp DWORD PTR k$[rbp], eax 00113 7d 77 jge SHORT $LN6@stbi__ldr_ ; 1545 : output[i * comp + k] = 00115 f3 0f 5a 05 00 00 00 00 cvtss2sd xmm0, DWORD PTR stbi__l2h_gamma 0011d 8b 45 04 mov eax, DWORD PTR i$[rbp] 00120 0f af 85 78 01 00 00 imul eax, DWORD PTR comp$[rbp] 00127 03 45 24 add eax, DWORD PTR k$[rbp] 0012a 48 98 cdqe 0012c 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR data$[rbp] 00133 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00137 f3 0f 2a c8 cvtsi2ss xmm1, eax 0013b f3 0f 5e 0d 00 00 00 00 divss xmm1, DWORD PTR __real@437f0000 00143 f3 0f 5a c9 cvtss2sd xmm1, xmm1 00147 f2 0f 11 8d 38 01 00 00 movsd QWORD PTR tv133[rbp], xmm1 0014f 0f 28 c8 movaps xmm1, xmm0 00152 f2 0f 10 85 38 01 00 00 movsd xmm0, QWORD PTR tv133[rbp] 0015a e8 00 00 00 00 call pow 0015f f3 0f 5a 0d 00 00 00 00 cvtss2sd xmm1, DWORD PTR stbi__l2h_scale 00167 f2 0f 59 c1 mulsd xmm0, xmm1 0016b f2 0f 5a c0 cvtsd2ss xmm0, xmm0 0016f 8b 45 04 mov eax, DWORD PTR i$[rbp] 00172 0f af 85 78 01 00 00 imul eax, DWORD PTR comp$[rbp] 00179 03 45 24 add eax, DWORD PTR k$[rbp] 0017c 48 98 cdqe 0017e 48 8b 4d 68 mov rcx, QWORD PTR output$[rbp] 00182 f3 0f 11 04 81 movss DWORD PTR [rcx+rax*4], xmm0 ; 1546 : (float)(pow(data[i * comp + k] / 255.0f, stbi__l2h_gamma) * ; 1547 : stbi__l2h_scale); ; 1548 : } 00187 e9 79 ff ff ff jmp $LN5@stbi__ldr_ $LN6@stbi__ldr_: ; 1549 : } 0018c e9 4d ff ff ff jmp $LN2@stbi__ldr_ $LN3@stbi__ldr_: ; 1550 : if (n < comp) { 00191 8b 85 78 01 00 00 mov eax, DWORD PTR comp$[rbp] 00197 39 45 44 cmp DWORD PTR n$[rbp], eax 0019a 7d 63 jge SHORT $LN15@stbi__ldr_ ; 1551 : for (i = 0; i < x * y; ++i) { 0019c c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 001a3 eb 08 jmp SHORT $LN10@stbi__ldr_ $LN8@stbi__ldr_: 001a5 8b 45 04 mov eax, DWORD PTR i$[rbp] 001a8 ff c0 inc eax 001aa 89 45 04 mov DWORD PTR i$[rbp], eax $LN10@stbi__ldr_: 001ad 8b 85 68 01 00 00 mov eax, DWORD PTR x$[rbp] 001b3 0f af 85 70 01 00 00 imul eax, DWORD PTR y$[rbp] 001ba 39 45 04 cmp DWORD PTR i$[rbp], eax 001bd 7d 40 jge SHORT $LN9@stbi__ldr_ ; 1552 : output[i * comp + n] = data[i * comp + n] / 255.0f; 001bf 8b 45 04 mov eax, DWORD PTR i$[rbp] 001c2 0f af 85 78 01 00 00 imul eax, DWORD PTR comp$[rbp] 001c9 03 45 44 add eax, DWORD PTR n$[rbp] 001cc 48 98 cdqe 001ce 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR data$[rbp] 001d5 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 001d9 f3 0f 2a c0 cvtsi2ss xmm0, eax 001dd f3 0f 5e 05 00 00 00 00 divss xmm0, DWORD PTR __real@437f0000 001e5 8b 45 04 mov eax, DWORD PTR i$[rbp] 001e8 0f af 85 78 01 00 00 imul eax, DWORD PTR comp$[rbp] 001ef 03 45 44 add eax, DWORD PTR n$[rbp] 001f2 48 98 cdqe 001f4 48 8b 4d 68 mov rcx, QWORD PTR output$[rbp] 001f8 f3 0f 11 04 81 movss DWORD PTR [rcx+rax*4], xmm0 ; 1553 : } 001fd eb a6 jmp SHORT $LN8@stbi__ldr_ $LN9@stbi__ldr_: $LN15@stbi__ldr_: ; 1554 : } ; 1555 : STBI_FREE(data); 001ff 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR data$[rbp] 00206 ff 15 00 00 00 00 call QWORD PTR __imp_free 0020c 90 npad 1 ; 1556 : return output; 0020d 48 8b 45 68 mov rax, QWORD PTR output$[rbp] $LN1@stbi__ldr_: ; 1557 : } 00211 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] 00218 5f pop rdi 00219 5d pop rbp 0021a c3 ret 0 stbi__ldr_to_hdr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__mul2shorts_valid _TEXT SEGMENT tv73 = 192 tv75 = 192 tv82 = 192 tv87 = 192 tv72 = 196 tv79 = 196 tv86 = 196 tv91 = 196 a$ = 240 b$ = 248 stbi__mul2shorts_valid PROC ; COMDAT ; 548 : { 00000 66 89 54 24 10 mov WORD PTR [rsp+16], dx 00005 66 89 4c 24 08 mov WORD PTR [rsp+8], cx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 549 : if (b == 0 || b == -1) 00025 0f bf 85 f8 00 00 00 movsx eax, WORD PTR b$[rbp] 0002c 85 c0 test eax, eax 0002e 74 0c je SHORT $LN3@stbi__mul2 00030 0f bf 85 f8 00 00 00 movsx eax, WORD PTR b$[rbp] 00037 83 f8 ff cmp eax, -1 0003a 75 0a jne SHORT $LN2@stbi__mul2 $LN3@stbi__mul2: ; 550 : return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow 0003c b8 01 00 00 00 mov eax, 1 00041 e9 28 01 00 00 jmp $LN1@stbi__mul2 $LN2@stbi__mul2: ; 551 : if ((a >= 0) == (b >= 0)) 00046 0f bf 85 f0 00 00 00 movsx eax, WORD PTR a$[rbp] 0004d 85 c0 test eax, eax 0004f 7c 0c jl SHORT $LN9@stbi__mul2 00051 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv73[rbp], 1 0005b eb 0a jmp SHORT $LN10@stbi__mul2 $LN9@stbi__mul2: 0005d c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0 $LN10@stbi__mul2: 00067 0f bf 85 f8 00 00 00 movsx eax, WORD PTR b$[rbp] 0006e 85 c0 test eax, eax 00070 7c 0c jl SHORT $LN7@stbi__mul2 00072 c7 85 c4 00 00 00 01 00 00 00 mov DWORD PTR tv72[rbp], 1 0007c eb 0a jmp SHORT $LN8@stbi__mul2 $LN7@stbi__mul2: 0007e c7 85 c4 00 00 00 00 00 00 00 mov DWORD PTR tv72[rbp], 0 $LN8@stbi__mul2: 00088 8b 85 c4 00 00 00 mov eax, DWORD PTR tv72[rbp] 0008e 39 85 c0 00 00 00 cmp DWORD PTR tv73[rbp], eax 00094 75 47 jne SHORT $LN4@stbi__mul2 ; 552 : return a <= SHRT_MAX / b; // product is positive, so similar to mul2sizes_valid 00096 0f bf 85 f0 00 00 00 movsx eax, WORD PTR a$[rbp] 0009d 89 85 c0 00 00 00 mov DWORD PTR tv75[rbp], eax 000a3 0f bf 8d f8 00 00 00 movsx ecx, WORD PTR b$[rbp] 000aa b8 ff 7f 00 00 mov eax, 32767 ; 00007fffH 000af 99 cdq 000b0 f7 f9 idiv ecx 000b2 8b 8d c0 00 00 00 mov ecx, DWORD PTR tv75[rbp] 000b8 3b c8 cmp ecx, eax 000ba 7f 0c jg SHORT $LN11@stbi__mul2 000bc c7 85 c4 00 00 00 01 00 00 00 mov DWORD PTR tv79[rbp], 1 000c6 eb 0a jmp SHORT $LN12@stbi__mul2 $LN11@stbi__mul2: 000c8 c7 85 c4 00 00 00 00 00 00 00 mov DWORD PTR tv79[rbp], 0 $LN12@stbi__mul2: 000d2 8b 85 c4 00 00 00 mov eax, DWORD PTR tv79[rbp] 000d8 e9 91 00 00 00 jmp $LN1@stbi__mul2 $LN4@stbi__mul2: ; 553 : if (b < 0) 000dd 0f bf 85 f8 00 00 00 movsx eax, WORD PTR b$[rbp] 000e4 85 c0 test eax, eax 000e6 7d 44 jge SHORT $LN5@stbi__mul2 ; 554 : return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN 000e8 0f bf 85 f0 00 00 00 movsx eax, WORD PTR a$[rbp] 000ef 89 85 c0 00 00 00 mov DWORD PTR tv82[rbp], eax 000f5 0f bf 8d f8 00 00 00 movsx ecx, WORD PTR b$[rbp] 000fc b8 00 80 ff ff mov eax, -32768 ; ffffffffffff8000H 00101 99 cdq 00102 f7 f9 idiv ecx 00104 8b 8d c0 00 00 00 mov ecx, DWORD PTR tv82[rbp] 0010a 3b c8 cmp ecx, eax 0010c 7f 0c jg SHORT $LN13@stbi__mul2 0010e c7 85 c4 00 00 00 01 00 00 00 mov DWORD PTR tv86[rbp], 1 00118 eb 0a jmp SHORT $LN14@stbi__mul2 $LN13@stbi__mul2: 0011a c7 85 c4 00 00 00 00 00 00 00 mov DWORD PTR tv86[rbp], 0 $LN14@stbi__mul2: 00124 8b 85 c4 00 00 00 mov eax, DWORD PTR tv86[rbp] 0012a eb 42 jmp SHORT $LN1@stbi__mul2 $LN5@stbi__mul2: ; 555 : return a >= SHRT_MIN / b; 0012c 0f bf 85 f0 00 00 00 movsx eax, WORD PTR a$[rbp] 00133 89 85 c0 00 00 00 mov DWORD PTR tv87[rbp], eax 00139 0f bf 8d f8 00 00 00 movsx ecx, WORD PTR b$[rbp] 00140 b8 00 80 ff ff mov eax, -32768 ; ffffffffffff8000H 00145 99 cdq 00146 f7 f9 idiv ecx 00148 8b 8d c0 00 00 00 mov ecx, DWORD PTR tv87[rbp] 0014e 3b c8 cmp ecx, eax 00150 7c 0c jl SHORT $LN15@stbi__mul2 00152 c7 85 c4 00 00 00 01 00 00 00 mov DWORD PTR tv91[rbp], 1 0015c eb 0a jmp SHORT $LN16@stbi__mul2 $LN15@stbi__mul2: 0015e c7 85 c4 00 00 00 00 00 00 00 mov DWORD PTR tv91[rbp], 0 $LN16@stbi__mul2: 00168 8b 85 c4 00 00 00 mov eax, DWORD PTR tv91[rbp] $LN1@stbi__mul2: ; 556 : } 0016e 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 00175 5f pop rdi 00176 5d pop rbp 00177 c3 ret 0 stbi__mul2shorts_valid ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__addints_valid _TEXT SEGMENT tv67 = 192 tv73 = 192 tv76 = 192 tv66 = 196 a$ = 240 b$ = 248 stbi__addints_valid PROC ; COMDAT ; 536 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00008 55 push rbp 00009 57 push rdi 0000a 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00016 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00022 90 npad 1 ; 537 : if ((a >= 0) != (b >= 0)) 00023 83 bd f0 00 00 00 00 cmp DWORD PTR a$[rbp], 0 0002a 7c 0c jl SHORT $LN7@stbi__addi 0002c c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv67[rbp], 1 00036 eb 0a jmp SHORT $LN8@stbi__addi $LN7@stbi__addi: 00038 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv67[rbp], 0 $LN8@stbi__addi: 00042 83 bd f8 00 00 00 00 cmp DWORD PTR b$[rbp], 0 00049 7c 0c jl SHORT $LN5@stbi__addi 0004b c7 85 c4 00 00 00 01 00 00 00 mov DWORD PTR tv66[rbp], 1 00055 eb 0a jmp SHORT $LN6@stbi__addi $LN5@stbi__addi: 00057 c7 85 c4 00 00 00 00 00 00 00 mov DWORD PTR tv66[rbp], 0 $LN6@stbi__addi: 00061 8b 85 c4 00 00 00 mov eax, DWORD PTR tv66[rbp] 00067 39 85 c0 00 00 00 cmp DWORD PTR tv67[rbp], eax 0006d 74 07 je SHORT $LN2@stbi__addi ; 538 : return 1; // a and b have different signs, so no overflow 0006f b8 01 00 00 00 mov eax, 1 00074 eb 72 jmp SHORT $LN1@stbi__addi $LN2@stbi__addi: ; 539 : if (a < 0 && b < 0) 00076 83 bd f0 00 00 00 00 cmp DWORD PTR a$[rbp], 0 0007d 7d 3a jge SHORT $LN3@stbi__addi 0007f 83 bd f8 00 00 00 00 cmp DWORD PTR b$[rbp], 0 00086 7d 31 jge SHORT $LN3@stbi__addi ; 540 : return a >= 00088 b8 00 00 00 80 mov eax, -2147483648 ; ffffffff80000000H 0008d 2b 85 f8 00 00 00 sub eax, DWORD PTR b$[rbp] 00093 39 85 f0 00 00 00 cmp DWORD PTR a$[rbp], eax 00099 7c 0c jl SHORT $LN9@stbi__addi 0009b c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv73[rbp], 1 000a5 eb 0a jmp SHORT $LN10@stbi__addi $LN9@stbi__addi: 000a7 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0 $LN10@stbi__addi: 000b1 8b 85 c0 00 00 00 mov eax, DWORD PTR tv73[rbp] 000b7 eb 2f jmp SHORT $LN1@stbi__addi $LN3@stbi__addi: ; 541 : INT_MIN - ; 542 : b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0. ; 543 : return a <= INT_MAX - b; 000b9 b8 ff ff ff 7f mov eax, 2147483647 ; 7fffffffH 000be 2b 85 f8 00 00 00 sub eax, DWORD PTR b$[rbp] 000c4 39 85 f0 00 00 00 cmp DWORD PTR a$[rbp], eax 000ca 7f 0c jg SHORT $LN11@stbi__addi 000cc c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv76[rbp], 1 000d6 eb 0a jmp SHORT $LN12@stbi__addi $LN11@stbi__addi: 000d8 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv76[rbp], 0 $LN12@stbi__addi: 000e2 8b 85 c0 00 00 00 mov eax, DWORD PTR tv76[rbp] $LN1@stbi__addi: ; 544 : } 000e8 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000ef 5f pop rdi 000f0 5d pop rbp 000f1 c3 ret 0 stbi__addints_valid ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__malloc_mad4 _TEXT SEGMENT a$ = 224 b$ = 232 c$ = 240 d$ = 248 add$ = 256 stbi__malloc_mad4 PROC ; COMDAT ; 527 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00012 55 push rbp 00013 57 push rdi 00014 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001b 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00020 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002c 90 npad 1 ; 528 : if (!stbi__mad4sizes_valid(a, b, c, d, add)) 0002d 8b 85 00 01 00 00 mov eax, DWORD PTR add$[rbp] 00033 89 44 24 20 mov DWORD PTR [rsp+32], eax 00037 44 8b 8d f8 00 00 00 mov r9d, DWORD PTR d$[rbp] 0003e 44 8b 85 f0 00 00 00 mov r8d, DWORD PTR c$[rbp] 00045 8b 95 e8 00 00 00 mov edx, DWORD PTR b$[rbp] 0004b 8b 8d e0 00 00 00 mov ecx, DWORD PTR a$[rbp] 00051 e8 00 00 00 00 call stbi__mad4sizes_valid 00056 85 c0 test eax, eax 00058 75 04 jne SHORT $LN2@stbi__mall ; 529 : return NULL; 0005a 33 c0 xor eax, eax 0005c eb 2b jmp SHORT $LN1@stbi__mall $LN2@stbi__mall: ; 530 : return stbi__malloc(a * b * c * d + add); 0005e 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 00064 0f af 85 e8 00 00 00 imul eax, DWORD PTR b$[rbp] 0006b 0f af 85 f0 00 00 00 imul eax, DWORD PTR c$[rbp] 00072 0f af 85 f8 00 00 00 imul eax, DWORD PTR d$[rbp] 00079 03 85 00 01 00 00 add eax, DWORD PTR add$[rbp] 0007f 48 98 cdqe 00081 48 8b c8 mov rcx, rax 00084 e8 00 00 00 00 call stbi__malloc $LN1@stbi__mall: ; 531 : } 00089 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00090 5f pop rdi 00091 5d pop rbp 00092 c3 ret 0 stbi__malloc_mad4 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__malloc_mad3 _TEXT SEGMENT a$ = 224 b$ = 232 c$ = 240 add$ = 248 stbi__malloc_mad3 PROC ; COMDAT ; 519 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00012 55 push rbp 00013 57 push rdi 00014 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001b 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00020 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002c 90 npad 1 ; 520 : if (!stbi__mad3sizes_valid(a, b, c, add)) 0002d 44 8b 8d f8 00 00 00 mov r9d, DWORD PTR add$[rbp] 00034 44 8b 85 f0 00 00 00 mov r8d, DWORD PTR c$[rbp] 0003b 8b 95 e8 00 00 00 mov edx, DWORD PTR b$[rbp] 00041 8b 8d e0 00 00 00 mov ecx, DWORD PTR a$[rbp] 00047 e8 00 00 00 00 call stbi__mad3sizes_valid 0004c 85 c0 test eax, eax 0004e 75 04 jne SHORT $LN2@stbi__mall ; 521 : return NULL; 00050 33 c0 xor eax, eax 00052 eb 24 jmp SHORT $LN1@stbi__mall $LN2@stbi__mall: ; 522 : return stbi__malloc(a * b * c + add); 00054 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 0005a 0f af 85 e8 00 00 00 imul eax, DWORD PTR b$[rbp] 00061 0f af 85 f0 00 00 00 imul eax, DWORD PTR c$[rbp] 00068 03 85 f8 00 00 00 add eax, DWORD PTR add$[rbp] 0006e 48 98 cdqe 00070 48 8b c8 mov rcx, rax 00073 e8 00 00 00 00 call stbi__malloc $LN1@stbi__mall: ; 523 : } 00078 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0007f 5f pop rdi 00080 5d pop rbp 00081 c3 ret 0 stbi__malloc_mad3 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__malloc_mad2 _TEXT SEGMENT a$ = 224 b$ = 232 add$ = 240 stbi__malloc_mad2 PROC ; COMDAT ; 511 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 0000d 55 push rbp 0000e 57 push rdi 0000f 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00027 90 npad 1 ; 512 : if (!stbi__mad2sizes_valid(a, b, add)) 00028 44 8b 85 f0 00 00 00 mov r8d, DWORD PTR add$[rbp] 0002f 8b 95 e8 00 00 00 mov edx, DWORD PTR b$[rbp] 00035 8b 8d e0 00 00 00 mov ecx, DWORD PTR a$[rbp] 0003b e8 00 00 00 00 call stbi__mad2sizes_valid 00040 85 c0 test eax, eax 00042 75 04 jne SHORT $LN2@stbi__mall ; 513 : return NULL; 00044 33 c0 xor eax, eax 00046 eb 1d jmp SHORT $LN1@stbi__mall $LN2@stbi__mall: ; 514 : return stbi__malloc(a * b + add); 00048 8b 85 e0 00 00 00 mov eax, DWORD PTR a$[rbp] 0004e 0f af 85 e8 00 00 00 imul eax, DWORD PTR b$[rbp] 00055 03 85 f0 00 00 00 add eax, DWORD PTR add$[rbp] 0005b 48 98 cdqe 0005d 48 8b c8 mov rcx, rax 00060 e8 00 00 00 00 call stbi__malloc $LN1@stbi__mall: ; 515 : } 00065 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0006c 5f pop rdi 0006d 5d pop rbp 0006e c3 ret 0 stbi__malloc_mad2 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__mad4sizes_valid _TEXT SEGMENT tv86 = 192 a$ = 240 b$ = 248 c$ = 256 d$ = 264 add$ = 272 stbi__mad4sizes_valid PROC ; COMDAT ; 501 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00012 55 push rbp 00013 57 push rdi 00014 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001b 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00020 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002c 90 npad 1 ; 502 : return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) && 0002d 8b 95 f8 00 00 00 mov edx, DWORD PTR b$[rbp] 00033 8b 8d f0 00 00 00 mov ecx, DWORD PTR a$[rbp] 00039 e8 00 00 00 00 call stbi__mul2sizes_valid 0003e 85 c0 test eax, eax 00040 74 7b je SHORT $LN3@stbi__mad4 00042 8b 85 f0 00 00 00 mov eax, DWORD PTR a$[rbp] 00048 0f af 85 f8 00 00 00 imul eax, DWORD PTR b$[rbp] 0004f 8b 95 00 01 00 00 mov edx, DWORD PTR c$[rbp] 00055 8b c8 mov ecx, eax 00057 e8 00 00 00 00 call stbi__mul2sizes_valid 0005c 85 c0 test eax, eax 0005e 74 5d je SHORT $LN3@stbi__mad4 00060 8b 85 f0 00 00 00 mov eax, DWORD PTR a$[rbp] 00066 0f af 85 f8 00 00 00 imul eax, DWORD PTR b$[rbp] 0006d 0f af 85 00 01 00 00 imul eax, DWORD PTR c$[rbp] 00074 8b 95 08 01 00 00 mov edx, DWORD PTR d$[rbp] 0007a 8b c8 mov ecx, eax 0007c e8 00 00 00 00 call stbi__mul2sizes_valid 00081 85 c0 test eax, eax 00083 74 38 je SHORT $LN3@stbi__mad4 00085 8b 85 f0 00 00 00 mov eax, DWORD PTR a$[rbp] 0008b 0f af 85 f8 00 00 00 imul eax, DWORD PTR b$[rbp] 00092 0f af 85 00 01 00 00 imul eax, DWORD PTR c$[rbp] 00099 0f af 85 08 01 00 00 imul eax, DWORD PTR d$[rbp] 000a0 8b 95 10 01 00 00 mov edx, DWORD PTR add$[rbp] 000a6 8b c8 mov ecx, eax 000a8 e8 00 00 00 00 call stbi__addsizes_valid 000ad 85 c0 test eax, eax 000af 74 0c je SHORT $LN3@stbi__mad4 000b1 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv86[rbp], 1 000bb eb 0a jmp SHORT $LN4@stbi__mad4 $LN3@stbi__mad4: 000bd c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv86[rbp], 0 $LN4@stbi__mad4: 000c7 8b 85 c0 00 00 00 mov eax, DWORD PTR tv86[rbp] ; 503 : stbi__mul2sizes_valid(a * b * c, d) && stbi__addsizes_valid(a * b * c * d, add); ; 504 : } 000cd 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000d4 5f pop rdi 000d5 5d pop rbp 000d6 c3 ret 0 stbi__mad4sizes_valid ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__mad3sizes_valid _TEXT SEGMENT tv79 = 192 a$ = 240 b$ = 248 c$ = 256 add$ = 264 stbi__mad3sizes_valid PROC ; COMDAT ; 493 : { 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00012 55 push rbp 00013 57 push rdi 00014 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001b 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00020 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002c 90 npad 1 ; 494 : return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) && 0002d 8b 95 f8 00 00 00 mov edx, DWORD PTR b$[rbp] 00033 8b 8d f0 00 00 00 mov ecx, DWORD PTR a$[rbp] 00039 e8 00 00 00 00 call stbi__mul2sizes_valid 0003e 85 c0 test eax, eax 00040 74 4f je SHORT $LN3@stbi__mad3 00042 8b 85 f0 00 00 00 mov eax, DWORD PTR a$[rbp] 00048 0f af 85 f8 00 00 00 imul eax, DWORD PTR b$[rbp] 0004f 8b 95 00 01 00 00 mov edx, DWORD PTR c$[rbp] 00055 8b c8 mov ecx, eax 00057 e8 00 00 00 00 call stbi__mul2sizes_valid 0005c 85 c0 test eax, eax 0005e 74 31 je SHORT $LN3@stbi__mad3 00060 8b 85 f0 00 00 00 mov eax, DWORD PTR a$[rbp] 00066 0f af 85 f8 00 00 00 imul eax, DWORD PTR b$[rbp] 0006d 0f af 85 00 01 00 00 imul eax, DWORD PTR c$[rbp] 00074 8b 95 08 01 00 00 mov edx, DWORD PTR add$[rbp] 0007a 8b c8 mov ecx, eax 0007c e8 00 00 00 00 call stbi__addsizes_valid 00081 85 c0 test eax, eax 00083 74 0c je SHORT $LN3@stbi__mad3 00085 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv79[rbp], 1 0008f eb 0a jmp SHORT $LN4@stbi__mad3 $LN3@stbi__mad3: 00091 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv79[rbp], 0 $LN4@stbi__mad3: 0009b 8b 85 c0 00 00 00 mov eax, DWORD PTR tv79[rbp] ; 495 : stbi__addsizes_valid(a * b * c, add); ; 496 : } 000a1 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000a8 5f pop rdi 000a9 5d pop rbp 000aa c3 ret 0 stbi__mad3sizes_valid ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__mad2sizes_valid _TEXT SEGMENT tv73 = 192 a$ = 240 b$ = 248 add$ = 256 stbi__mad2sizes_valid PROC ; COMDAT ; 486 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 0000d 55 push rbp 0000e 57 push rdi 0000f 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00027 90 npad 1 ; 487 : return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a * b, add); 00028 8b 95 f8 00 00 00 mov edx, DWORD PTR b$[rbp] 0002e 8b 8d f0 00 00 00 mov ecx, DWORD PTR a$[rbp] 00034 e8 00 00 00 00 call stbi__mul2sizes_valid 00039 85 c0 test eax, eax 0003b 74 2a je SHORT $LN3@stbi__mad2 0003d 8b 85 f0 00 00 00 mov eax, DWORD PTR a$[rbp] 00043 0f af 85 f8 00 00 00 imul eax, DWORD PTR b$[rbp] 0004a 8b 95 00 01 00 00 mov edx, DWORD PTR add$[rbp] 00050 8b c8 mov ecx, eax 00052 e8 00 00 00 00 call stbi__addsizes_valid 00057 85 c0 test eax, eax 00059 74 0c je SHORT $LN3@stbi__mad2 0005b c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv73[rbp], 1 00065 eb 0a jmp SHORT $LN4@stbi__mad2 $LN3@stbi__mad2: 00067 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv73[rbp], 0 $LN4@stbi__mad2: 00071 8b 85 c0 00 00 00 mov eax, DWORD PTR tv73[rbp] ; 488 : } 00077 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 0007e 5f pop rdi 0007f 5d pop rbp 00080 c3 ret 0 stbi__mad2sizes_valid ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__mul2sizes_valid _TEXT SEGMENT tv69 = 192 a$ = 240 b$ = 248 stbi__mul2sizes_valid PROC ; COMDAT ; 473 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00008 55 push rbp 00009 57 push rdi 0000a 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00016 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00022 90 npad 1 ; 474 : if (a < 0 || b < 0) 00023 83 bd f0 00 00 00 00 cmp DWORD PTR a$[rbp], 0 0002a 7c 09 jl SHORT $LN3@stbi__mul2 0002c 83 bd f8 00 00 00 00 cmp DWORD PTR b$[rbp], 0 00033 7d 04 jge SHORT $LN2@stbi__mul2 $LN3@stbi__mul2: ; 475 : return 0; 00035 33 c0 xor eax, eax 00037 eb 40 jmp SHORT $LN1@stbi__mul2 $LN2@stbi__mul2: ; 476 : if (b == 0) 00039 83 bd f8 00 00 00 00 cmp DWORD PTR b$[rbp], 0 00040 75 07 jne SHORT $LN4@stbi__mul2 ; 477 : return 1; // mul-by-0 is always safe 00042 b8 01 00 00 00 mov eax, 1 00047 eb 30 jmp SHORT $LN1@stbi__mul2 $LN4@stbi__mul2: ; 478 : // portable way to check for no overflows in a*b ; 479 : return a <= INT_MAX / b; 00049 b8 ff ff ff 7f mov eax, 2147483647 ; 7fffffffH 0004e 99 cdq 0004f f7 bd f8 00 00 00 idiv DWORD PTR b$[rbp] 00055 39 85 f0 00 00 00 cmp DWORD PTR a$[rbp], eax 0005b 7f 0c jg SHORT $LN6@stbi__mul2 0005d c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 00067 eb 0a jmp SHORT $LN7@stbi__mul2 $LN6@stbi__mul2: 00069 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN7@stbi__mul2: 00073 8b 85 c0 00 00 00 mov eax, DWORD PTR tv69[rbp] $LN1@stbi__mul2: ; 480 : } 00079 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 00080 5f pop rdi 00081 5d pop rbp 00082 c3 ret 0 stbi__mul2sizes_valid ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__addsizes_valid _TEXT SEGMENT tv67 = 192 a$ = 240 b$ = 248 stbi__addsizes_valid PROC ; COMDAT ; 460 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00008 55 push rbp 00009 57 push rdi 0000a 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00011 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00016 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00022 90 npad 1 ; 461 : if (b < 0) 00023 83 bd f8 00 00 00 00 cmp DWORD PTR b$[rbp], 0 0002a 7d 04 jge SHORT $LN2@stbi__adds ; 462 : return 0; 0002c 33 c0 xor eax, eax 0002e eb 2f jmp SHORT $LN1@stbi__adds $LN2@stbi__adds: ; 463 : // now 0 <= b <= INT_MAX, hence also ; 464 : // 0 <= INT_MAX - b <= INTMAX. ; 465 : // And "a + b <= INT_MAX" (which might overflow) is the ; 466 : // same as a <= INT_MAX - b (no overflow) ; 467 : return a <= INT_MAX - b; 00030 b8 ff ff ff 7f mov eax, 2147483647 ; 7fffffffH 00035 2b 85 f8 00 00 00 sub eax, DWORD PTR b$[rbp] 0003b 39 85 f0 00 00 00 cmp DWORD PTR a$[rbp], eax 00041 7f 0c jg SHORT $LN4@stbi__adds 00043 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv67[rbp], 1 0004d eb 0a jmp SHORT $LN5@stbi__adds $LN4@stbi__adds: 0004f c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv67[rbp], 0 $LN5@stbi__adds: 00059 8b 85 c0 00 00 00 mov eax, DWORD PTR tv67[rbp] $LN1@stbi__adds: ; 468 : } 0005f 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 00066 5f pop rdi 00067 5d pop rbp 00068 c3 ret 0 stbi__addsizes_valid ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__malloc _TEXT SEGMENT size$ = 224 stbi__malloc PROC ; COMDAT ; 443 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 444 : return STBI_MALLOC(size); 00020 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR size$[rbp] 00027 ff 15 00 00 00 00 call QWORD PTR __imp_malloc ; 445 : } 0002d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00034 5f pop rdi 00035 5d pop rbp 00036 c3 ret 0 stbi__malloc ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__err _TEXT SEGMENT str$ = 224 stbi__err PROC ; COMDAT ; 436 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 437 : stbi__g_failure_reason = str; 00020 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__g_failure_reason 00025 8b c0 mov eax, eax 00027 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0002d 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00036 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 0003a 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR str$[rbp] 00041 48 89 14 08 mov QWORD PTR [rax+rcx], rdx ; 438 : return 0; 00045 33 c0 xor eax, eax ; 439 : } 00047 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0004e 5f pop rdi 0004f 5d pop rbp 00050 c3 ret 0 stbi__err ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pnm_is16 _TEXT SEGMENT s$ = 224 stbi__pnm_is16 PROC ; COMDAT ; 8101 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 8102 : if (stbi__pnm_info(s, NULL, NULL, NULL) == 16) 00020 45 33 c9 xor r9d, r9d 00023 45 33 c0 xor r8d, r8d 00026 33 d2 xor edx, edx 00028 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0002f e8 00 00 00 00 call stbi__pnm_info 00034 83 f8 10 cmp eax, 16 00037 75 07 jne SHORT $LN2@stbi__pnm_ ; 8103 : return 1; 00039 b8 01 00 00 00 mov eax, 1 0003e eb 02 jmp SHORT $LN1@stbi__pnm_ $LN2@stbi__pnm_: ; 8104 : return 0; 00040 33 c0 xor eax, eax $LN1@stbi__pnm_: ; 8105 : } 00042 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00049 5f pop rdi 0004a 5d pop rbp 0004b c3 ret 0 stbi__pnm_is16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pnm_info _TEXT SEGMENT maxv$ = 4 dummy$ = 36 c$ = 68 p$ = 100 t$ = 132 tv81 = 340 __$ArrayPad$ = 344 s$ = 384 x$ = 392 y$ = 400 comp$ = 408 stbi__pnm_info PROC ; COMDAT ; 8054 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 58 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 8055 : int maxv, dummy; ; 8056 : char c, p, t; ; 8057 : ; 8058 : if (!x) 00059 48 83 bd 88 01 00 00 00 cmp QWORD PTR x$[rbp], 0 00061 75 0b jne SHORT $LN2@stbi__pnm_ ; 8059 : x = &dummy; 00063 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] 00067 48 89 85 88 01 00 00 mov QWORD PTR x$[rbp], rax $LN2@stbi__pnm_: ; 8060 : if (!y) 0006e 48 83 bd 90 01 00 00 00 cmp QWORD PTR y$[rbp], 0 00076 75 0b jne SHORT $LN3@stbi__pnm_ ; 8061 : y = &dummy; 00078 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] 0007c 48 89 85 90 01 00 00 mov QWORD PTR y$[rbp], rax $LN3@stbi__pnm_: ; 8062 : if (!comp) 00083 48 83 bd 98 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 0008b 75 0b jne SHORT $LN4@stbi__pnm_ ; 8063 : comp = &dummy; 0008d 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] 00091 48 89 85 98 01 00 00 mov QWORD PTR comp$[rbp], rax $LN4@stbi__pnm_: ; 8064 : ; 8065 : stbi__rewind(s); 00098 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 0009f e8 00 00 00 00 call stbi__rewind 000a4 90 npad 1 ; 8066 : ; 8067 : // Get identifier ; 8068 : p = (char)stbi__get8(s); 000a5 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 000ac e8 00 00 00 00 call stbi__get8 000b1 88 45 64 mov BYTE PTR p$[rbp], al ; 8069 : t = (char)stbi__get8(s); 000b4 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 000bb e8 00 00 00 00 call stbi__get8 000c0 88 85 84 00 00 00 mov BYTE PTR t$[rbp], al ; 8070 : if (p != 'P' || (t != '5' && t != '6')) { 000c6 0f be 45 64 movsx eax, BYTE PTR p$[rbp] 000ca 83 f8 50 cmp eax, 80 ; 00000050H 000cd 75 18 jne SHORT $LN6@stbi__pnm_ 000cf 0f be 85 84 00 00 00 movsx eax, BYTE PTR t$[rbp] 000d6 83 f8 35 cmp eax, 53 ; 00000035H 000d9 74 20 je SHORT $LN5@stbi__pnm_ 000db 0f be 85 84 00 00 00 movsx eax, BYTE PTR t$[rbp] 000e2 83 f8 36 cmp eax, 54 ; 00000036H 000e5 74 14 je SHORT $LN5@stbi__pnm_ $LN6@stbi__pnm_: ; 8071 : stbi__rewind(s); 000e7 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 000ee e8 00 00 00 00 call stbi__rewind 000f3 90 npad 1 ; 8072 : return 0; 000f4 33 c0 xor eax, eax 000f6 e9 1f 01 00 00 jmp $LN1@stbi__pnm_ $LN5@stbi__pnm_: ; 8073 : } ; 8074 : ; 8075 : *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm 000fb 0f be 85 84 00 00 00 movsx eax, BYTE PTR t$[rbp] 00102 83 f8 36 cmp eax, 54 ; 00000036H 00105 75 0c jne SHORT $LN14@stbi__pnm_ 00107 c7 85 54 01 00 00 03 00 00 00 mov DWORD PTR tv81[rbp], 3 00111 eb 0a jmp SHORT $LN15@stbi__pnm_ $LN14@stbi__pnm_: 00113 c7 85 54 01 00 00 01 00 00 00 mov DWORD PTR tv81[rbp], 1 $LN15@stbi__pnm_: 0011d 48 8b 85 98 01 00 00 mov rax, QWORD PTR comp$[rbp] 00124 8b 8d 54 01 00 00 mov ecx, DWORD PTR tv81[rbp] 0012a 89 08 mov DWORD PTR [rax], ecx ; 8076 : ; 8077 : c = (char)stbi__get8(s); 0012c 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 00133 e8 00 00 00 00 call stbi__get8 00138 88 45 44 mov BYTE PTR c$[rbp], al ; 8078 : stbi__pnm_skip_whitespace(s, &c); 0013b 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] 0013f 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 00146 e8 00 00 00 00 call stbi__pnm_skip_whitespace 0014b 90 npad 1 ; 8079 : ; 8080 : *x = stbi__pnm_getinteger(s, &c); // read width 0014c 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] 00150 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 00157 e8 00 00 00 00 call stbi__pnm_getinteger 0015c 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR x$[rbp] 00163 89 01 mov DWORD PTR [rcx], eax ; 8081 : if (*x == 0) 00165 48 8b 85 88 01 00 00 mov rax, QWORD PTR x$[rbp] 0016c 83 38 00 cmp DWORD PTR [rax], 0 0016f 75 11 jne SHORT $LN7@stbi__pnm_ ; 8082 : return stbi__err("invalid width", "PPM image header had zero or overflowing width"); 00171 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@MKGNGALN@invalid?5width@ 00178 e8 00 00 00 00 call stbi__err 0017d e9 98 00 00 00 jmp $LN1@stbi__pnm_ $LN7@stbi__pnm_: ; 8083 : stbi__pnm_skip_whitespace(s, &c); 00182 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] 00186 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 0018d e8 00 00 00 00 call stbi__pnm_skip_whitespace 00192 90 npad 1 ; 8084 : ; 8085 : *y = stbi__pnm_getinteger(s, &c); // read height 00193 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] 00197 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 0019e e8 00 00 00 00 call stbi__pnm_getinteger 001a3 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR y$[rbp] 001aa 89 01 mov DWORD PTR [rcx], eax ; 8086 : if (*y == 0) 001ac 48 8b 85 90 01 00 00 mov rax, QWORD PTR y$[rbp] 001b3 83 38 00 cmp DWORD PTR [rax], 0 001b6 75 0e jne SHORT $LN8@stbi__pnm_ ; 8087 : return stbi__err("invalid width", "PPM image header had zero or overflowing width"); 001b8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@MKGNGALN@invalid?5width@ 001bf e8 00 00 00 00 call stbi__err 001c4 eb 54 jmp SHORT $LN1@stbi__pnm_ $LN8@stbi__pnm_: ; 8088 : stbi__pnm_skip_whitespace(s, &c); 001c6 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] 001ca 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 001d1 e8 00 00 00 00 call stbi__pnm_skip_whitespace 001d6 90 npad 1 ; 8089 : ; 8090 : maxv = stbi__pnm_getinteger(s, &c); // read max value 001d7 48 8d 55 44 lea rdx, QWORD PTR c$[rbp] 001db 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR s$[rbp] 001e2 e8 00 00 00 00 call stbi__pnm_getinteger 001e7 89 45 04 mov DWORD PTR maxv$[rbp], eax ; 8091 : if (maxv > 65535) 001ea 81 7d 04 ff ff 00 00 cmp DWORD PTR maxv$[rbp], 65535 ; 0000ffffH 001f1 7e 10 jle SHORT $LN9@stbi__pnm_ ; 8092 : return stbi__err("max value > 65535", 001f3 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ 001fa e8 00 00 00 00 call stbi__err 001ff eb 19 jmp SHORT $LN1@stbi__pnm_ 00201 eb 17 jmp SHORT $LN10@stbi__pnm_ $LN9@stbi__pnm_: ; 8093 : "PPM image supports only 8-bit and 16-bit images"); ; 8094 : else if (maxv > 255) 00203 81 7d 04 ff 00 00 00 cmp DWORD PTR maxv$[rbp], 255 ; 000000ffH 0020a 7e 09 jle SHORT $LN11@stbi__pnm_ ; 8095 : return 16; 0020c b8 10 00 00 00 mov eax, 16 00211 eb 07 jmp SHORT $LN1@stbi__pnm_ 00213 eb 05 jmp SHORT $LN12@stbi__pnm_ $LN11@stbi__pnm_: ; 8096 : else ; 8097 : return 8; 00215 b8 08 00 00 00 mov eax, 8 $LN12@stbi__pnm_: $LN10@stbi__pnm_: $LN1@stbi__pnm_: ; 8098 : } 0021a 48 8b f8 mov rdi, rax 0021d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00221 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__pnm_info$rtcFrameData 00228 e8 00 00 00 00 call _RTC_CheckStackVars 0022d 48 8b c7 mov rax, rdi 00230 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00237 48 33 cd xor rcx, rbp 0023a e8 00 00 00 00 call __security_check_cookie 0023f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] 00246 5f pop rdi 00247 5d pop rbp 00248 c3 ret 0 stbi__pnm_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pnm_load _TEXT SEGMENT out$ = 8 tv160 = 212 tv80 = 216 tv86 = 216 tv138 = 216 tv154 = 216 tv172 = 216 s$ = 256 x$ = 264 y$ = 272 comp$ = 280 req_comp$ = 288 ri$ = 296 stbi__pnm_load PROC ; COMDAT ; 7969 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 7970 : stbi_uc *out; ; 7971 : STBI_NOTUSED(ri); ; 7972 : ; 7973 : ri->bits_per_channel = 0002f 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00036 48 83 c0 08 add rax, 8 0003a 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00041 48 83 c1 04 add rcx, 4 00045 48 8b 95 00 01 00 00 mov rdx, QWORD PTR s$[rbp] 0004c 4c 8b c8 mov r9, rax 0004f 4c 8b c1 mov r8, rcx 00052 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00059 e8 00 00 00 00 call stbi__pnm_info 0005e 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR ri$[rbp] 00065 89 01 mov DWORD PTR [rcx], eax ; 7974 : stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n); ; 7975 : if (ri->bits_per_channel == 0) 00067 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 0006e 83 38 00 cmp DWORD PTR [rax], 0 00071 75 07 jne SHORT $LN2@stbi__pnm_ ; 7976 : return 0; 00073 33 c0 xor eax, eax 00075 e9 06 03 00 00 jmp $LN1@stbi__pnm_ $LN2@stbi__pnm_: ; 7977 : ; 7978 : if (s->img_y > STBI_MAX_DIMENSIONS) 0007a 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00081 81 78 04 00 00 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H 00088 76 34 jbe SHORT $LN3@stbi__pnm_ ; 7979 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 0008a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00091 e8 00 00 00 00 call stbi__err 00096 85 c0 test eax, eax 00098 74 0d je SHORT $LN14@stbi__pnm_ 0009a 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv80[rbp], 0 000a5 eb 0b jmp SHORT $LN15@stbi__pnm_ $LN14@stbi__pnm_: 000a7 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv80[rbp], 0 $LN15@stbi__pnm_: 000b2 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv80[rbp] 000b9 e9 c2 02 00 00 jmp $LN1@stbi__pnm_ $LN3@stbi__pnm_: ; 7980 : if (s->img_x > STBI_MAX_DIMENSIONS) 000be 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 000c5 81 38 00 00 00 01 cmp DWORD PTR [rax], 16777216 ; 01000000H 000cb 76 34 jbe SHORT $LN4@stbi__pnm_ ; 7981 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 000cd 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 000d4 e8 00 00 00 00 call stbi__err 000d9 85 c0 test eax, eax 000db 74 0d je SHORT $LN16@stbi__pnm_ 000dd 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 000e8 eb 0b jmp SHORT $LN17@stbi__pnm_ $LN16@stbi__pnm_: 000ea 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@stbi__pnm_: 000f5 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv86[rbp] 000fc e9 7f 02 00 00 jmp $LN1@stbi__pnm_ $LN4@stbi__pnm_: ; 7982 : ; 7983 : *x = s->img_x; 00101 48 8b 85 08 01 00 00 mov rax, QWORD PTR x$[rbp] 00108 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0010f 8b 09 mov ecx, DWORD PTR [rcx] 00111 89 08 mov DWORD PTR [rax], ecx ; 7984 : *y = s->img_y; 00113 48 8b 85 10 01 00 00 mov rax, QWORD PTR y$[rbp] 0011a 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00121 8b 49 04 mov ecx, DWORD PTR [rcx+4] 00124 89 08 mov DWORD PTR [rax], ecx ; 7985 : if (comp) 00126 48 83 bd 18 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 0012e 74 13 je SHORT $LN5@stbi__pnm_ ; 7986 : *comp = s->img_n; 00130 48 8b 85 18 01 00 00 mov rax, QWORD PTR comp$[rbp] 00137 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0013e 8b 49 08 mov ecx, DWORD PTR [rcx+8] 00141 89 08 mov DWORD PTR [rax], ecx $LN5@stbi__pnm_: ; 7987 : ; 7988 : if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0)) 00143 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 0014a 8b 00 mov eax, DWORD PTR [rax] 0014c 99 cdq 0014d 83 e2 07 and edx, 7 00150 03 c2 add eax, edx 00152 c1 f8 03 sar eax, 3 00155 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 0015d 44 8b c8 mov r9d, eax 00160 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00167 44 8b 40 04 mov r8d, DWORD PTR [rax+4] 0016b 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00172 8b 10 mov edx, DWORD PTR [rax] 00174 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 0017b 8b 48 08 mov ecx, DWORD PTR [rax+8] 0017e e8 00 00 00 00 call stbi__mad4sizes_valid 00183 85 c0 test eax, eax 00185 75 34 jne SHORT $LN6@stbi__pnm_ ; 7989 : return stbi__errpuc("too large", "PNM too large"); 00187 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 0018e e8 00 00 00 00 call stbi__err 00193 85 c0 test eax, eax 00195 74 0d je SHORT $LN18@stbi__pnm_ 00197 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv138[rbp], 0 001a2 eb 0b jmp SHORT $LN19@stbi__pnm_ $LN18@stbi__pnm_: 001a4 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv138[rbp], 0 $LN19@stbi__pnm_: 001af 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv138[rbp] 001b6 e9 c5 01 00 00 jmp $LN1@stbi__pnm_ $LN6@stbi__pnm_: ; 7990 : ; 7991 : out = (stbi_uc *)stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 001bb 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 001c2 8b 00 mov eax, DWORD PTR [rax] 001c4 99 cdq 001c5 83 e2 07 and edx, 7 001c8 03 c2 add eax, edx 001ca c1 f8 03 sar eax, 3 001cd c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 001d5 44 8b c8 mov r9d, eax 001d8 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 001df 44 8b 40 04 mov r8d, DWORD PTR [rax+4] 001e3 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 001ea 8b 10 mov edx, DWORD PTR [rax] 001ec 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 001f3 8b 48 08 mov ecx, DWORD PTR [rax+8] 001f6 e8 00 00 00 00 call stbi__malloc_mad4 001fb 48 89 45 08 mov QWORD PTR out$[rbp], rax ; 7992 : 0); ; 7993 : if (!out) 001ff 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0 00204 75 34 jne SHORT $LN7@stbi__pnm_ ; 7994 : return stbi__errpuc("outofmem", "Out of memory"); 00206 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0020d e8 00 00 00 00 call stbi__err 00212 85 c0 test eax, eax 00214 74 0d je SHORT $LN20@stbi__pnm_ 00216 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv154[rbp], 0 00221 eb 0b jmp SHORT $LN21@stbi__pnm_ $LN20@stbi__pnm_: 00223 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv154[rbp], 0 $LN21@stbi__pnm_: 0022e 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv154[rbp] 00235 e9 46 01 00 00 jmp $LN1@stbi__pnm_ $LN7@stbi__pnm_: ; 7995 : if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) { 0023a 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00241 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00248 8b 40 08 mov eax, DWORD PTR [rax+8] 0024b 0f af 01 imul eax, DWORD PTR [rcx] 0024e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00255 0f af 41 04 imul eax, DWORD PTR [rcx+4] 00259 89 85 d4 00 00 00 mov DWORD PTR tv160[rbp], eax 0025f 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR ri$[rbp] 00266 8b 01 mov eax, DWORD PTR [rcx] 00268 99 cdq 00269 83 e2 07 and edx, 7 0026c 03 c2 add eax, edx 0026e c1 f8 03 sar eax, 3 00271 8b 8d d4 00 00 00 mov ecx, DWORD PTR tv160[rbp] 00277 0f af c8 imul ecx, eax 0027a 8b c1 mov eax, ecx 0027c 44 8b c0 mov r8d, eax 0027f 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] 00283 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0028a e8 00 00 00 00 call stbi__getn 0028f 85 c0 test eax, eax 00291 75 3f jne SHORT $LN8@stbi__pnm_ ; 7996 : STBI_FREE(out); 00293 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00297 ff 15 00 00 00 00 call QWORD PTR __imp_free 0029d 90 npad 1 ; 7997 : return stbi__errpuc("bad PNM", "PNM file truncated"); 0029e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07IDKIDMGJ@bad?5PNM@ 002a5 e8 00 00 00 00 call stbi__err 002aa 85 c0 test eax, eax 002ac 74 0d je SHORT $LN22@stbi__pnm_ 002ae 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv172[rbp], 0 002b9 eb 0b jmp SHORT $LN23@stbi__pnm_ $LN22@stbi__pnm_: 002bb 48 c7 85 d8 00 00 00 00 00 00 00 mov QWORD PTR tv172[rbp], 0 $LN23@stbi__pnm_: 002c6 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv172[rbp] 002cd e9 ae 00 00 00 jmp $LN1@stbi__pnm_ $LN8@stbi__pnm_: ; 7998 : } ; 7999 : ; 8000 : if (req_comp && req_comp != s->img_n) { 002d2 83 bd 20 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 002d9 0f 84 9d 00 00 00 je $LN9@stbi__pnm_ 002df 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 002e6 8b 40 08 mov eax, DWORD PTR [rax+8] 002e9 39 85 20 01 00 00 cmp DWORD PTR req_comp$[rbp], eax 002ef 0f 84 87 00 00 00 je $LN9@stbi__pnm_ ; 8001 : if (ri->bits_per_channel == 16) { 002f5 48 8b 85 28 01 00 00 mov rax, QWORD PTR ri$[rbp] 002fc 83 38 10 cmp DWORD PTR [rax], 16 002ff 75 38 jne SHORT $LN10@stbi__pnm_ ; 8002 : out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, s->img_n, 00301 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00308 8b 40 04 mov eax, DWORD PTR [rax+4] 0030b 89 44 24 20 mov DWORD PTR [rsp+32], eax 0030f 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00316 44 8b 08 mov r9d, DWORD PTR [rax] 00319 44 8b 85 20 01 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00320 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00327 8b 50 08 mov edx, DWORD PTR [rax+8] 0032a 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 0032e e8 00 00 00 00 call stbi__convert_format16 00333 48 89 45 08 mov QWORD PTR out$[rbp], rax ; 8003 : req_comp, s->img_x, s->img_y); ; 8004 : } else { 00337 eb 36 jmp SHORT $LN11@stbi__pnm_ $LN10@stbi__pnm_: ; 8005 : out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); 00339 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00340 8b 40 04 mov eax, DWORD PTR [rax+4] 00343 89 44 24 20 mov DWORD PTR [rsp+32], eax 00347 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 0034e 44 8b 08 mov r9d, DWORD PTR [rax] 00351 44 8b 85 20 01 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00358 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 0035f 8b 50 08 mov edx, DWORD PTR [rax+8] 00362 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00366 e8 00 00 00 00 call stbi__convert_format 0036b 48 89 45 08 mov QWORD PTR out$[rbp], rax $LN11@stbi__pnm_: ; 8006 : } ; 8007 : if (out == NULL) 0036f 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0 00374 75 06 jne SHORT $LN12@stbi__pnm_ ; 8008 : return out; // stbi__convert_format frees input on failure 00376 48 8b 45 08 mov rax, QWORD PTR out$[rbp] 0037a eb 04 jmp SHORT $LN1@stbi__pnm_ $LN12@stbi__pnm_: $LN9@stbi__pnm_: ; 8009 : } ; 8010 : return out; 0037c 48 8b 45 08 mov rax, QWORD PTR out$[rbp] $LN1@stbi__pnm_: ; 8011 : } 00380 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00387 5f pop rdi 00388 5d pop rbp 00389 c3 ret 0 stbi__pnm_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pnm_test _TEXT SEGMENT p$ = 4 t$ = 36 s$ = 288 stbi__pnm_test PROC ; COMDAT ; 7956 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 7957 : char p, t; ; 7958 : p = (char)stbi__get8(s); 00020 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get8 0002c 88 45 04 mov BYTE PTR p$[rbp], al ; 7959 : t = (char)stbi__get8(s); 0002f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__get8 0003b 88 45 24 mov BYTE PTR t$[rbp], al ; 7960 : if (p != 'P' || (t != '5' && t != '6')) { 0003e 0f be 45 04 movsx eax, BYTE PTR p$[rbp] 00042 83 f8 50 cmp eax, 80 ; 00000050H 00045 75 12 jne SHORT $LN3@stbi__pnm_ 00047 0f be 45 24 movsx eax, BYTE PTR t$[rbp] 0004b 83 f8 35 cmp eax, 53 ; 00000035H 0004e 74 1a je SHORT $LN2@stbi__pnm_ 00050 0f be 45 24 movsx eax, BYTE PTR t$[rbp] 00054 83 f8 36 cmp eax, 54 ; 00000036H 00057 74 11 je SHORT $LN2@stbi__pnm_ $LN3@stbi__pnm_: ; 7961 : stbi__rewind(s); 00059 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00060 e8 00 00 00 00 call stbi__rewind 00065 90 npad 1 ; 7962 : return 0; 00066 33 c0 xor eax, eax 00068 eb 05 jmp SHORT $LN1@stbi__pnm_ $LN2@stbi__pnm_: ; 7963 : } ; 7964 : return 1; 0006a b8 01 00 00 00 mov eax, 1 $LN1@stbi__pnm_: ; 7965 : } 0006f 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 00076 5f pop rdi 00077 5d pop rbp 00078 c3 ret 0 stbi__pnm_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__gif_info _TEXT SEGMENT s$ = 224 x$ = 232 y$ = 240 comp$ = 248 stbi__gif_info PROC ; COMDAT ; 7491 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 7492 : return stbi__gif_info_raw(s, x, y, comp); 0002f 4c 8b 8d f8 00 00 00 mov r9, QWORD PTR comp$[rbp] 00036 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR y$[rbp] 0003d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR x$[rbp] 00044 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0004b e8 00 00 00 00 call stbi__gif_info_raw ; 7493 : } 00050 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00057 5f pop rdi 00058 5d pop rbp 00059 c3 ret 0 stbi__gif_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__load_gif_main _TEXT SEGMENT layers$4 = 4 u$5 = 40 out$6 = 72 two_back$7 = 104 g$8 = 144 stride$9 = 35092 out_size$10 = 35124 delays_size$11 = 35156 tmp$12 = 35192 new_delays$13 = 35224 tv137 = 36776 tv211 = 36776 __$ArrayPad$ = 36784 s$ = 36832 delays$ = 36840 x$ = 36848 y$ = 36856 z$ = 36864 comp$ = 36872 req_comp$ = 36880 stbi__load_gif_main PROC ; COMDAT ; 7368 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 b8 f8 8f 00 00 mov eax, 36856 ; 00008ff8H 0001b e8 00 00 00 00 call __chkstk 00020 48 2b e0 sub rsp, rax 00023 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00028 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0002d b9 72 22 00 00 mov ecx, 8818 ; 00002272H 00032 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00037 f3 ab rep stosd 00039 48 8b 8c 24 18 90 00 00 mov rcx, QWORD PTR [rsp+36888] 00041 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00048 48 33 c5 xor rax, rbp 0004b 48 89 85 b0 8f 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00052 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00059 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0005e 90 npad 1 ; 7369 : if (stbi__gif_test(s)) { 0005f 48 8b 8d e0 8f 00 00 mov rcx, QWORD PTR s$[rbp] 00066 e8 00 00 00 00 call stbi__gif_test 0006b 85 c0 test eax, eax 0006d 0f 84 9a 03 00 00 je $LN5@stbi__load ; 7370 : int layers = 0; 00073 c7 45 04 00 00 00 00 mov DWORD PTR layers$4[rbp], 0 ; 7371 : stbi_uc *u = 0; 0007a 48 c7 45 28 00 00 00 00 mov QWORD PTR u$5[rbp], 0 ; 7372 : stbi_uc *out = 0; 00082 48 c7 45 48 00 00 00 00 mov QWORD PTR out$6[rbp], 0 ; 7373 : stbi_uc *two_back = 0; 0008a 48 c7 45 68 00 00 00 00 mov QWORD PTR two_back$7[rbp], 0 ; 7374 : stbi__gif g; ; 7375 : int stride; ; 7376 : int out_size = 0; 00092 c7 85 34 89 00 00 00 00 00 00 mov DWORD PTR out_size$10[rbp], 0 ; 7377 : int delays_size = 0; 0009c c7 85 54 89 00 00 00 00 00 00 mov DWORD PTR delays_size$11[rbp], 0 ; 7378 : ; 7379 : STBI_NOTUSED(out_size); ; 7380 : STBI_NOTUSED(delays_size); ; 7381 : ; 7382 : memset(&g, 0, sizeof(g)); 000a6 41 b8 70 88 00 00 mov r8d, 34928 ; 00008870H 000ac 33 d2 xor edx, edx 000ae 48 8d 8d 90 00 00 00 lea rcx, QWORD PTR g$8[rbp] 000b5 e8 00 00 00 00 call memset 000ba 90 npad 1 ; 7383 : if (delays) { 000bb 48 83 bd e8 8f 00 00 00 cmp QWORD PTR delays$[rbp], 0 000c3 74 0e je SHORT $LN7@stbi__load ; 7384 : *delays = 0; 000c5 48 8b 85 e8 8f 00 00 mov rax, QWORD PTR delays$[rbp] 000cc 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 $LN7@stbi__load: $LN4@stbi__load: ; 7385 : } ; 7386 : ; 7387 : do { ; 7388 : u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); 000d3 48 8b 45 68 mov rax, QWORD PTR two_back$7[rbp] 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax 000dc 44 8b 8d 10 90 00 00 mov r9d, DWORD PTR req_comp$[rbp] 000e3 4c 8b 85 08 90 00 00 mov r8, QWORD PTR comp$[rbp] 000ea 48 8d 95 90 00 00 00 lea rdx, QWORD PTR g$8[rbp] 000f1 48 8b 8d e0 8f 00 00 mov rcx, QWORD PTR s$[rbp] 000f8 e8 00 00 00 00 call stbi__gif_load_next 000fd 48 89 45 28 mov QWORD PTR u$5[rbp], rax ; 7389 : if (u == (stbi_uc *)s) 00101 48 8b 85 e0 8f 00 00 mov rax, QWORD PTR s$[rbp] 00108 48 39 45 28 cmp QWORD PTR u$5[rbp], rax 0010c 75 08 jne SHORT $LN8@stbi__load ; 7390 : u = 0; // end of animated gif marker 0010e 48 c7 45 28 00 00 00 00 mov QWORD PTR u$5[rbp], 0 $LN8@stbi__load: ; 7391 : ; 7392 : if (u) { 00116 48 83 7d 28 00 cmp QWORD PTR u$5[rbp], 0 0011b 0f 84 61 02 00 00 je $LN9@stbi__load ; 7393 : *x = g.w; 00121 48 8b 85 f0 8f 00 00 mov rax, QWORD PTR x$[rbp] 00128 8b 8d 90 00 00 00 mov ecx, DWORD PTR g$8[rbp] 0012e 89 08 mov DWORD PTR [rax], ecx ; 7394 : *y = g.h; 00130 48 8b 85 f8 8f 00 00 mov rax, QWORD PTR y$[rbp] 00137 8b 8d 94 00 00 00 mov ecx, DWORD PTR g$8[rbp+4] 0013d 89 08 mov DWORD PTR [rax], ecx ; 7395 : ++layers; 0013f 8b 45 04 mov eax, DWORD PTR layers$4[rbp] 00142 ff c0 inc eax 00144 89 45 04 mov DWORD PTR layers$4[rbp], eax ; 7396 : stride = g.w * g.h * 4; 00147 8b 85 90 00 00 00 mov eax, DWORD PTR g$8[rbp] 0014d 0f af 85 94 00 00 00 imul eax, DWORD PTR g$8[rbp+4] 00154 c1 e0 02 shl eax, 2 00157 89 85 14 89 00 00 mov DWORD PTR stride$9[rbp], eax ; 7397 : ; 7398 : if (out) { 0015d 48 83 7d 48 00 cmp QWORD PTR out$6[rbp], 0 00162 0f 84 05 01 00 00 je $LN10@stbi__load ; 7399 : void *tmp = (stbi_uc *)STBI_REALLOC_SIZED(out, out_size, 00168 8b 45 04 mov eax, DWORD PTR layers$4[rbp] 0016b 0f af 85 14 89 00 00 imul eax, DWORD PTR stride$9[rbp] 00172 48 98 cdqe 00174 48 c7 c1 ff ff ff ff mov rcx, -1 0017b 48 0f 40 c1 cmovo rax, rcx 0017f 48 8b d0 mov rdx, rax 00182 48 8b 4d 48 mov rcx, QWORD PTR out$6[rbp] 00186 ff 15 00 00 00 00 call QWORD PTR __imp_realloc 0018c 48 89 85 78 89 00 00 mov QWORD PTR tmp$12[rbp], rax ; 7400 : layers * stride); ; 7401 : if (!tmp) 00193 48 83 bd 78 89 00 00 00 cmp QWORD PTR tmp$12[rbp], 0 0019b 75 1e jne SHORT $LN12@stbi__load ; 7402 : return stbi__load_gif_main_outofmem(&g, out, 0019d 4c 8b 85 e8 8f 00 00 mov r8, QWORD PTR delays$[rbp] 001a4 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] 001a8 48 8d 8d 90 00 00 00 lea rcx, QWORD PTR g$8[rbp] 001af e8 00 00 00 00 call stbi__load_gif_main_outofmem 001b4 e9 83 02 00 00 jmp $LN1@stbi__load 001b9 eb 1b jmp SHORT $LN13@stbi__load $LN12@stbi__load: ; 7403 : delays); ; 7404 : else { ; 7405 : out = (stbi_uc *)tmp; 001bb 48 8b 85 78 89 00 00 mov rax, QWORD PTR tmp$12[rbp] 001c2 48 89 45 48 mov QWORD PTR out$6[rbp], rax ; 7406 : out_size = layers * stride; 001c6 8b 45 04 mov eax, DWORD PTR layers$4[rbp] 001c9 0f af 85 14 89 00 00 imul eax, DWORD PTR stride$9[rbp] 001d0 89 85 34 89 00 00 mov DWORD PTR out_size$10[rbp], eax $LN13@stbi__load: ; 7407 : } ; 7408 : ; 7409 : if (delays) { 001d6 48 83 bd e8 8f 00 00 00 cmp QWORD PTR delays$[rbp], 0 001de 0f 84 84 00 00 00 je $LN14@stbi__load ; 7410 : int *new_delays = (int *)STBI_REALLOC_SIZED( 001e4 48 63 45 04 movsxd rax, DWORD PTR layers$4[rbp] 001e8 48 89 85 a8 8f 00 00 mov QWORD PTR tv137[rbp], rax 001ef b8 04 00 00 00 mov eax, 4 001f4 48 8b 8d a8 8f 00 00 mov rcx, QWORD PTR tv137[rbp] 001fb 48 f7 e1 mul rcx 001fe 48 c7 c1 ff ff ff ff mov rcx, -1 00205 48 0f 42 c1 cmovb rax, rcx 00209 48 8b d0 mov rdx, rax 0020c 48 8b 85 e8 8f 00 00 mov rax, QWORD PTR delays$[rbp] 00213 48 8b 08 mov rcx, QWORD PTR [rax] 00216 ff 15 00 00 00 00 call QWORD PTR __imp_realloc 0021c 48 89 85 98 89 00 00 mov QWORD PTR new_delays$13[rbp], rax ; 7411 : *delays, delays_size, sizeof(int) * layers); ; 7412 : if (!new_delays) 00223 48 83 bd 98 89 00 00 00 cmp QWORD PTR new_delays$13[rbp], 0 0022b 75 1c jne SHORT $LN15@stbi__load ; 7413 : return stbi__load_gif_main_outofmem(&g, out, 0022d 4c 8b 85 e8 8f 00 00 mov r8, QWORD PTR delays$[rbp] 00234 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] 00238 48 8d 8d 90 00 00 00 lea rcx, QWORD PTR g$8[rbp] 0023f e8 00 00 00 00 call stbi__load_gif_main_outofmem 00244 e9 f3 01 00 00 jmp $LN1@stbi__load $LN15@stbi__load: ; 7414 : delays); ; 7415 : *delays = new_delays; 00249 48 8b 85 e8 8f 00 00 mov rax, QWORD PTR delays$[rbp] 00250 48 8b 8d 98 89 00 00 mov rcx, QWORD PTR new_delays$13[rbp] 00257 48 89 08 mov QWORD PTR [rax], rcx ; 7416 : delays_size = layers * sizeof(int); 0025a 48 63 45 04 movsxd rax, DWORD PTR layers$4[rbp] 0025e 48 c1 e0 02 shl rax, 2 00262 89 85 54 89 00 00 mov DWORD PTR delays_size$11[rbp], eax $LN14@stbi__load: ; 7417 : } ; 7418 : } else { 00268 e9 a6 00 00 00 jmp $LN11@stbi__load $LN10@stbi__load: ; 7419 : out = (stbi_uc *)stbi__malloc(layers * stride); 0026d 8b 45 04 mov eax, DWORD PTR layers$4[rbp] 00270 0f af 85 14 89 00 00 imul eax, DWORD PTR stride$9[rbp] 00277 48 98 cdqe 00279 48 8b c8 mov rcx, rax 0027c e8 00 00 00 00 call stbi__malloc 00281 48 89 45 48 mov QWORD PTR out$6[rbp], rax ; 7420 : if (!out) 00285 48 83 7d 48 00 cmp QWORD PTR out$6[rbp], 0 0028a 75 1c jne SHORT $LN16@stbi__load ; 7421 : return stbi__load_gif_main_outofmem(&g, out, 0028c 4c 8b 85 e8 8f 00 00 mov r8, QWORD PTR delays$[rbp] 00293 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] 00297 48 8d 8d 90 00 00 00 lea rcx, QWORD PTR g$8[rbp] 0029e e8 00 00 00 00 call stbi__load_gif_main_outofmem 002a3 e9 94 01 00 00 jmp $LN1@stbi__load $LN16@stbi__load: ; 7422 : delays); ; 7423 : out_size = layers * stride; 002a8 8b 45 04 mov eax, DWORD PTR layers$4[rbp] 002ab 0f af 85 14 89 00 00 imul eax, DWORD PTR stride$9[rbp] 002b2 89 85 34 89 00 00 mov DWORD PTR out_size$10[rbp], eax ; 7424 : if (delays) { 002b8 48 83 bd e8 8f 00 00 00 cmp QWORD PTR delays$[rbp], 0 002c0 74 51 je SHORT $LN17@stbi__load ; 7425 : *delays = (int *)stbi__malloc(layers * sizeof(int)); 002c2 48 63 45 04 movsxd rax, DWORD PTR layers$4[rbp] 002c6 48 c1 e0 02 shl rax, 2 002ca 48 8b c8 mov rcx, rax 002cd e8 00 00 00 00 call stbi__malloc 002d2 48 8b 8d e8 8f 00 00 mov rcx, QWORD PTR delays$[rbp] 002d9 48 89 01 mov QWORD PTR [rcx], rax ; 7426 : if (!*delays) 002dc 48 8b 85 e8 8f 00 00 mov rax, QWORD PTR delays$[rbp] 002e3 48 83 38 00 cmp QWORD PTR [rax], 0 002e7 75 1c jne SHORT $LN18@stbi__load ; 7427 : return stbi__load_gif_main_outofmem(&g, out, 002e9 4c 8b 85 e8 8f 00 00 mov r8, QWORD PTR delays$[rbp] 002f0 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] 002f4 48 8d 8d 90 00 00 00 lea rcx, QWORD PTR g$8[rbp] 002fb e8 00 00 00 00 call stbi__load_gif_main_outofmem 00300 e9 37 01 00 00 jmp $LN1@stbi__load $LN18@stbi__load: ; 7428 : delays); ; 7429 : delays_size = layers * sizeof(int); 00305 48 63 45 04 movsxd rax, DWORD PTR layers$4[rbp] 00309 48 c1 e0 02 shl rax, 2 0030d 89 85 54 89 00 00 mov DWORD PTR delays_size$11[rbp], eax $LN17@stbi__load: $LN11@stbi__load: ; 7430 : } ; 7431 : } ; 7432 : memcpy(out + ((layers - 1) * stride), u, stride); 00313 48 63 85 14 89 00 00 movsxd rax, DWORD PTR stride$9[rbp] 0031a 8b 4d 04 mov ecx, DWORD PTR layers$4[rbp] 0031d ff c9 dec ecx 0031f 0f af 8d 14 89 00 00 imul ecx, DWORD PTR stride$9[rbp] 00326 48 63 c9 movsxd rcx, ecx 00329 48 8b 55 48 mov rdx, QWORD PTR out$6[rbp] 0032d 48 03 d1 add rdx, rcx 00330 48 8b ca mov rcx, rdx 00333 4c 8b c0 mov r8, rax 00336 48 8b 55 28 mov rdx, QWORD PTR u$5[rbp] 0033a e8 00 00 00 00 call memcpy 0033f 90 npad 1 ; 7433 : if (layers >= 2) { 00340 83 7d 04 02 cmp DWORD PTR layers$4[rbp], 2 00344 7c 18 jl SHORT $LN19@stbi__load ; 7434 : two_back = out - 2 * stride; 00346 8b 85 14 89 00 00 mov eax, DWORD PTR stride$9[rbp] 0034c d1 e0 shl eax, 1 0034e 48 98 cdqe 00350 48 8b 4d 48 mov rcx, QWORD PTR out$6[rbp] 00354 48 2b c8 sub rcx, rax 00357 48 8b c1 mov rax, rcx 0035a 48 89 45 68 mov QWORD PTR two_back$7[rbp], rax $LN19@stbi__load: ; 7435 : } ; 7436 : ; 7437 : if (delays) { 0035e 48 83 bd e8 8f 00 00 00 cmp QWORD PTR delays$[rbp], 0 00366 74 1a je SHORT $LN20@stbi__load ; 7438 : (*delays)[layers - 1U] = g.delay; 00368 8b 45 04 mov eax, DWORD PTR layers$4[rbp] 0036b ff c8 dec eax 0036d 8b c0 mov eax, eax 0036f 48 8b 8d e8 8f 00 00 mov rcx, QWORD PTR delays$[rbp] 00376 48 8b 09 mov rcx, QWORD PTR [rcx] 00379 8b 95 f8 88 00 00 mov edx, DWORD PTR g$8[rbp+34920] 0037f 89 14 81 mov DWORD PTR [rcx+rax*4], edx $LN20@stbi__load: $LN9@stbi__load: ; 7439 : } ; 7440 : } ; 7441 : } while (u != 0); 00382 48 83 7d 28 00 cmp QWORD PTR u$5[rbp], 0 00387 0f 85 46 fd ff ff jne $LN4@stbi__load ; 7442 : ; 7443 : // free temp buffer; ; 7444 : STBI_FREE(g.out); 0038d 48 8b 8d 98 00 00 00 mov rcx, QWORD PTR g$8[rbp+8] 00394 ff 15 00 00 00 00 call QWORD PTR __imp_free 0039a 90 npad 1 ; 7445 : STBI_FREE(g.history); 0039b 48 8b 8d a8 00 00 00 mov rcx, QWORD PTR g$8[rbp+24] 003a2 ff 15 00 00 00 00 call QWORD PTR __imp_free 003a8 90 npad 1 ; 7446 : STBI_FREE(g.background); 003a9 48 8b 8d a0 00 00 00 mov rcx, QWORD PTR g$8[rbp+16] 003b0 ff 15 00 00 00 00 call QWORD PTR __imp_free 003b6 90 npad 1 ; 7447 : ; 7448 : // do the final conversion after loading everything; ; 7449 : if (req_comp && req_comp != 4) 003b7 83 bd 10 90 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 003be 74 39 je SHORT $LN21@stbi__load 003c0 83 bd 10 90 00 00 04 cmp DWORD PTR req_comp$[rbp], 4 003c7 74 30 je SHORT $LN21@stbi__load ; 7450 : out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); 003c9 8b 45 04 mov eax, DWORD PTR layers$4[rbp] 003cc 0f af 85 90 00 00 00 imul eax, DWORD PTR g$8[rbp] 003d3 8b 8d 94 00 00 00 mov ecx, DWORD PTR g$8[rbp+4] 003d9 89 4c 24 20 mov DWORD PTR [rsp+32], ecx 003dd 44 8b c8 mov r9d, eax 003e0 44 8b 85 10 90 00 00 mov r8d, DWORD PTR req_comp$[rbp] 003e7 ba 04 00 00 00 mov edx, 4 003ec 48 8b 4d 48 mov rcx, QWORD PTR out$6[rbp] 003f0 e8 00 00 00 00 call stbi__convert_format 003f5 48 89 45 48 mov QWORD PTR out$6[rbp], rax $LN21@stbi__load: ; 7451 : ; 7452 : *z = layers; 003f9 48 8b 85 00 90 00 00 mov rax, QWORD PTR z$[rbp] 00400 8b 4d 04 mov ecx, DWORD PTR layers$4[rbp] 00403 89 08 mov DWORD PTR [rax], ecx ; 7453 : return out; 00405 48 8b 45 48 mov rax, QWORD PTR out$6[rbp] 00409 eb 31 jmp SHORT $LN1@stbi__load ; 7454 : } else { 0040b eb 2f jmp SHORT $LN6@stbi__load $LN5@stbi__load: ; 7455 : return stbi__errpuc("not GIF", "Image was not as a gif type."); 0040d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07KMJLPAII@not?5GIF@ 00414 e8 00 00 00 00 call stbi__err 00419 85 c0 test eax, eax 0041b 74 0d je SHORT $LN23@stbi__load 0041d 48 c7 85 a8 8f 00 00 00 00 00 00 mov QWORD PTR tv211[rbp], 0 00428 eb 0b jmp SHORT $LN24@stbi__load $LN23@stbi__load: 0042a 48 c7 85 a8 8f 00 00 00 00 00 00 mov QWORD PTR tv211[rbp], 0 $LN24@stbi__load: 00435 48 8b 85 a8 8f 00 00 mov rax, QWORD PTR tv211[rbp] $LN6@stbi__load: $LN1@stbi__load: ; 7456 : } ; 7457 : } 0043c 48 8b f8 mov rdi, rax 0043f 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00443 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__load_gif_main$rtcFrameData 0044a e8 00 00 00 00 call _RTC_CheckStackVars 0044f 48 8b c7 mov rax, rdi 00452 48 8b 8d b0 8f 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00459 48 33 cd xor rcx, rbp 0045c e8 00 00 00 00 call __security_check_cookie 00461 48 8d a5 c8 8f 00 00 lea rsp, QWORD PTR [rbp+36808] 00468 5f pop rdi 00469 5d pop rbp 0046a c3 ret 0 stbi__load_gif_main ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__gif_load _TEXT SEGMENT u$ = 8 g$ = 48 __$ArrayPad$ = 36520 s$ = 36560 x$ = 36568 y$ = 36576 comp$ = 36584 req_comp$ = 36592 ri$ = 36600 stbi__gif_load PROC ; COMDAT ; 7461 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 b8 e8 8e 00 00 mov eax, 36584 ; 00008ee8H 0001b e8 00 00 00 00 call __chkstk 00020 48 2b e0 sub rsp, rax 00023 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00028 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0002d b9 2e 22 00 00 mov ecx, 8750 ; 0000222eH 00032 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00037 f3 ab rep stosd 00039 48 8b 8c 24 08 8f 00 00 mov rcx, QWORD PTR [rsp+36616] 00041 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00048 48 33 c5 xor rax, rbp 0004b 48 89 85 a8 8e 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00052 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00059 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0005e 90 npad 1 ; 7462 : stbi_uc *u = 0; 0005f 48 c7 45 08 00 00 00 00 mov QWORD PTR u$[rbp], 0 ; 7463 : stbi__gif g; ; 7464 : memset(&g, 0, sizeof(g)); 00067 41 b8 70 88 00 00 mov r8d, 34928 ; 00008870H 0006d 33 d2 xor edx, edx 0006f 48 8d 4d 30 lea rcx, QWORD PTR g$[rbp] 00073 e8 00 00 00 00 call memset 00078 90 npad 1 ; 7465 : STBI_NOTUSED(ri); ; 7466 : ; 7467 : u = stbi__gif_load_next(s, &g, comp, req_comp, 0); 00079 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 00082 44 8b 8d f0 8e 00 00 mov r9d, DWORD PTR req_comp$[rbp] 00089 4c 8b 85 e8 8e 00 00 mov r8, QWORD PTR comp$[rbp] 00090 48 8d 55 30 lea rdx, QWORD PTR g$[rbp] 00094 48 8b 8d d0 8e 00 00 mov rcx, QWORD PTR s$[rbp] 0009b e8 00 00 00 00 call stbi__gif_load_next 000a0 48 89 45 08 mov QWORD PTR u$[rbp], rax ; 7468 : if (u == (stbi_uc *)s) 000a4 48 8b 85 d0 8e 00 00 mov rax, QWORD PTR s$[rbp] 000ab 48 39 45 08 cmp QWORD PTR u$[rbp], rax 000af 75 08 jne SHORT $LN2@stbi__gif_ ; 7469 : u = 0; // end of animated gif marker 000b1 48 c7 45 08 00 00 00 00 mov QWORD PTR u$[rbp], 0 $LN2@stbi__gif_: ; 7470 : if (u) { 000b9 48 83 7d 08 00 cmp QWORD PTR u$[rbp], 0 000be 74 50 je SHORT $LN3@stbi__gif_ ; 7471 : *x = g.w; 000c0 48 8b 85 d8 8e 00 00 mov rax, QWORD PTR x$[rbp] 000c7 8b 4d 30 mov ecx, DWORD PTR g$[rbp] 000ca 89 08 mov DWORD PTR [rax], ecx ; 7472 : *y = g.h; 000cc 48 8b 85 e0 8e 00 00 mov rax, QWORD PTR y$[rbp] 000d3 8b 4d 34 mov ecx, DWORD PTR g$[rbp+4] 000d6 89 08 mov DWORD PTR [rax], ecx ; 7473 : ; 7474 : // moved conversion to after successful load so that the same ; 7475 : // can be done for multiple frames. ; 7476 : if (req_comp && req_comp != 4) 000d8 83 bd f0 8e 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 000df 74 2d je SHORT $LN5@stbi__gif_ 000e1 83 bd f0 8e 00 00 04 cmp DWORD PTR req_comp$[rbp], 4 000e8 74 24 je SHORT $LN5@stbi__gif_ ; 7477 : u = stbi__convert_format(u, 4, req_comp, g.w, g.h); 000ea 8b 45 34 mov eax, DWORD PTR g$[rbp+4] 000ed 89 44 24 20 mov DWORD PTR [rsp+32], eax 000f1 44 8b 4d 30 mov r9d, DWORD PTR g$[rbp] 000f5 44 8b 85 f0 8e 00 00 mov r8d, DWORD PTR req_comp$[rbp] 000fc ba 04 00 00 00 mov edx, 4 00101 48 8b 4d 08 mov rcx, QWORD PTR u$[rbp] 00105 e8 00 00 00 00 call stbi__convert_format 0010a 48 89 45 08 mov QWORD PTR u$[rbp], rax $LN5@stbi__gif_: ; 7478 : } else if (g.out) { 0010e eb 12 jmp SHORT $LN4@stbi__gif_ $LN3@stbi__gif_: 00110 48 83 7d 38 00 cmp QWORD PTR g$[rbp+8], 0 00115 74 0b je SHORT $LN6@stbi__gif_ ; 7479 : // if there was an error and we allocated an image buffer, free it! ; 7480 : STBI_FREE(g.out); 00117 48 8b 4d 38 mov rcx, QWORD PTR g$[rbp+8] 0011b ff 15 00 00 00 00 call QWORD PTR __imp_free 00121 90 npad 1 $LN6@stbi__gif_: $LN4@stbi__gif_: ; 7481 : } ; 7482 : ; 7483 : // free buffers needed for multiple frame loading; ; 7484 : STBI_FREE(g.history); 00122 48 8b 4d 48 mov rcx, QWORD PTR g$[rbp+24] 00126 ff 15 00 00 00 00 call QWORD PTR __imp_free 0012c 90 npad 1 ; 7485 : STBI_FREE(g.background); 0012d 48 8b 4d 40 mov rcx, QWORD PTR g$[rbp+16] 00131 ff 15 00 00 00 00 call QWORD PTR __imp_free 00137 90 npad 1 ; 7486 : ; 7487 : return u; 00138 48 8b 45 08 mov rax, QWORD PTR u$[rbp] ; 7488 : } 0013c 48 8b f8 mov rdi, rax 0013f 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00143 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__gif_load$rtcFrameData 0014a e8 00 00 00 00 call _RTC_CheckStackVars 0014f 48 8b c7 mov rax, rdi 00152 48 8b 8d a8 8e 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00159 48 33 cd xor rcx, rbp 0015c e8 00 00 00 00 call __security_check_cookie 00161 48 8d a5 b8 8e 00 00 lea rsp, QWORD PTR [rbp+36536] 00168 5f pop rdi 00169 5d pop rbp 0016a c3 ret 0 stbi__gif_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__gif_test _TEXT SEGMENT r$ = 4 s$ = 256 stbi__gif_test PROC ; COMDAT ; 6964 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 6965 : int r = stbi__gif_test_raw(s); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__gif_test_raw 0002c 89 45 04 mov DWORD PTR r$[rbp], eax ; 6966 : stbi__rewind(s); 0002f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__rewind 0003b 90 npad 1 ; 6967 : return r; 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp] ; 6968 : } 0003f 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00046 5f pop rdi 00047 5d pop rbp 00048 c3 ret 0 stbi__gif_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pic_info _TEXT SEGMENT act_comp$ = 4 num_packets$ = 36 chained$ = 68 dummy$ = 100 packets$ = 136 packet$5 = 200 tv152 = 404 __$ArrayPad$ = 408 s$ = 448 x$ = 456 y$ = 464 comp$ = 472 stbi__pic_info PROC ; COMDAT ; 7882 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec c8 01 00 00 sub rsp, 456 ; 000001c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 e8 01 00 00 mov rcx, QWORD PTR [rsp+488] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 98 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 7883 : int act_comp = 0, num_packets = 0, chained, dummy; 00059 c7 45 04 00 00 00 00 mov DWORD PTR act_comp$[rbp], 0 00060 c7 45 24 00 00 00 00 mov DWORD PTR num_packets$[rbp], 0 ; 7884 : stbi__pic_packet packets[10]; ; 7885 : ; 7886 : if (!x) 00067 48 83 bd c8 01 00 00 00 cmp QWORD PTR x$[rbp], 0 0006f 75 0b jne SHORT $LN5@stbi__pic_ ; 7887 : x = &dummy; 00071 48 8d 45 64 lea rax, QWORD PTR dummy$[rbp] 00075 48 89 85 c8 01 00 00 mov QWORD PTR x$[rbp], rax $LN5@stbi__pic_: ; 7888 : if (!y) 0007c 48 83 bd d0 01 00 00 00 cmp QWORD PTR y$[rbp], 0 00084 75 0b jne SHORT $LN6@stbi__pic_ ; 7889 : y = &dummy; 00086 48 8d 45 64 lea rax, QWORD PTR dummy$[rbp] 0008a 48 89 85 d0 01 00 00 mov QWORD PTR y$[rbp], rax $LN6@stbi__pic_: ; 7890 : if (!comp) 00091 48 83 bd d8 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 00099 75 0b jne SHORT $LN7@stbi__pic_ ; 7891 : comp = &dummy; 0009b 48 8d 45 64 lea rax, QWORD PTR dummy$[rbp] 0009f 48 89 85 d8 01 00 00 mov QWORD PTR comp$[rbp], rax $LN7@stbi__pic_: ; 7892 : ; 7893 : if (!stbi__pic_is4(s, "\x53\x80\xF6\x34")) { 000a6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_04KBFEPHFH@S?$IA?v4@ 000ad 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 000b4 e8 00 00 00 00 call stbi__pic_is4 000b9 85 c0 test eax, eax 000bb 75 14 jne SHORT $LN8@stbi__pic_ ; 7894 : stbi__rewind(s); 000bd 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 000c4 e8 00 00 00 00 call stbi__rewind 000c9 90 npad 1 ; 7895 : return 0; 000ca 33 c0 xor eax, eax 000cc e9 c3 01 00 00 jmp $LN1@stbi__pic_ $LN8@stbi__pic_: ; 7896 : } ; 7897 : ; 7898 : stbi__skip(s, 88); 000d1 ba 58 00 00 00 mov edx, 88 ; 00000058H 000d6 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 000dd e8 00 00 00 00 call stbi__skip 000e2 90 npad 1 ; 7899 : ; 7900 : *x = stbi__get16be(s); 000e3 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 000ea e8 00 00 00 00 call stbi__get16be 000ef 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR x$[rbp] 000f6 89 01 mov DWORD PTR [rcx], eax ; 7901 : *y = stbi__get16be(s); 000f8 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 000ff e8 00 00 00 00 call stbi__get16be 00104 48 8b 8d d0 01 00 00 mov rcx, QWORD PTR y$[rbp] 0010b 89 01 mov DWORD PTR [rcx], eax ; 7902 : if (stbi__at_eof(s)) { 0010d 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00114 e8 00 00 00 00 call stbi__at_eof 00119 85 c0 test eax, eax 0011b 74 14 je SHORT $LN9@stbi__pic_ ; 7903 : stbi__rewind(s); 0011d 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00124 e8 00 00 00 00 call stbi__rewind 00129 90 npad 1 ; 7904 : return 0; 0012a 33 c0 xor eax, eax 0012c e9 63 01 00 00 jmp $LN1@stbi__pic_ $LN9@stbi__pic_: ; 7905 : } ; 7906 : if ((*x) != 0 && (1 << 28) / (*x) < (*y)) { 00131 48 8b 85 c8 01 00 00 mov rax, QWORD PTR x$[rbp] 00138 83 38 00 cmp DWORD PTR [rax], 0 0013b 74 2e je SHORT $LN10@stbi__pic_ 0013d b8 00 00 00 10 mov eax, 268435456 ; 10000000H 00142 99 cdq 00143 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR x$[rbp] 0014a f7 39 idiv DWORD PTR [rcx] 0014c 48 8b 8d d0 01 00 00 mov rcx, QWORD PTR y$[rbp] 00153 3b 01 cmp eax, DWORD PTR [rcx] 00155 7d 14 jge SHORT $LN10@stbi__pic_ ; 7907 : stbi__rewind(s); 00157 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 0015e e8 00 00 00 00 call stbi__rewind 00163 90 npad 1 ; 7908 : return 0; 00164 33 c0 xor eax, eax 00166 e9 29 01 00 00 jmp $LN1@stbi__pic_ $LN10@stbi__pic_: ; 7909 : } ; 7910 : ; 7911 : stbi__skip(s, 8); 0016b ba 08 00 00 00 mov edx, 8 00170 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00177 e8 00 00 00 00 call stbi__skip 0017c 90 npad 1 $LN4@stbi__pic_: ; 7912 : ; 7913 : do { ; 7914 : stbi__pic_packet *packet; ; 7915 : ; 7916 : if (num_packets == sizeof(packets) / sizeof(packets[0])) 0017d 48 63 45 24 movsxd rax, DWORD PTR num_packets$[rbp] 00181 48 83 f8 0a cmp rax, 10 00185 75 07 jne SHORT $LN11@stbi__pic_ ; 7917 : return 0; 00187 33 c0 xor eax, eax 00189 e9 06 01 00 00 jmp $LN1@stbi__pic_ $LN11@stbi__pic_: ; 7918 : ; 7919 : packet = &packets[num_packets++]; 0018e 48 63 45 24 movsxd rax, DWORD PTR num_packets$[rbp] 00192 48 6b c0 03 imul rax, rax, 3 00196 48 8d 84 05 88 00 00 00 lea rax, QWORD PTR packets$[rbp+rax] 0019e 48 89 85 c8 00 00 00 mov QWORD PTR packet$5[rbp], rax 001a5 8b 45 24 mov eax, DWORD PTR num_packets$[rbp] 001a8 ff c0 inc eax 001aa 89 45 24 mov DWORD PTR num_packets$[rbp], eax ; 7920 : chained = stbi__get8(s); 001ad 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 001b4 e8 00 00 00 00 call stbi__get8 001b9 0f b6 c0 movzx eax, al 001bc 89 45 44 mov DWORD PTR chained$[rbp], eax ; 7921 : packet->size = stbi__get8(s); 001bf 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 001c6 e8 00 00 00 00 call stbi__get8 001cb 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR packet$5[rbp] 001d2 88 01 mov BYTE PTR [rcx], al ; 7922 : packet->type = stbi__get8(s); 001d4 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 001db e8 00 00 00 00 call stbi__get8 001e0 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR packet$5[rbp] 001e7 88 41 01 mov BYTE PTR [rcx+1], al ; 7923 : packet->channel = stbi__get8(s); 001ea 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 001f1 e8 00 00 00 00 call stbi__get8 001f6 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR packet$5[rbp] 001fd 88 41 02 mov BYTE PTR [rcx+2], al ; 7924 : act_comp |= packet->channel; 00200 48 8b 85 c8 00 00 00 mov rax, QWORD PTR packet$5[rbp] 00207 0f b6 40 02 movzx eax, BYTE PTR [rax+2] 0020b 8b 4d 04 mov ecx, DWORD PTR act_comp$[rbp] 0020e 0b c8 or ecx, eax 00210 8b c1 mov eax, ecx 00212 89 45 04 mov DWORD PTR act_comp$[rbp], eax ; 7925 : ; 7926 : if (stbi__at_eof(s)) { 00215 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 0021c e8 00 00 00 00 call stbi__at_eof 00221 85 c0 test eax, eax 00223 74 11 je SHORT $LN12@stbi__pic_ ; 7927 : stbi__rewind(s); 00225 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 0022c e8 00 00 00 00 call stbi__rewind 00231 90 npad 1 ; 7928 : return 0; 00232 33 c0 xor eax, eax 00234 eb 5e jmp SHORT $LN1@stbi__pic_ $LN12@stbi__pic_: ; 7929 : } ; 7930 : if (packet->size != 8) { 00236 48 8b 85 c8 00 00 00 mov rax, QWORD PTR packet$5[rbp] 0023d 0f b6 00 movzx eax, BYTE PTR [rax] 00240 83 f8 08 cmp eax, 8 00243 74 11 je SHORT $LN13@stbi__pic_ ; 7931 : stbi__rewind(s); 00245 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR s$[rbp] 0024c e8 00 00 00 00 call stbi__rewind 00251 90 npad 1 ; 7932 : return 0; 00252 33 c0 xor eax, eax 00254 eb 3e jmp SHORT $LN1@stbi__pic_ $LN13@stbi__pic_: ; 7933 : } ; 7934 : } while (chained); 00256 83 7d 44 00 cmp DWORD PTR chained$[rbp], 0 0025a 0f 85 1d ff ff ff jne $LN4@stbi__pic_ ; 7935 : ; 7936 : *comp = (act_comp & 0x10 ? 4 : 3); 00260 8b 45 04 mov eax, DWORD PTR act_comp$[rbp] 00263 83 e0 10 and eax, 16 00266 85 c0 test eax, eax 00268 74 0c je SHORT $LN15@stbi__pic_ 0026a c7 85 94 01 00 00 04 00 00 00 mov DWORD PTR tv152[rbp], 4 00274 eb 0a jmp SHORT $LN16@stbi__pic_ $LN15@stbi__pic_: 00276 c7 85 94 01 00 00 03 00 00 00 mov DWORD PTR tv152[rbp], 3 $LN16@stbi__pic_: 00280 48 8b 85 d8 01 00 00 mov rax, QWORD PTR comp$[rbp] 00287 8b 8d 94 01 00 00 mov ecx, DWORD PTR tv152[rbp] 0028d 89 08 mov DWORD PTR [rax], ecx ; 7937 : ; 7938 : return 1; 0028f b8 01 00 00 00 mov eax, 1 $LN1@stbi__pic_: ; 7939 : } 00294 48 8b f8 mov rdi, rax 00297 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0029b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__pic_info$rtcFrameData 002a2 e8 00 00 00 00 call _RTC_CheckStackVars 002a7 48 8b c7 mov rax, rdi 002aa 48 8b 8d 98 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 002b1 48 33 cd xor rcx, rbp 002b4 e8 00 00 00 00 call __security_check_cookie 002b9 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] 002c0 5f pop rdi 002c1 5d pop rbp 002c2 c3 ret 0 stbi__pic_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pic_load _TEXT SEGMENT result$ = 8 i$ = 36 x$ = 68 y$ = 100 internal_comp$ = 132 tv76 = 344 tv81 = 344 tv88 = 344 tv130 = 344 tv143 = 344 __$ArrayPad$ = 352 s$ = 400 px$ = 408 py$ = 416 comp$ = 424 req_comp$ = 432 ri$ = 440 stbi__pic_load PROC ; COMDAT ; 6865 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 2e 00 00 00 mov ecx, 46 ; 0000002eH 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 c8 01 00 00 mov rcx, QWORD PTR [rsp+456] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 60 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 6866 : stbi_uc *result; ; 6867 : int i, x, y, internal_comp; ; 6868 : STBI_NOTUSED(ri); ; 6869 : ; 6870 : if (!comp) 00059 48 83 bd a8 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 00061 75 0e jne SHORT $LN5@stbi__pic_ ; 6871 : comp = &internal_comp; 00063 48 8d 85 84 00 00 00 lea rax, QWORD PTR internal_comp$[rbp] 0006a 48 89 85 a8 01 00 00 mov QWORD PTR comp$[rbp], rax $LN5@stbi__pic_: ; 6872 : ; 6873 : for (i = 0; i < 92; ++i) 00071 c7 45 24 00 00 00 00 mov DWORD PTR i$[rbp], 0 00078 eb 08 jmp SHORT $LN4@stbi__pic_ $LN2@stbi__pic_: 0007a 8b 45 24 mov eax, DWORD PTR i$[rbp] 0007d ff c0 inc eax 0007f 89 45 24 mov DWORD PTR i$[rbp], eax $LN4@stbi__pic_: 00082 83 7d 24 5c cmp DWORD PTR i$[rbp], 92 ; 0000005cH 00086 7d 0f jge SHORT $LN3@stbi__pic_ ; 6874 : stbi__get8(s); 00088 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR s$[rbp] 0008f e8 00 00 00 00 call stbi__get8 00094 90 npad 1 00095 eb e3 jmp SHORT $LN2@stbi__pic_ $LN3@stbi__pic_: ; 6875 : ; 6876 : x = stbi__get16be(s); 00097 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR s$[rbp] 0009e e8 00 00 00 00 call stbi__get16be 000a3 89 45 44 mov DWORD PTR x$[rbp], eax ; 6877 : y = stbi__get16be(s); 000a6 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR s$[rbp] 000ad e8 00 00 00 00 call stbi__get16be 000b2 89 45 64 mov DWORD PTR y$[rbp], eax ; 6878 : ; 6879 : if (y > STBI_MAX_DIMENSIONS) 000b5 81 7d 64 00 00 00 01 cmp DWORD PTR y$[rbp], 16777216 ; 01000000H 000bc 7e 34 jle SHORT $LN6@stbi__pic_ ; 6880 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 000be 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 000c5 e8 00 00 00 00 call stbi__err 000ca 85 c0 test eax, eax 000cc 74 0d je SHORT $LN14@stbi__pic_ 000ce 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 000d9 eb 0b jmp SHORT $LN15@stbi__pic_ $LN14@stbi__pic_: 000db 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN15@stbi__pic_: 000e6 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv76[rbp] 000ed e9 f8 01 00 00 jmp $LN1@stbi__pic_ $LN6@stbi__pic_: ; 6881 : if (x > STBI_MAX_DIMENSIONS) 000f2 81 7d 44 00 00 00 01 cmp DWORD PTR x$[rbp], 16777216 ; 01000000H 000f9 7e 34 jle SHORT $LN7@stbi__pic_ ; 6882 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 000fb 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00102 e8 00 00 00 00 call stbi__err 00107 85 c0 test eax, eax 00109 74 0d je SHORT $LN16@stbi__pic_ 0010b 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv81[rbp], 0 00116 eb 0b jmp SHORT $LN17@stbi__pic_ $LN16@stbi__pic_: 00118 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv81[rbp], 0 $LN17@stbi__pic_: 00123 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv81[rbp] 0012a e9 bb 01 00 00 jmp $LN1@stbi__pic_ $LN7@stbi__pic_: ; 6883 : ; 6884 : if (stbi__at_eof(s)) 0012f 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR s$[rbp] 00136 e8 00 00 00 00 call stbi__at_eof 0013b 85 c0 test eax, eax 0013d 74 34 je SHORT $LN8@stbi__pic_ ; 6885 : return stbi__errpuc("bad file", "file too short (pic header)"); 0013f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08GGMBIFE@bad?5file@ 00146 e8 00 00 00 00 call stbi__err 0014b 85 c0 test eax, eax 0014d 74 0d je SHORT $LN18@stbi__pic_ 0014f 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv88[rbp], 0 0015a eb 0b jmp SHORT $LN19@stbi__pic_ $LN18@stbi__pic_: 0015c 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv88[rbp], 0 $LN19@stbi__pic_: 00167 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv88[rbp] 0016e e9 77 01 00 00 jmp $LN1@stbi__pic_ $LN8@stbi__pic_: ; 6886 : if (!stbi__mad3sizes_valid(x, y, 4, 0)) 00173 45 33 c9 xor r9d, r9d 00176 41 b8 04 00 00 00 mov r8d, 4 0017c 8b 55 64 mov edx, DWORD PTR y$[rbp] 0017f 8b 4d 44 mov ecx, DWORD PTR x$[rbp] 00182 e8 00 00 00 00 call stbi__mad3sizes_valid 00187 85 c0 test eax, eax 00189 75 34 jne SHORT $LN9@stbi__pic_ ; 6887 : return stbi__errpuc("too large", "PIC image too large to decode"); 0018b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00192 e8 00 00 00 00 call stbi__err 00197 85 c0 test eax, eax 00199 74 0d je SHORT $LN20@stbi__pic_ 0019b 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 001a6 eb 0b jmp SHORT $LN21@stbi__pic_ $LN20@stbi__pic_: 001a8 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 $LN21@stbi__pic_: 001b3 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv130[rbp] 001ba e9 2b 01 00 00 jmp $LN1@stbi__pic_ $LN9@stbi__pic_: ; 6888 : ; 6889 : stbi__get32be(s); //skip `ratio' 001bf 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR s$[rbp] 001c6 e8 00 00 00 00 call stbi__get32be 001cb 90 npad 1 ; 6890 : stbi__get16be(s); //skip `fields' 001cc 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR s$[rbp] 001d3 e8 00 00 00 00 call stbi__get16be 001d8 90 npad 1 ; 6891 : stbi__get16be(s); //skip `pad' 001d9 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR s$[rbp] 001e0 e8 00 00 00 00 call stbi__get16be 001e5 90 npad 1 ; 6892 : ; 6893 : // intermediate buffer is RGBA ; 6894 : result = (stbi_uc *)stbi__malloc_mad3(x, y, 4, 0); 001e6 45 33 c9 xor r9d, r9d 001e9 41 b8 04 00 00 00 mov r8d, 4 001ef 8b 55 64 mov edx, DWORD PTR y$[rbp] 001f2 8b 4d 44 mov ecx, DWORD PTR x$[rbp] 001f5 e8 00 00 00 00 call stbi__malloc_mad3 001fa 48 89 45 08 mov QWORD PTR result$[rbp], rax ; 6895 : if (!result) 001fe 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0 00203 75 34 jne SHORT $LN10@stbi__pic_ ; 6896 : return stbi__errpuc("outofmem", "Out of memory"); 00205 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0020c e8 00 00 00 00 call stbi__err 00211 85 c0 test eax, eax 00213 74 0d je SHORT $LN22@stbi__pic_ 00215 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv143[rbp], 0 00220 eb 0b jmp SHORT $LN23@stbi__pic_ $LN22@stbi__pic_: 00222 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv143[rbp], 0 $LN23@stbi__pic_: 0022d 48 8b 85 58 01 00 00 mov rax, QWORD PTR tv143[rbp] 00234 e9 b1 00 00 00 jmp $LN1@stbi__pic_ $LN10@stbi__pic_: ; 6897 : memset(result, 0xff, x * y * 4); 00239 8b 45 44 mov eax, DWORD PTR x$[rbp] 0023c 0f af 45 64 imul eax, DWORD PTR y$[rbp] 00240 c1 e0 02 shl eax, 2 00243 48 98 cdqe 00245 4c 8b c0 mov r8, rax 00248 ba ff 00 00 00 mov edx, 255 ; 000000ffH 0024d 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] 00251 e8 00 00 00 00 call memset 00256 90 npad 1 ; 6898 : ; 6899 : if (!stbi__pic_load_core(s, x, y, comp, result)) { 00257 48 8b 45 08 mov rax, QWORD PTR result$[rbp] 0025b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax 00260 4c 8b 8d a8 01 00 00 mov r9, QWORD PTR comp$[rbp] 00267 44 8b 45 64 mov r8d, DWORD PTR y$[rbp] 0026b 8b 55 44 mov edx, DWORD PTR x$[rbp] 0026e 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR s$[rbp] 00275 e8 00 00 00 00 call stbi__pic_load_core 0027a 48 85 c0 test rax, rax 0027d 75 13 jne SHORT $LN11@stbi__pic_ ; 6900 : STBI_FREE(result); 0027f 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] 00283 ff 15 00 00 00 00 call QWORD PTR __imp_free 00289 90 npad 1 ; 6901 : result = 0; 0028a 48 c7 45 08 00 00 00 00 mov QWORD PTR result$[rbp], 0 $LN11@stbi__pic_: ; 6902 : } ; 6903 : *px = x; 00292 48 8b 85 98 01 00 00 mov rax, QWORD PTR px$[rbp] 00299 8b 4d 44 mov ecx, DWORD PTR x$[rbp] 0029c 89 08 mov DWORD PTR [rax], ecx ; 6904 : *py = y; 0029e 48 8b 85 a0 01 00 00 mov rax, QWORD PTR py$[rbp] 002a5 8b 4d 64 mov ecx, DWORD PTR y$[rbp] 002a8 89 08 mov DWORD PTR [rax], ecx ; 6905 : if (req_comp == 0) 002aa 83 bd b0 01 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 002b1 75 0f jne SHORT $LN12@stbi__pic_ ; 6906 : req_comp = *comp; 002b3 48 8b 85 a8 01 00 00 mov rax, QWORD PTR comp$[rbp] 002ba 8b 00 mov eax, DWORD PTR [rax] 002bc 89 85 b0 01 00 00 mov DWORD PTR req_comp$[rbp], eax $LN12@stbi__pic_: ; 6907 : result = stbi__convert_format(result, 4, req_comp, x, y); 002c2 8b 45 64 mov eax, DWORD PTR y$[rbp] 002c5 89 44 24 20 mov DWORD PTR [rsp+32], eax 002c9 44 8b 4d 44 mov r9d, DWORD PTR x$[rbp] 002cd 44 8b 85 b0 01 00 00 mov r8d, DWORD PTR req_comp$[rbp] 002d4 ba 04 00 00 00 mov edx, 4 002d9 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] 002dd e8 00 00 00 00 call stbi__convert_format 002e2 48 89 45 08 mov QWORD PTR result$[rbp], rax ; 6908 : ; 6909 : return result; 002e6 48 8b 45 08 mov rax, QWORD PTR result$[rbp] $LN1@stbi__pic_: ; 6910 : } 002ea 48 8b f8 mov rdi, rax 002ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 002f1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__pic_load$rtcFrameData 002f8 e8 00 00 00 00 call _RTC_CheckStackVars 002fd 48 8b c7 mov rax, rdi 00300 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00307 48 33 cd xor rcx, rbp 0030a e8 00 00 00 00 call __security_check_cookie 0030f 48 8d a5 78 01 00 00 lea rsp, QWORD PTR [rbp+376] 00316 5f pop rdi 00317 5d pop rbp 00318 c3 ret 0 stbi__pic_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__pic_test _TEXT SEGMENT r$ = 4 s$ = 256 stbi__pic_test PROC ; COMDAT ; 6913 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 6914 : int r = stbi__pic_test_core(s); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__pic_test_core 0002c 89 45 04 mov DWORD PTR r$[rbp], eax ; 6915 : stbi__rewind(s); 0002f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__rewind 0003b 90 npad 1 ; 6916 : return r; 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp] ; 6917 : } 0003f 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00046 5f pop rdi 00047 5d pop rbp 00048 c3 ret 0 stbi__pic_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__hdr_info _TEXT SEGMENT buffer$ = 16 token$ = 1064 valid$ = 1092 dummy$ = 1124 __$ArrayPad$ = 1720 s$ = 1760 x$ = 1768 y$ = 1776 comp$ = 1784 stbi__hdr_info PROC ; COMDAT ; 7737 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec e8 06 00 00 sub rsp, 1768 ; 000006e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 22 01 00 00 mov ecx, 290 ; 00000122H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 08 07 00 00 mov rcx, QWORD PTR [rsp+1800] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 b8 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 7738 : char buffer[STBI__HDR_BUFLEN]; ; 7739 : char *token; ; 7740 : int valid = 0; 00059 c7 85 44 04 00 00 00 00 00 00 mov DWORD PTR valid$[rbp], 0 ; 7741 : int dummy; ; 7742 : ; 7743 : if (!x) 00063 48 83 bd e8 06 00 00 00 cmp QWORD PTR x$[rbp], 0 0006b 75 0e jne SHORT $LN7@stbi__hdr_ ; 7744 : x = &dummy; 0006d 48 8d 85 64 04 00 00 lea rax, QWORD PTR dummy$[rbp] 00074 48 89 85 e8 06 00 00 mov QWORD PTR x$[rbp], rax $LN7@stbi__hdr_: ; 7745 : if (!y) 0007b 48 83 bd f0 06 00 00 00 cmp QWORD PTR y$[rbp], 0 00083 75 0e jne SHORT $LN8@stbi__hdr_ ; 7746 : y = &dummy; 00085 48 8d 85 64 04 00 00 lea rax, QWORD PTR dummy$[rbp] 0008c 48 89 85 f0 06 00 00 mov QWORD PTR y$[rbp], rax $LN8@stbi__hdr_: ; 7747 : if (!comp) 00093 48 83 bd f8 06 00 00 00 cmp QWORD PTR comp$[rbp], 0 0009b 75 0e jne SHORT $LN9@stbi__hdr_ ; 7748 : comp = &dummy; 0009d 48 8d 85 64 04 00 00 lea rax, QWORD PTR dummy$[rbp] 000a4 48 89 85 f8 06 00 00 mov QWORD PTR comp$[rbp], rax $LN9@stbi__hdr_: ; 7749 : ; 7750 : if (stbi__hdr_test(s) == 0) { 000ab 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR s$[rbp] 000b2 e8 00 00 00 00 call stbi__hdr_test 000b7 85 c0 test eax, eax 000b9 75 14 jne SHORT $LN10@stbi__hdr_ ; 7751 : stbi__rewind(s); 000bb 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR s$[rbp] 000c2 e8 00 00 00 00 call stbi__rewind 000c7 90 npad 1 ; 7752 : return 0; 000c8 33 c0 xor eax, eax 000ca e9 82 01 00 00 jmp $LN1@stbi__hdr_ $LN10@stbi__hdr_: $LN2@stbi__hdr_: ; 7753 : } ; 7754 : ; 7755 : for (;;) { ; 7756 : token = stbi__hdr_gettoken(s, buffer); 000cf 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] 000d3 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR s$[rbp] 000da e8 00 00 00 00 call stbi__hdr_gettoken 000df 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax ; 7757 : if (token[0] == 0) 000e6 b8 01 00 00 00 mov eax, 1 000eb 48 6b c0 00 imul rax, rax, 0 000ef 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 000f6 0f be 04 01 movsx eax, BYTE PTR [rcx+rax] 000fa 85 c0 test eax, eax 000fc 75 02 jne SHORT $LN11@stbi__hdr_ ; 7758 : break; 000fe eb 23 jmp SHORT $LN3@stbi__hdr_ $LN11@stbi__hdr_: ; 7759 : if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) 00100 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ 00107 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 0010e e8 00 00 00 00 call strcmp 00113 85 c0 test eax, eax 00115 75 0a jne SHORT $LN12@stbi__hdr_ ; 7760 : valid = 1; 00117 c7 85 44 04 00 00 01 00 00 00 mov DWORD PTR valid$[rbp], 1 $LN12@stbi__hdr_: ; 7761 : } 00121 eb ac jmp SHORT $LN2@stbi__hdr_ $LN3@stbi__hdr_: ; 7762 : ; 7763 : if (!valid) { 00123 83 bd 44 04 00 00 00 cmp DWORD PTR valid$[rbp], 0 0012a 75 14 jne SHORT $LN13@stbi__hdr_ ; 7764 : stbi__rewind(s); 0012c 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR s$[rbp] 00133 e8 00 00 00 00 call stbi__rewind 00138 90 npad 1 ; 7765 : return 0; 00139 33 c0 xor eax, eax 0013b e9 11 01 00 00 jmp $LN1@stbi__hdr_ $LN13@stbi__hdr_: ; 7766 : } ; 7767 : token = stbi__hdr_gettoken(s, buffer); 00140 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] 00144 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR s$[rbp] 0014b e8 00 00 00 00 call stbi__hdr_gettoken 00150 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax ; 7768 : if (strncmp(token, "-Y ", 3)) { 00157 41 b8 03 00 00 00 mov r8d, 3 0015d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_03HKAKGGJN@?9Y?5@ 00164 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 0016b ff 15 00 00 00 00 call QWORD PTR __imp_strncmp 00171 85 c0 test eax, eax 00173 74 14 je SHORT $LN14@stbi__hdr_ ; 7769 : stbi__rewind(s); 00175 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR s$[rbp] 0017c e8 00 00 00 00 call stbi__rewind 00181 90 npad 1 ; 7770 : return 0; 00182 33 c0 xor eax, eax 00184 e9 c8 00 00 00 jmp $LN1@stbi__hdr_ $LN14@stbi__hdr_: ; 7771 : } ; 7772 : token += 3; 00189 48 8b 85 28 04 00 00 mov rax, QWORD PTR token$[rbp] 00190 48 83 c0 03 add rax, 3 00194 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax ; 7773 : *y = (int)strtol(token, &token, 10); 0019b 41 b8 0a 00 00 00 mov r8d, 10 001a1 48 8d 95 28 04 00 00 lea rdx, QWORD PTR token$[rbp] 001a8 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 001af ff 15 00 00 00 00 call QWORD PTR __imp_strtol 001b5 48 8b 8d f0 06 00 00 mov rcx, QWORD PTR y$[rbp] 001bc 89 01 mov DWORD PTR [rcx], eax $LN5@stbi__hdr_: ; 7774 : while (*token == ' ') 001be 48 8b 85 28 04 00 00 mov rax, QWORD PTR token$[rbp] 001c5 0f be 00 movsx eax, BYTE PTR [rax] 001c8 83 f8 20 cmp eax, 32 ; 00000020H 001cb 75 13 jne SHORT $LN6@stbi__hdr_ ; 7775 : ++token; 001cd 48 8b 85 28 04 00 00 mov rax, QWORD PTR token$[rbp] 001d4 48 ff c0 inc rax 001d7 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax 001de eb de jmp SHORT $LN5@stbi__hdr_ $LN6@stbi__hdr_: ; 7776 : if (strncmp(token, "+X ", 3)) { 001e0 41 b8 03 00 00 00 mov r8d, 3 001e6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_03FOKDFDHG@?$CLX?5@ 001ed 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 001f4 ff 15 00 00 00 00 call QWORD PTR __imp_strncmp 001fa 85 c0 test eax, eax 001fc 74 11 je SHORT $LN15@stbi__hdr_ ; 7777 : stbi__rewind(s); 001fe 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR s$[rbp] 00205 e8 00 00 00 00 call stbi__rewind 0020a 90 npad 1 ; 7778 : return 0; 0020b 33 c0 xor eax, eax 0020d eb 42 jmp SHORT $LN1@stbi__hdr_ $LN15@stbi__hdr_: ; 7779 : } ; 7780 : token += 3; 0020f 48 8b 85 28 04 00 00 mov rax, QWORD PTR token$[rbp] 00216 48 83 c0 03 add rax, 3 0021a 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax ; 7781 : *x = (int)strtol(token, NULL, 10); 00221 41 b8 0a 00 00 00 mov r8d, 10 00227 33 d2 xor edx, edx 00229 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 00230 ff 15 00 00 00 00 call QWORD PTR __imp_strtol 00236 48 8b 8d e8 06 00 00 mov rcx, QWORD PTR x$[rbp] 0023d 89 01 mov DWORD PTR [rcx], eax ; 7782 : *comp = 3; 0023f 48 8b 85 f8 06 00 00 mov rax, QWORD PTR comp$[rbp] 00246 c7 00 03 00 00 00 mov DWORD PTR [rax], 3 ; 7783 : return 1; 0024c b8 01 00 00 00 mov eax, 1 $LN1@stbi__hdr_: ; 7784 : } 00251 48 8b f8 mov rdi, rax 00254 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00258 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__hdr_info$rtcFrameData 0025f e8 00 00 00 00 call _RTC_CheckStackVars 00264 48 8b c7 mov rax, rdi 00267 48 8b 8d b8 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0026e 48 33 cd xor rcx, rbp 00271 e8 00 00 00 00 call __security_check_cookie 00276 48 8d a5 c8 06 00 00 lea rsp, QWORD PTR [rbp+1736] 0027d 5f pop rdi 0027e 5d pop rbp 0027f c3 ret 0 stbi__hdr_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__hdr_load _TEXT SEGMENT buffer$ = 16 token$ = 1064 valid$ = 1092 width$ = 1124 height$ = 1156 scanline$ = 1192 hdr_data$ = 1224 len$ = 1252 count$ = 1284 value$ = 1316 i$ = 1348 j$ = 1380 k$ = 1412 c1$ = 1444 c2$ = 1476 z$ = 1508 headerToken$ = 1544 rgbe$7 = 1572 rgbe$8 = 1604 nleft$9 = 1636 tv309 = 2424 tv78 = 2424 tv94 = 2424 tv138 = 2424 tv155 = 2424 tv165 = 2424 tv170 = 2424 tv183 = 2424 tv194 = 2424 tv256 = 2424 tv267 = 2424 tv290 = 2424 __$ArrayPad$ = 2432 s$ = 2480 x$ = 2488 y$ = 2496 comp$ = 2504 req_comp$ = 2512 ri$ = 2520 stbi__hdr_load PROC ; COMDAT ; 7579 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec c8 09 00 00 sub rsp, 2504 ; 000009c8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 a6 01 00 00 mov ecx, 422 ; 000001a6H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 e8 09 00 00 mov rcx, QWORD PTR [rsp+2536] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 80 09 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 7580 : char buffer[STBI__HDR_BUFLEN]; ; 7581 : char *token; ; 7582 : int valid = 0; 00059 c7 85 44 04 00 00 00 00 00 00 mov DWORD PTR valid$[rbp], 0 ; 7583 : int width, height; ; 7584 : stbi_uc *scanline; ; 7585 : float *hdr_data; ; 7586 : int len; ; 7587 : unsigned char count, value; ; 7588 : int i, j, k, c1, c2, z; ; 7589 : const char *headerToken; ; 7590 : STBI_NOTUSED(ri); ; 7591 : ; 7592 : // Check identifier ; 7593 : headerToken = stbi__hdr_gettoken(s, buffer); 00063 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] 00067 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 0006e e8 00 00 00 00 call stbi__hdr_gettoken 00073 48 89 85 08 06 00 00 mov QWORD PTR headerToken$[rbp], rax ; 7594 : if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) 0007a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0L@NCPEAJBD@?$CD?$DPRADIANCE@ 00081 48 8b 8d 08 06 00 00 mov rcx, QWORD PTR headerToken$[rbp] 00088 e8 00 00 00 00 call strcmp 0008d 85 c0 test eax, eax 0008f 74 4b je SHORT $LN30@stbi__hdr_ 00091 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_06NDOKKIDJ@?$CD?$DPRGBE@ 00098 48 8b 8d 08 06 00 00 mov rcx, QWORD PTR headerToken$[rbp] 0009f e8 00 00 00 00 call strcmp 000a4 85 c0 test eax, eax 000a6 74 34 je SHORT $LN30@stbi__hdr_ ; 7595 : return stbi__errpf("not HDR", "Corrupt HDR image"); 000a8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07NCIOKENI@not?5HDR@ 000af e8 00 00 00 00 call stbi__err 000b4 85 c0 test eax, eax 000b6 74 0d je SHORT $LN58@stbi__hdr_ 000b8 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv78[rbp], 0 000c3 eb 0b jmp SHORT $LN59@stbi__hdr_ $LN58@stbi__hdr_: 000c5 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv78[rbp], 0 $LN59@stbi__hdr_: 000d0 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv78[rbp] 000d7 e9 53 09 00 00 jmp $LN1@stbi__hdr_ $LN30@stbi__hdr_: $LN2@stbi__hdr_: ; 7596 : ; 7597 : // Parse header ; 7598 : for (;;) { ; 7599 : token = stbi__hdr_gettoken(s, buffer); 000dc 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] 000e0 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 000e7 e8 00 00 00 00 call stbi__hdr_gettoken 000ec 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax ; 7600 : if (token[0] == 0) 000f3 b8 01 00 00 00 mov eax, 1 000f8 48 6b c0 00 imul rax, rax, 0 000fc 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 00103 0f be 04 01 movsx eax, BYTE PTR [rcx+rax] 00107 85 c0 test eax, eax 00109 75 02 jne SHORT $LN31@stbi__hdr_ ; 7601 : break; 0010b eb 23 jmp SHORT $LN3@stbi__hdr_ $LN31@stbi__hdr_: ; 7602 : if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) 0010d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BH@JFGBLLKC@FORMAT?$DN32?9bit_rle_rgbe@ 00114 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 0011b e8 00 00 00 00 call strcmp 00120 85 c0 test eax, eax 00122 75 0a jne SHORT $LN32@stbi__hdr_ ; 7603 : valid = 1; 00124 c7 85 44 04 00 00 01 00 00 00 mov DWORD PTR valid$[rbp], 1 $LN32@stbi__hdr_: ; 7604 : } 0012e eb ac jmp SHORT $LN2@stbi__hdr_ $LN3@stbi__hdr_: ; 7605 : ; 7606 : if (!valid) 00130 83 bd 44 04 00 00 00 cmp DWORD PTR valid$[rbp], 0 00137 75 34 jne SHORT $LN33@stbi__hdr_ ; 7607 : return stbi__errpf("unsupported format", "Unsupported HDR format"); 00139 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@NKJFFLKL@unsupported?5format@ 00140 e8 00 00 00 00 call stbi__err 00145 85 c0 test eax, eax 00147 74 0d je SHORT $LN60@stbi__hdr_ 00149 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv94[rbp], 0 00154 eb 0b jmp SHORT $LN61@stbi__hdr_ $LN60@stbi__hdr_: 00156 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv94[rbp], 0 $LN61@stbi__hdr_: 00161 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv94[rbp] 00168 e9 c2 08 00 00 jmp $LN1@stbi__hdr_ $LN33@stbi__hdr_: ; 7608 : ; 7609 : // Parse width and height ; 7610 : // can't use sscanf() if we're not using stdio! ; 7611 : token = stbi__hdr_gettoken(s, buffer); 0016d 48 8d 55 10 lea rdx, QWORD PTR buffer$[rbp] 00171 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 00178 e8 00 00 00 00 call stbi__hdr_gettoken 0017d 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax ; 7612 : if (strncmp(token, "-Y ", 3)) 00184 41 b8 03 00 00 00 mov r8d, 3 0018a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_03HKAKGGJN@?9Y?5@ 00191 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 00198 ff 15 00 00 00 00 call QWORD PTR __imp_strncmp 0019e 85 c0 test eax, eax 001a0 74 34 je SHORT $LN34@stbi__hdr_ ; 7613 : return stbi__errpf("unsupported data layout", "Unsupported HDR format"); 001a2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ 001a9 e8 00 00 00 00 call stbi__err 001ae 85 c0 test eax, eax 001b0 74 0d je SHORT $LN62@stbi__hdr_ 001b2 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv138[rbp], 0 001bd eb 0b jmp SHORT $LN63@stbi__hdr_ $LN62@stbi__hdr_: 001bf 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv138[rbp], 0 $LN63@stbi__hdr_: 001ca 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv138[rbp] 001d1 e9 59 08 00 00 jmp $LN1@stbi__hdr_ $LN34@stbi__hdr_: ; 7614 : token += 3; 001d6 48 8b 85 28 04 00 00 mov rax, QWORD PTR token$[rbp] 001dd 48 83 c0 03 add rax, 3 001e1 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax ; 7615 : height = (int)strtol(token, &token, 10); 001e8 41 b8 0a 00 00 00 mov r8d, 10 001ee 48 8d 95 28 04 00 00 lea rdx, QWORD PTR token$[rbp] 001f5 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 001fc ff 15 00 00 00 00 call QWORD PTR __imp_strtol 00202 89 85 84 04 00 00 mov DWORD PTR height$[rbp], eax $LN5@stbi__hdr_: ; 7616 : while (*token == ' ') 00208 48 8b 85 28 04 00 00 mov rax, QWORD PTR token$[rbp] 0020f 0f be 00 movsx eax, BYTE PTR [rax] 00212 83 f8 20 cmp eax, 32 ; 00000020H 00215 75 13 jne SHORT $LN6@stbi__hdr_ ; 7617 : ++token; 00217 48 8b 85 28 04 00 00 mov rax, QWORD PTR token$[rbp] 0021e 48 ff c0 inc rax 00221 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax 00228 eb de jmp SHORT $LN5@stbi__hdr_ $LN6@stbi__hdr_: ; 7618 : if (strncmp(token, "+X ", 3)) 0022a 41 b8 03 00 00 00 mov r8d, 3 00230 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_03FOKDFDHG@?$CLX?5@ 00237 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 0023e ff 15 00 00 00 00 call QWORD PTR __imp_strncmp 00244 85 c0 test eax, eax 00246 74 34 je SHORT $LN35@stbi__hdr_ ; 7619 : return stbi__errpf("unsupported data layout", "Unsupported HDR format"); 00248 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BI@DCNDPIOH@unsupported?5data?5layout@ 0024f e8 00 00 00 00 call stbi__err 00254 85 c0 test eax, eax 00256 74 0d je SHORT $LN64@stbi__hdr_ 00258 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv155[rbp], 0 00263 eb 0b jmp SHORT $LN65@stbi__hdr_ $LN64@stbi__hdr_: 00265 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv155[rbp], 0 $LN65@stbi__hdr_: 00270 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv155[rbp] 00277 e9 b3 07 00 00 jmp $LN1@stbi__hdr_ $LN35@stbi__hdr_: ; 7620 : token += 3; 0027c 48 8b 85 28 04 00 00 mov rax, QWORD PTR token$[rbp] 00283 48 83 c0 03 add rax, 3 00287 48 89 85 28 04 00 00 mov QWORD PTR token$[rbp], rax ; 7621 : width = (int)strtol(token, NULL, 10); 0028e 41 b8 0a 00 00 00 mov r8d, 10 00294 33 d2 xor edx, edx 00296 48 8b 8d 28 04 00 00 mov rcx, QWORD PTR token$[rbp] 0029d ff 15 00 00 00 00 call QWORD PTR __imp_strtol 002a3 89 85 64 04 00 00 mov DWORD PTR width$[rbp], eax ; 7622 : ; 7623 : if (height > STBI_MAX_DIMENSIONS) 002a9 81 bd 84 04 00 00 00 00 00 01 cmp DWORD PTR height$[rbp], 16777216 ; 01000000H 002b3 7e 34 jle SHORT $LN36@stbi__hdr_ ; 7624 : return stbi__errpf("too large", "Very large image (corrupt?)"); 002b5 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 002bc e8 00 00 00 00 call stbi__err 002c1 85 c0 test eax, eax 002c3 74 0d je SHORT $LN66@stbi__hdr_ 002c5 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv165[rbp], 0 002d0 eb 0b jmp SHORT $LN67@stbi__hdr_ $LN66@stbi__hdr_: 002d2 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv165[rbp], 0 $LN67@stbi__hdr_: 002dd 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv165[rbp] 002e4 e9 46 07 00 00 jmp $LN1@stbi__hdr_ $LN36@stbi__hdr_: ; 7625 : if (width > STBI_MAX_DIMENSIONS) 002e9 81 bd 64 04 00 00 00 00 00 01 cmp DWORD PTR width$[rbp], 16777216 ; 01000000H 002f3 7e 34 jle SHORT $LN37@stbi__hdr_ ; 7626 : return stbi__errpf("too large", "Very large image (corrupt?)"); 002f5 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 002fc e8 00 00 00 00 call stbi__err 00301 85 c0 test eax, eax 00303 74 0d je SHORT $LN68@stbi__hdr_ 00305 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv170[rbp], 0 00310 eb 0b jmp SHORT $LN69@stbi__hdr_ $LN68@stbi__hdr_: 00312 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv170[rbp], 0 $LN69@stbi__hdr_: 0031d 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv170[rbp] 00324 e9 06 07 00 00 jmp $LN1@stbi__hdr_ $LN37@stbi__hdr_: ; 7627 : ; 7628 : *x = width; 00329 48 8b 85 b8 09 00 00 mov rax, QWORD PTR x$[rbp] 00330 8b 8d 64 04 00 00 mov ecx, DWORD PTR width$[rbp] 00336 89 08 mov DWORD PTR [rax], ecx ; 7629 : *y = height; 00338 48 8b 85 c0 09 00 00 mov rax, QWORD PTR y$[rbp] 0033f 8b 8d 84 04 00 00 mov ecx, DWORD PTR height$[rbp] 00345 89 08 mov DWORD PTR [rax], ecx ; 7630 : ; 7631 : if (comp) 00347 48 83 bd c8 09 00 00 00 cmp QWORD PTR comp$[rbp], 0 0034f 74 0d je SHORT $LN38@stbi__hdr_ ; 7632 : *comp = 3; 00351 48 8b 85 c8 09 00 00 mov rax, QWORD PTR comp$[rbp] 00358 c7 00 03 00 00 00 mov DWORD PTR [rax], 3 $LN38@stbi__hdr_: ; 7633 : if (req_comp == 0) 0035e 83 bd d0 09 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 00365 75 0a jne SHORT $LN39@stbi__hdr_ ; 7634 : req_comp = 3; 00367 c7 85 d0 09 00 00 03 00 00 00 mov DWORD PTR req_comp$[rbp], 3 $LN39@stbi__hdr_: ; 7635 : ; 7636 : if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) 00371 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 00379 41 b9 04 00 00 00 mov r9d, 4 0037f 44 8b 85 d0 09 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00386 8b 95 84 04 00 00 mov edx, DWORD PTR height$[rbp] 0038c 8b 8d 64 04 00 00 mov ecx, DWORD PTR width$[rbp] 00392 e8 00 00 00 00 call stbi__mad4sizes_valid 00397 85 c0 test eax, eax 00399 75 34 jne SHORT $LN40@stbi__hdr_ ; 7637 : return stbi__errpf("too large", "HDR image is too large"); 0039b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 003a2 e8 00 00 00 00 call stbi__err 003a7 85 c0 test eax, eax 003a9 74 0d je SHORT $LN70@stbi__hdr_ 003ab 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv183[rbp], 0 003b6 eb 0b jmp SHORT $LN71@stbi__hdr_ $LN70@stbi__hdr_: 003b8 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv183[rbp], 0 $LN71@stbi__hdr_: 003c3 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv183[rbp] 003ca e9 60 06 00 00 jmp $LN1@stbi__hdr_ $LN40@stbi__hdr_: ; 7638 : ; 7639 : // Read data ; 7640 : hdr_data = (float *)stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); 003cf c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 003d7 41 b9 04 00 00 00 mov r9d, 4 003dd 44 8b 85 d0 09 00 00 mov r8d, DWORD PTR req_comp$[rbp] 003e4 8b 95 84 04 00 00 mov edx, DWORD PTR height$[rbp] 003ea 8b 8d 64 04 00 00 mov ecx, DWORD PTR width$[rbp] 003f0 e8 00 00 00 00 call stbi__malloc_mad4 003f5 48 89 85 c8 04 00 00 mov QWORD PTR hdr_data$[rbp], rax ; 7641 : if (!hdr_data) 003fc 48 83 bd c8 04 00 00 00 cmp QWORD PTR hdr_data$[rbp], 0 00404 75 34 jne SHORT $LN41@stbi__hdr_ ; 7642 : return stbi__errpf("outofmem", "Out of memory"); 00406 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0040d e8 00 00 00 00 call stbi__err 00412 85 c0 test eax, eax 00414 74 0d je SHORT $LN72@stbi__hdr_ 00416 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv194[rbp], 0 00421 eb 0b jmp SHORT $LN73@stbi__hdr_ $LN72@stbi__hdr_: 00423 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv194[rbp], 0 $LN73@stbi__hdr_: 0042e 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv194[rbp] 00435 e9 f5 05 00 00 jmp $LN1@stbi__hdr_ $LN41@stbi__hdr_: ; 7643 : ; 7644 : // Load image data ; 7645 : // image data is stored as some number of sca ; 7646 : if (width < 8 || width >= 32768) { 0043a 83 bd 64 04 00 00 08 cmp DWORD PTR width$[rbp], 8 00441 7c 10 jl SHORT $LN44@stbi__hdr_ 00443 81 bd 64 04 00 00 00 80 00 00 cmp DWORD PTR width$[rbp], 32768 ; 00008000H 0044d 0f 8c c9 00 00 00 jl $LN42@stbi__hdr_ $LN44@stbi__hdr_: ; 7647 : // Read flat data ; 7648 : for (j = 0; j < height; ++j) { 00453 c7 85 64 05 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 0045d eb 0e jmp SHORT $LN9@stbi__hdr_ $LN7@stbi__hdr_: 0045f 8b 85 64 05 00 00 mov eax, DWORD PTR j$[rbp] 00465 ff c0 inc eax 00467 89 85 64 05 00 00 mov DWORD PTR j$[rbp], eax $LN9@stbi__hdr_: 0046d 8b 85 84 04 00 00 mov eax, DWORD PTR height$[rbp] 00473 39 85 64 05 00 00 cmp DWORD PTR j$[rbp], eax 00479 0f 8d 98 00 00 00 jge $LN8@stbi__hdr_ ; 7649 : for (i = 0; i < width; ++i) { 0047f c7 85 44 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 00489 eb 0e jmp SHORT $LN12@stbi__hdr_ $LN10@stbi__hdr_: 0048b 8b 85 44 05 00 00 mov eax, DWORD PTR i$[rbp] 00491 ff c0 inc eax 00493 89 85 44 05 00 00 mov DWORD PTR i$[rbp], eax $LN12@stbi__hdr_: 00499 8b 85 64 04 00 00 mov eax, DWORD PTR width$[rbp] 0049f 39 85 44 05 00 00 cmp DWORD PTR i$[rbp], eax 004a5 7d 6b jge SHORT $LN11@stbi__hdr_ $main_decode_loop$82: ; 7650 : stbi_uc rgbe[4]; ; 7651 : main_decode_loop: ; 7652 : stbi__getn(s, rgbe, 4); 004a7 41 b8 04 00 00 00 mov r8d, 4 004ad 48 8d 95 24 06 00 00 lea rdx, QWORD PTR rgbe$7[rbp] 004b4 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 004bb e8 00 00 00 00 call stbi__getn 004c0 90 npad 1 ; 7653 : stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, 004c1 8b 85 64 05 00 00 mov eax, DWORD PTR j$[rbp] 004c7 0f af 85 64 04 00 00 imul eax, DWORD PTR width$[rbp] 004ce 0f af 85 d0 09 00 00 imul eax, DWORD PTR req_comp$[rbp] 004d5 48 98 cdqe 004d7 48 8b 8d c8 04 00 00 mov rcx, QWORD PTR hdr_data$[rbp] 004de 48 8d 04 81 lea rax, QWORD PTR [rcx+rax*4] 004e2 8b 8d 44 05 00 00 mov ecx, DWORD PTR i$[rbp] 004e8 0f af 8d d0 09 00 00 imul ecx, DWORD PTR req_comp$[rbp] 004ef 48 63 c9 movsxd rcx, ecx 004f2 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] 004f6 44 8b 85 d0 09 00 00 mov r8d, DWORD PTR req_comp$[rbp] 004fd 48 8d 95 24 06 00 00 lea rdx, QWORD PTR rgbe$7[rbp] 00504 48 8b c8 mov rcx, rax 00507 e8 00 00 00 00 call stbi__hdr_convert 0050c 90 npad 1 ; 7654 : rgbe, req_comp); ; 7655 : } 0050d e9 79 ff ff ff jmp $LN10@stbi__hdr_ $LN11@stbi__hdr_: ; 7656 : } 00512 e9 48 ff ff ff jmp $LN7@stbi__hdr_ $LN8@stbi__hdr_: ; 7657 : } else { 00517 e9 0c 05 00 00 jmp $LN43@stbi__hdr_ $LN42@stbi__hdr_: ; 7658 : // Read RLE-encoded data ; 7659 : scanline = NULL; 0051c 48 c7 85 a8 04 00 00 00 00 00 00 mov QWORD PTR scanline$[rbp], 0 ; 7660 : ; 7661 : for (j = 0; j < height; ++j) { 00527 c7 85 64 05 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 00531 eb 0e jmp SHORT $LN15@stbi__hdr_ $LN13@stbi__hdr_: 00533 8b 85 64 05 00 00 mov eax, DWORD PTR j$[rbp] 00539 ff c0 inc eax 0053b 89 85 64 05 00 00 mov DWORD PTR j$[rbp], eax $LN15@stbi__hdr_: 00541 8b 85 84 04 00 00 mov eax, DWORD PTR height$[rbp] 00547 39 85 64 05 00 00 cmp DWORD PTR j$[rbp], eax 0054d 0f 8d bd 04 00 00 jge $LN14@stbi__hdr_ ; 7662 : c1 = stbi__get8(s); 00553 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 0055a e8 00 00 00 00 call stbi__get8 0055f 0f b6 c0 movzx eax, al 00562 89 85 a4 05 00 00 mov DWORD PTR c1$[rbp], eax ; 7663 : c2 = stbi__get8(s); 00568 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 0056f e8 00 00 00 00 call stbi__get8 00574 0f b6 c0 movzx eax, al 00577 89 85 c4 05 00 00 mov DWORD PTR c2$[rbp], eax ; 7664 : len = stbi__get8(s); 0057d 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 00584 e8 00 00 00 00 call stbi__get8 00589 0f b6 c0 movzx eax, al 0058c 89 85 e4 04 00 00 mov DWORD PTR len$[rbp], eax ; 7665 : if (c1 != 2 || c2 != 2 || (len & 0x80)) { 00592 83 bd a4 05 00 00 02 cmp DWORD PTR c1$[rbp], 2 00599 75 1c jne SHORT $LN46@stbi__hdr_ 0059b 83 bd c4 05 00 00 02 cmp DWORD PTR c2$[rbp], 2 005a2 75 13 jne SHORT $LN46@stbi__hdr_ 005a4 8b 85 e4 04 00 00 mov eax, DWORD PTR len$[rbp] 005aa 25 80 00 00 00 and eax, 128 ; 00000080H 005af 85 c0 test eax, eax 005b1 0f 84 a3 00 00 00 je $LN45@stbi__hdr_ $LN46@stbi__hdr_: ; 7666 : // not run-length encoded, so we have to actually use THIS data as a decoded ; 7667 : // pixel (note this can't be a valid pixel--one of RGB must be >= 128) ; 7668 : stbi_uc rgbe[4]; ; 7669 : rgbe[0] = (stbi_uc)c1; 005b7 b8 01 00 00 00 mov eax, 1 005bc 48 6b c0 00 imul rax, rax, 0 005c0 0f b6 8d a4 05 00 00 movzx ecx, BYTE PTR c1$[rbp] 005c7 88 8c 05 44 06 00 00 mov BYTE PTR rgbe$8[rbp+rax], cl ; 7670 : rgbe[1] = (stbi_uc)c2; 005ce b8 01 00 00 00 mov eax, 1 005d3 48 6b c0 01 imul rax, rax, 1 005d7 0f b6 8d c4 05 00 00 movzx ecx, BYTE PTR c2$[rbp] 005de 88 8c 05 44 06 00 00 mov BYTE PTR rgbe$8[rbp+rax], cl ; 7671 : rgbe[2] = (stbi_uc)len; 005e5 b8 01 00 00 00 mov eax, 1 005ea 48 6b c0 02 imul rax, rax, 2 005ee 0f b6 8d e4 04 00 00 movzx ecx, BYTE PTR len$[rbp] 005f5 88 8c 05 44 06 00 00 mov BYTE PTR rgbe$8[rbp+rax], cl ; 7672 : rgbe[3] = (stbi_uc)stbi__get8(s); 005fc 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 00603 e8 00 00 00 00 call stbi__get8 00608 b9 01 00 00 00 mov ecx, 1 0060d 48 6b c9 03 imul rcx, rcx, 3 00611 88 84 0d 44 06 00 00 mov BYTE PTR rgbe$8[rbp+rcx], al ; 7673 : stbi__hdr_convert(hdr_data, rgbe, req_comp); 00618 44 8b 85 d0 09 00 00 mov r8d, DWORD PTR req_comp$[rbp] 0061f 48 8d 95 44 06 00 00 lea rdx, QWORD PTR rgbe$8[rbp] 00626 48 8b 8d c8 04 00 00 mov rcx, QWORD PTR hdr_data$[rbp] 0062d e8 00 00 00 00 call stbi__hdr_convert 00632 90 npad 1 ; 7674 : i = 1; 00633 c7 85 44 05 00 00 01 00 00 00 mov DWORD PTR i$[rbp], 1 ; 7675 : j = 0; 0063d c7 85 64 05 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 ; 7676 : STBI_FREE(scanline); 00647 48 8b 8d a8 04 00 00 mov rcx, QWORD PTR scanline$[rbp] 0064e ff 15 00 00 00 00 call QWORD PTR __imp_free 00654 90 npad 1 ; 7677 : goto main_decode_loop; // yes, this makes no sense 00655 e9 4d fe ff ff jmp $main_decode_loop$82 $LN45@stbi__hdr_: ; 7678 : } ; 7679 : len <<= 8; 0065a 8b 85 e4 04 00 00 mov eax, DWORD PTR len$[rbp] 00660 c1 e0 08 shl eax, 8 00663 89 85 e4 04 00 00 mov DWORD PTR len$[rbp], eax ; 7680 : len |= stbi__get8(s); 00669 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 00670 e8 00 00 00 00 call stbi__get8 00675 0f b6 c0 movzx eax, al 00678 8b 8d e4 04 00 00 mov ecx, DWORD PTR len$[rbp] 0067e 0b c8 or ecx, eax 00680 8b c1 mov eax, ecx 00682 89 85 e4 04 00 00 mov DWORD PTR len$[rbp], eax ; 7681 : if (len != width) { 00688 8b 85 64 04 00 00 mov eax, DWORD PTR width$[rbp] 0068e 39 85 e4 04 00 00 cmp DWORD PTR len$[rbp], eax 00694 74 50 je SHORT $LN47@stbi__hdr_ ; 7682 : STBI_FREE(hdr_data); 00696 48 8b 8d c8 04 00 00 mov rcx, QWORD PTR hdr_data$[rbp] 0069d ff 15 00 00 00 00 call QWORD PTR __imp_free 006a3 90 npad 1 ; 7683 : STBI_FREE(scanline); 006a4 48 8b 8d a8 04 00 00 mov rcx, QWORD PTR scanline$[rbp] 006ab ff 15 00 00 00 00 call QWORD PTR __imp_free 006b1 90 npad 1 ; 7684 : return stbi__errpf("invalid decoded scanline length", 006b2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0CA@JBEOCDFN@invalid?5decoded?5scanline?5length@ 006b9 e8 00 00 00 00 call stbi__err 006be 85 c0 test eax, eax 006c0 74 0d je SHORT $LN74@stbi__hdr_ 006c2 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv256[rbp], 0 006cd eb 0b jmp SHORT $LN75@stbi__hdr_ $LN74@stbi__hdr_: 006cf 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv256[rbp], 0 $LN75@stbi__hdr_: 006da 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv256[rbp] 006e1 e9 49 03 00 00 jmp $LN1@stbi__hdr_ $LN47@stbi__hdr_: ; 7685 : "corrupt HDR"); ; 7686 : } ; 7687 : if (scanline == NULL) { 006e6 48 83 bd a8 04 00 00 00 cmp QWORD PTR scanline$[rbp], 0 006ee 75 66 jne SHORT $LN48@stbi__hdr_ ; 7688 : scanline = (stbi_uc *)stbi__malloc_mad2(width, 4, 0); 006f0 45 33 c0 xor r8d, r8d 006f3 ba 04 00 00 00 mov edx, 4 006f8 8b 8d 64 04 00 00 mov ecx, DWORD PTR width$[rbp] 006fe e8 00 00 00 00 call stbi__malloc_mad2 00703 48 89 85 a8 04 00 00 mov QWORD PTR scanline$[rbp], rax ; 7689 : if (!scanline) { 0070a 48 83 bd a8 04 00 00 00 cmp QWORD PTR scanline$[rbp], 0 00712 75 42 jne SHORT $LN49@stbi__hdr_ ; 7690 : STBI_FREE(hdr_data); 00714 48 8b 8d c8 04 00 00 mov rcx, QWORD PTR hdr_data$[rbp] 0071b ff 15 00 00 00 00 call QWORD PTR __imp_free 00721 90 npad 1 ; 7691 : return stbi__errpf("outofmem", "Out of memory"); 00722 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00729 e8 00 00 00 00 call stbi__err 0072e 85 c0 test eax, eax 00730 74 0d je SHORT $LN76@stbi__hdr_ 00732 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv267[rbp], 0 0073d eb 0b jmp SHORT $LN77@stbi__hdr_ $LN76@stbi__hdr_: 0073f 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv267[rbp], 0 $LN77@stbi__hdr_: 0074a 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv267[rbp] 00751 e9 d9 02 00 00 jmp $LN1@stbi__hdr_ $LN49@stbi__hdr_: $LN48@stbi__hdr_: ; 7692 : } ; 7693 : } ; 7694 : ; 7695 : for (k = 0; k < 4; ++k) { 00756 c7 85 84 05 00 00 00 00 00 00 mov DWORD PTR k$[rbp], 0 00760 eb 0e jmp SHORT $LN18@stbi__hdr_ $LN16@stbi__hdr_: 00762 8b 85 84 05 00 00 mov eax, DWORD PTR k$[rbp] 00768 ff c0 inc eax 0076a 89 85 84 05 00 00 mov DWORD PTR k$[rbp], eax $LN18@stbi__hdr_: 00770 83 bd 84 05 00 00 04 cmp DWORD PTR k$[rbp], 4 00777 0f 8d 14 02 00 00 jge $LN17@stbi__hdr_ ; 7696 : int nleft; ; 7697 : i = 0; 0077d c7 85 44 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 $LN19@stbi__hdr_: ; 7698 : while ((nleft = width - i) > 0) { 00787 8b 85 44 05 00 00 mov eax, DWORD PTR i$[rbp] 0078d 8b 8d 64 04 00 00 mov ecx, DWORD PTR width$[rbp] 00793 2b c8 sub ecx, eax 00795 8b c1 mov eax, ecx 00797 89 85 64 06 00 00 mov DWORD PTR nleft$9[rbp], eax 0079d 83 bd 64 06 00 00 00 cmp DWORD PTR nleft$9[rbp], 0 007a4 0f 8e e2 01 00 00 jle $LN20@stbi__hdr_ ; 7699 : count = stbi__get8(s); 007aa 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 007b1 e8 00 00 00 00 call stbi__get8 007b6 88 85 04 05 00 00 mov BYTE PTR count$[rbp], al ; 7700 : if (count > 128) { 007bc 0f b6 85 04 05 00 00 movzx eax, BYTE PTR count$[rbp] 007c3 3d 80 00 00 00 cmp eax, 128 ; 00000080H 007c8 0f 8e ee 00 00 00 jle $LN50@stbi__hdr_ ; 7701 : // Run ; 7702 : value = stbi__get8(s); 007ce 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 007d5 e8 00 00 00 00 call stbi__get8 007da 88 85 24 05 00 00 mov BYTE PTR value$[rbp], al ; 7703 : count -= 128; 007e0 0f b6 85 04 05 00 00 movzx eax, BYTE PTR count$[rbp] 007e7 2d 80 00 00 00 sub eax, 128 ; 00000080H 007ec 88 85 04 05 00 00 mov BYTE PTR count$[rbp], al ; 7704 : if ((count == 0) || (count > nleft)) { 007f2 0f b6 85 04 05 00 00 movzx eax, BYTE PTR count$[rbp] 007f9 85 c0 test eax, eax 007fb 74 0f je SHORT $LN53@stbi__hdr_ 007fd 0f b6 85 04 05 00 00 movzx eax, BYTE PTR count$[rbp] 00804 3b 85 64 06 00 00 cmp eax, DWORD PTR nleft$9[rbp] 0080a 7e 50 jle SHORT $LN52@stbi__hdr_ $LN53@stbi__hdr_: ; 7705 : STBI_FREE(hdr_data); 0080c 48 8b 8d c8 04 00 00 mov rcx, QWORD PTR hdr_data$[rbp] 00813 ff 15 00 00 00 00 call QWORD PTR __imp_free 00819 90 npad 1 ; 7706 : STBI_FREE(scanline); 0081a 48 8b 8d a8 04 00 00 mov rcx, QWORD PTR scanline$[rbp] 00821 ff 15 00 00 00 00 call QWORD PTR __imp_free 00827 90 npad 1 ; 7707 : return stbi__errpf("corrupt", 00828 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07DPPMCAKL@corrupt@ 0082f e8 00 00 00 00 call stbi__err 00834 85 c0 test eax, eax 00836 74 0d je SHORT $LN78@stbi__hdr_ 00838 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv290[rbp], 0 00843 eb 0b jmp SHORT $LN79@stbi__hdr_ $LN78@stbi__hdr_: 00845 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv290[rbp], 0 $LN79@stbi__hdr_: 00850 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv290[rbp] 00857 e9 d3 01 00 00 jmp $LN1@stbi__hdr_ $LN52@stbi__hdr_: ; 7708 : "bad RLE data in HDR"); ; 7709 : } ; 7710 : for (z = 0; z < count; ++z) 0085c c7 85 e4 05 00 00 00 00 00 00 mov DWORD PTR z$[rbp], 0 00866 eb 0e jmp SHORT $LN23@stbi__hdr_ $LN21@stbi__hdr_: 00868 8b 85 e4 05 00 00 mov eax, DWORD PTR z$[rbp] 0086e ff c0 inc eax 00870 89 85 e4 05 00 00 mov DWORD PTR z$[rbp], eax $LN23@stbi__hdr_: 00876 0f b6 85 04 05 00 00 movzx eax, BYTE PTR count$[rbp] 0087d 39 85 e4 05 00 00 cmp DWORD PTR z$[rbp], eax 00883 7d 32 jge SHORT $LN22@stbi__hdr_ ; 7711 : scanline[i++ * 4 + k] = value; 00885 8b 85 84 05 00 00 mov eax, DWORD PTR k$[rbp] 0088b 8b 8d 44 05 00 00 mov ecx, DWORD PTR i$[rbp] 00891 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] 00894 48 98 cdqe 00896 48 8b 8d a8 04 00 00 mov rcx, QWORD PTR scanline$[rbp] 0089d 0f b6 95 24 05 00 00 movzx edx, BYTE PTR value$[rbp] 008a4 88 14 01 mov BYTE PTR [rcx+rax], dl 008a7 8b 85 44 05 00 00 mov eax, DWORD PTR i$[rbp] 008ad ff c0 inc eax 008af 89 85 44 05 00 00 mov DWORD PTR i$[rbp], eax 008b5 eb b1 jmp SHORT $LN21@stbi__hdr_ $LN22@stbi__hdr_: ; 7712 : } else { 008b7 e9 cb 00 00 00 jmp $LN51@stbi__hdr_ $LN50@stbi__hdr_: ; 7713 : // Dump ; 7714 : if ((count == 0) || (count > nleft)) { 008bc 0f b6 85 04 05 00 00 movzx eax, BYTE PTR count$[rbp] 008c3 85 c0 test eax, eax 008c5 74 0f je SHORT $LN55@stbi__hdr_ 008c7 0f b6 85 04 05 00 00 movzx eax, BYTE PTR count$[rbp] 008ce 3b 85 64 06 00 00 cmp eax, DWORD PTR nleft$9[rbp] 008d4 7e 50 jle SHORT $LN54@stbi__hdr_ $LN55@stbi__hdr_: ; 7715 : STBI_FREE(hdr_data); 008d6 48 8b 8d c8 04 00 00 mov rcx, QWORD PTR hdr_data$[rbp] 008dd ff 15 00 00 00 00 call QWORD PTR __imp_free 008e3 90 npad 1 ; 7716 : STBI_FREE(scanline); 008e4 48 8b 8d a8 04 00 00 mov rcx, QWORD PTR scanline$[rbp] 008eb ff 15 00 00 00 00 call QWORD PTR __imp_free 008f1 90 npad 1 ; 7717 : return stbi__errpf("corrupt", 008f2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07DPPMCAKL@corrupt@ 008f9 e8 00 00 00 00 call stbi__err 008fe 85 c0 test eax, eax 00900 74 0d je SHORT $LN80@stbi__hdr_ 00902 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv309[rbp], 0 0090d eb 0b jmp SHORT $LN81@stbi__hdr_ $LN80@stbi__hdr_: 0090f 48 c7 85 78 09 00 00 00 00 00 00 mov QWORD PTR tv309[rbp], 0 $LN81@stbi__hdr_: 0091a 48 8b 85 78 09 00 00 mov rax, QWORD PTR tv309[rbp] 00921 e9 09 01 00 00 jmp $LN1@stbi__hdr_ $LN54@stbi__hdr_: ; 7718 : "bad RLE data in HDR"); ; 7719 : } ; 7720 : for (z = 0; z < count; ++z) 00926 c7 85 e4 05 00 00 00 00 00 00 mov DWORD PTR z$[rbp], 0 00930 eb 0e jmp SHORT $LN26@stbi__hdr_ $LN24@stbi__hdr_: 00932 8b 85 e4 05 00 00 mov eax, DWORD PTR z$[rbp] 00938 ff c0 inc eax 0093a 89 85 e4 05 00 00 mov DWORD PTR z$[rbp], eax $LN26@stbi__hdr_: 00940 0f b6 85 04 05 00 00 movzx eax, BYTE PTR count$[rbp] 00947 39 85 e4 05 00 00 cmp DWORD PTR z$[rbp], eax 0094d 7d 38 jge SHORT $LN25@stbi__hdr_ ; 7721 : scanline[i++ * 4 + k] = stbi__get8(s); 0094f 48 8b 8d b0 09 00 00 mov rcx, QWORD PTR s$[rbp] 00956 e8 00 00 00 00 call stbi__get8 0095b 8b 8d 84 05 00 00 mov ecx, DWORD PTR k$[rbp] 00961 8b 95 44 05 00 00 mov edx, DWORD PTR i$[rbp] 00967 8d 0c 91 lea ecx, DWORD PTR [rcx+rdx*4] 0096a 48 63 c9 movsxd rcx, ecx 0096d 48 8b 95 a8 04 00 00 mov rdx, QWORD PTR scanline$[rbp] 00974 88 04 0a mov BYTE PTR [rdx+rcx], al 00977 8b 85 44 05 00 00 mov eax, DWORD PTR i$[rbp] 0097d ff c0 inc eax 0097f 89 85 44 05 00 00 mov DWORD PTR i$[rbp], eax 00985 eb ab jmp SHORT $LN24@stbi__hdr_ $LN25@stbi__hdr_: $LN51@stbi__hdr_: ; 7722 : } ; 7723 : } 00987 e9 fb fd ff ff jmp $LN19@stbi__hdr_ $LN20@stbi__hdr_: ; 7724 : } 0098c e9 d1 fd ff ff jmp $LN16@stbi__hdr_ $LN17@stbi__hdr_: ; 7725 : for (i = 0; i < width; ++i) 00991 c7 85 44 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 0099b eb 0e jmp SHORT $LN29@stbi__hdr_ $LN27@stbi__hdr_: 0099d 8b 85 44 05 00 00 mov eax, DWORD PTR i$[rbp] 009a3 ff c0 inc eax 009a5 89 85 44 05 00 00 mov DWORD PTR i$[rbp], eax $LN29@stbi__hdr_: 009ab 8b 85 64 04 00 00 mov eax, DWORD PTR width$[rbp] 009b1 39 85 44 05 00 00 cmp DWORD PTR i$[rbp], eax 009b7 7d 52 jge SHORT $LN28@stbi__hdr_ ; 7726 : stbi__hdr_convert(hdr_data + (j * width + i) * req_comp, 009b9 8b 85 44 05 00 00 mov eax, DWORD PTR i$[rbp] 009bf c1 e0 02 shl eax, 2 009c2 48 98 cdqe 009c4 48 8b 8d a8 04 00 00 mov rcx, QWORD PTR scanline$[rbp] 009cb 48 03 c8 add rcx, rax 009ce 48 8b c1 mov rax, rcx 009d1 8b 8d 64 05 00 00 mov ecx, DWORD PTR j$[rbp] 009d7 0f af 8d 64 04 00 00 imul ecx, DWORD PTR width$[rbp] 009de 03 8d 44 05 00 00 add ecx, DWORD PTR i$[rbp] 009e4 0f af 8d d0 09 00 00 imul ecx, DWORD PTR req_comp$[rbp] 009eb 48 63 c9 movsxd rcx, ecx 009ee 48 8b 95 c8 04 00 00 mov rdx, QWORD PTR hdr_data$[rbp] 009f5 48 8d 0c 8a lea rcx, QWORD PTR [rdx+rcx*4] 009f9 44 8b 85 d0 09 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00a00 48 8b d0 mov rdx, rax 00a03 e8 00 00 00 00 call stbi__hdr_convert 00a08 90 npad 1 00a09 eb 92 jmp SHORT $LN27@stbi__hdr_ $LN28@stbi__hdr_: ; 7727 : scanline + i * 4, req_comp); ; 7728 : } 00a0b e9 23 fb ff ff jmp $LN13@stbi__hdr_ $LN14@stbi__hdr_: ; 7729 : if (scanline) 00a10 48 83 bd a8 04 00 00 00 cmp QWORD PTR scanline$[rbp], 0 00a18 74 0e je SHORT $LN56@stbi__hdr_ ; 7730 : STBI_FREE(scanline); 00a1a 48 8b 8d a8 04 00 00 mov rcx, QWORD PTR scanline$[rbp] 00a21 ff 15 00 00 00 00 call QWORD PTR __imp_free 00a27 90 npad 1 $LN56@stbi__hdr_: $LN43@stbi__hdr_: ; 7731 : } ; 7732 : ; 7733 : return hdr_data; 00a28 48 8b 85 c8 04 00 00 mov rax, QWORD PTR hdr_data$[rbp] $LN1@stbi__hdr_: ; 7734 : } 00a2f 48 8b f8 mov rdi, rax 00a32 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00a36 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__hdr_load$rtcFrameData 00a3d e8 00 00 00 00 call _RTC_CheckStackVars 00a42 48 8b c7 mov rax, rdi 00a45 48 8b 8d 80 09 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00a4c 48 33 cd xor rcx, rbp 00a4f e8 00 00 00 00 call __security_check_cookie 00a54 48 8d a5 98 09 00 00 lea rsp, QWORD PTR [rbp+2456] 00a5b 5f pop rdi 00a5c 5d pop rbp 00a5d c3 ret 0 stbi__hdr_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__hdr_test _TEXT SEGMENT r$ = 4 s$ = 256 stbi__hdr_test PROC ; COMDAT ; 7511 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 7512 : int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); 00020 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0M@HOIDFNFN@?$CD?$DPRADIANCE?6@ 00027 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0002e e8 00 00 00 00 call stbi__hdr_test_core 00033 89 45 04 mov DWORD PTR r$[rbp], eax ; 7513 : stbi__rewind(s); 00036 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0003d e8 00 00 00 00 call stbi__rewind 00042 90 npad 1 ; 7514 : if (!r) { 00043 83 7d 04 00 cmp DWORD PTR r$[rbp], 0 00047 75 23 jne SHORT $LN2@stbi__hdr_ ; 7515 : r = stbi__hdr_test_core(s, "#?RGBE\n"); 00049 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_07KFDJIKCK@?$CD?$DPRGBE?6@ 00050 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00057 e8 00 00 00 00 call stbi__hdr_test_core 0005c 89 45 04 mov DWORD PTR r$[rbp], eax ; 7516 : stbi__rewind(s); 0005f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00066 e8 00 00 00 00 call stbi__rewind 0006b 90 npad 1 $LN2@stbi__hdr_: ; 7517 : } ; 7518 : return r; 0006c 8b 45 04 mov eax, DWORD PTR r$[rbp] ; 7519 : } 0006f 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00076 5f pop rdi 00077 5d pop rbp 00078 c3 ret 0 stbi__hdr_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__psd_is16 _TEXT SEGMENT channelCount$ = 4 depth$ = 36 s$ = 288 stbi__psd_is16 PROC ; COMDAT ; 7853 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 7854 : int channelCount, depth; ; 7855 : if (stbi__get32be(s) != 0x38425053) { 00020 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get32be 0002c 3d 53 50 42 38 cmp eax, 943870035 ; 38425053H 00031 74 14 je SHORT $LN2@stbi__psd_ ; 7856 : stbi__rewind(s); 00033 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 0003a e8 00 00 00 00 call stbi__rewind 0003f 90 npad 1 ; 7857 : return 0; 00040 33 c0 xor eax, eax 00042 e9 a8 00 00 00 jmp $LN1@stbi__psd_ $LN2@stbi__psd_: ; 7858 : } ; 7859 : if (stbi__get16be(s) != 1) { 00047 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 0004e e8 00 00 00 00 call stbi__get16be 00053 83 f8 01 cmp eax, 1 00056 74 14 je SHORT $LN3@stbi__psd_ ; 7860 : stbi__rewind(s); 00058 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 0005f e8 00 00 00 00 call stbi__rewind 00064 90 npad 1 ; 7861 : return 0; 00065 33 c0 xor eax, eax 00067 e9 83 00 00 00 jmp $LN1@stbi__psd_ $LN3@stbi__psd_: ; 7862 : } ; 7863 : stbi__skip(s, 6); 0006c ba 06 00 00 00 mov edx, 6 00071 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00078 e8 00 00 00 00 call stbi__skip 0007d 90 npad 1 ; 7864 : channelCount = stbi__get16be(s); 0007e 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00085 e8 00 00 00 00 call stbi__get16be 0008a 89 45 04 mov DWORD PTR channelCount$[rbp], eax ; 7865 : if (channelCount < 0 || channelCount > 16) { 0008d 83 7d 04 00 cmp DWORD PTR channelCount$[rbp], 0 00091 7c 06 jl SHORT $LN5@stbi__psd_ 00093 83 7d 04 10 cmp DWORD PTR channelCount$[rbp], 16 00097 7e 11 jle SHORT $LN4@stbi__psd_ $LN5@stbi__psd_: ; 7866 : stbi__rewind(s); 00099 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 000a0 e8 00 00 00 00 call stbi__rewind 000a5 90 npad 1 ; 7867 : return 0; 000a6 33 c0 xor eax, eax 000a8 eb 45 jmp SHORT $LN1@stbi__psd_ $LN4@stbi__psd_: ; 7868 : } ; 7869 : STBI_NOTUSED(stbi__get32be(s)); 000aa 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 000b1 e8 00 00 00 00 call stbi__get32be 000b6 90 npad 1 ; 7870 : STBI_NOTUSED(stbi__get32be(s)); 000b7 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 000be e8 00 00 00 00 call stbi__get32be 000c3 90 npad 1 ; 7871 : depth = stbi__get16be(s); 000c4 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 000cb e8 00 00 00 00 call stbi__get16be 000d0 89 45 24 mov DWORD PTR depth$[rbp], eax ; 7872 : if (depth != 16) { 000d3 83 7d 24 10 cmp DWORD PTR depth$[rbp], 16 000d7 74 11 je SHORT $LN6@stbi__psd_ ; 7873 : stbi__rewind(s); 000d9 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 000e0 e8 00 00 00 00 call stbi__rewind 000e5 90 npad 1 ; 7874 : return 0; 000e6 33 c0 xor eax, eax 000e8 eb 05 jmp SHORT $LN1@stbi__psd_ $LN6@stbi__psd_: ; 7875 : } ; 7876 : return 1; 000ea b8 01 00 00 00 mov eax, 1 $LN1@stbi__psd_: ; 7877 : } 000ef 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000f6 5f pop rdi 000f7 5d pop rbp 000f8 c3 ret 0 stbi__psd_is16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__psd_info _TEXT SEGMENT channelCount$ = 4 dummy$ = 36 depth$ = 68 __$ArrayPad$ = 280 s$ = 320 x$ = 328 y$ = 336 comp$ = 344 stbi__psd_info PROC ; COMDAT ; 7815 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 1a 00 00 00 mov ecx, 26 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 7816 : int channelCount, dummy, depth; ; 7817 : if (!x) 00059 48 83 bd 48 01 00 00 00 cmp QWORD PTR x$[rbp], 0 00061 75 0b jne SHORT $LN2@stbi__psd_ ; 7818 : x = &dummy; 00063 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] 00067 48 89 85 48 01 00 00 mov QWORD PTR x$[rbp], rax $LN2@stbi__psd_: ; 7819 : if (!y) 0006e 48 83 bd 50 01 00 00 00 cmp QWORD PTR y$[rbp], 0 00076 75 0b jne SHORT $LN3@stbi__psd_ ; 7820 : y = &dummy; 00078 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] 0007c 48 89 85 50 01 00 00 mov QWORD PTR y$[rbp], rax $LN3@stbi__psd_: ; 7821 : if (!comp) 00083 48 83 bd 58 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 0008b 75 0b jne SHORT $LN4@stbi__psd_ ; 7822 : comp = &dummy; 0008d 48 8d 45 24 lea rax, QWORD PTR dummy$[rbp] 00091 48 89 85 58 01 00 00 mov QWORD PTR comp$[rbp], rax $LN4@stbi__psd_: ; 7823 : if (stbi__get32be(s) != 0x38425053) { 00098 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0009f e8 00 00 00 00 call stbi__get32be 000a4 3d 53 50 42 38 cmp eax, 943870035 ; 38425053H 000a9 74 14 je SHORT $LN5@stbi__psd_ ; 7824 : stbi__rewind(s); 000ab 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000b2 e8 00 00 00 00 call stbi__rewind 000b7 90 npad 1 ; 7825 : return 0; 000b8 33 c0 xor eax, eax 000ba e9 f0 00 00 00 jmp $LN1@stbi__psd_ $LN5@stbi__psd_: ; 7826 : } ; 7827 : if (stbi__get16be(s) != 1) { 000bf 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000c6 e8 00 00 00 00 call stbi__get16be 000cb 83 f8 01 cmp eax, 1 000ce 74 14 je SHORT $LN6@stbi__psd_ ; 7828 : stbi__rewind(s); 000d0 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000d7 e8 00 00 00 00 call stbi__rewind 000dc 90 npad 1 ; 7829 : return 0; 000dd 33 c0 xor eax, eax 000df e9 cb 00 00 00 jmp $LN1@stbi__psd_ $LN6@stbi__psd_: ; 7830 : } ; 7831 : stbi__skip(s, 6); 000e4 ba 06 00 00 00 mov edx, 6 000e9 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000f0 e8 00 00 00 00 call stbi__skip 000f5 90 npad 1 ; 7832 : channelCount = stbi__get16be(s); 000f6 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000fd e8 00 00 00 00 call stbi__get16be 00102 89 45 04 mov DWORD PTR channelCount$[rbp], eax ; 7833 : if (channelCount < 0 || channelCount > 16) { 00105 83 7d 04 00 cmp DWORD PTR channelCount$[rbp], 0 00109 7c 06 jl SHORT $LN8@stbi__psd_ 0010b 83 7d 04 10 cmp DWORD PTR channelCount$[rbp], 16 0010f 7e 14 jle SHORT $LN7@stbi__psd_ $LN8@stbi__psd_: ; 7834 : stbi__rewind(s); 00111 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00118 e8 00 00 00 00 call stbi__rewind 0011d 90 npad 1 ; 7835 : return 0; 0011e 33 c0 xor eax, eax 00120 e9 8a 00 00 00 jmp $LN1@stbi__psd_ $LN7@stbi__psd_: ; 7836 : } ; 7837 : *y = stbi__get32be(s); 00125 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0012c e8 00 00 00 00 call stbi__get32be 00131 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR y$[rbp] 00138 89 01 mov DWORD PTR [rcx], eax ; 7838 : *x = stbi__get32be(s); 0013a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00141 e8 00 00 00 00 call stbi__get32be 00146 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR x$[rbp] 0014d 89 01 mov DWORD PTR [rcx], eax ; 7839 : depth = stbi__get16be(s); 0014f 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00156 e8 00 00 00 00 call stbi__get16be 0015b 89 45 44 mov DWORD PTR depth$[rbp], eax ; 7840 : if (depth != 8 && depth != 16) { 0015e 83 7d 44 08 cmp DWORD PTR depth$[rbp], 8 00162 74 17 je SHORT $LN9@stbi__psd_ 00164 83 7d 44 10 cmp DWORD PTR depth$[rbp], 16 00168 74 11 je SHORT $LN9@stbi__psd_ ; 7841 : stbi__rewind(s); 0016a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00171 e8 00 00 00 00 call stbi__rewind 00176 90 npad 1 ; 7842 : return 0; 00177 33 c0 xor eax, eax 00179 eb 34 jmp SHORT $LN1@stbi__psd_ $LN9@stbi__psd_: ; 7843 : } ; 7844 : if (stbi__get16be(s) != 3) { 0017b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00182 e8 00 00 00 00 call stbi__get16be 00187 83 f8 03 cmp eax, 3 0018a 74 11 je SHORT $LN10@stbi__psd_ ; 7845 : stbi__rewind(s); 0018c 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00193 e8 00 00 00 00 call stbi__rewind 00198 90 npad 1 ; 7846 : return 0; 00199 33 c0 xor eax, eax 0019b eb 12 jmp SHORT $LN1@stbi__psd_ $LN10@stbi__psd_: ; 7847 : } ; 7848 : *comp = 4; 0019d 48 8b 85 58 01 00 00 mov rax, QWORD PTR comp$[rbp] 001a4 c7 00 04 00 00 00 mov DWORD PTR [rax], 4 ; 7849 : return 1; 001aa b8 01 00 00 00 mov eax, 1 $LN1@stbi__psd_: ; 7850 : } 001af 48 8b f8 mov rdi, rax 001b2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 001b6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__psd_info$rtcFrameData 001bd e8 00 00 00 00 call _RTC_CheckStackVars 001c2 48 8b c7 mov rax, rdi 001c5 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 001cc 48 33 cd xor rcx, rbp 001cf e8 00 00 00 00 call __security_check_cookie 001d4 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 001db 5f pop rdi 001dc 5d pop rbp 001dd c3 ret 0 stbi__psd_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__psd_load _TEXT SEGMENT pixelCount$ = 4 channelCount$ = 36 compression$ = 68 channel$ = 100 i$ = 132 bitdepth$ = 164 w$ = 196 h$ = 228 out$ = 264 p$1 = 296 q$2 = 328 val$3 = 356 p$4 = 392 val$5 = 420 q$6 = 456 p$7 = 488 pixel$8 = 520 a$9 = 548 ra$10 = 580 inv_a$11 = 612 pixel$12 = 648 a$13 = 676 ra$14 = 708 inv_a$15 = 740 tv241 = 1140 tv212 = 1140 tv233 = 1140 tv87 = 1144 tv128 = 1144 tv133 = 1144 tv141 = 1144 tv148 = 1144 tv167 = 1144 tv196 = 1144 tv70 = 1144 tv223 = 1144 tv77 = 1144 tv177 = 1144 s$ = 1184 x$ = 1192 y$ = 1200 comp$ = 1208 req_comp$ = 1216 ri$ = 1224 bpc$ = 1232 stbi__psd_load PROC ; COMDAT ; 6470 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec b8 04 00 00 sub rsp, 1208 ; 000004b8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 6471 : int pixelCount; ; 6472 : int channelCount, compression; ; 6473 : int channel, i; ; 6474 : int bitdepth; ; 6475 : int w, h; ; 6476 : stbi_uc *out; ; 6477 : STBI_NOTUSED(ri); ; 6478 : ; 6479 : // Check identifier ; 6480 : if (stbi__get32be(s) != 0x38425053) // "8BPS" 0002f 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__get32be 0003b 3d 53 50 42 38 cmp eax, 943870035 ; 38425053H 00040 74 34 je SHORT $LN32@stbi__psd_ ; 6481 : return stbi__errpuc("not PSD", "Corrupt PSD image"); 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07ECNCNLIK@not?5PSD@ 00049 e8 00 00 00 00 call stbi__err 0004e 85 c0 test eax, eax 00050 74 0d je SHORT $LN69@stbi__psd_ 00052 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv70[rbp], 0 0005d eb 0b jmp SHORT $LN70@stbi__psd_ $LN69@stbi__psd_: 0005f 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv70[rbp], 0 $LN70@stbi__psd_: 0006a 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv70[rbp] 00071 e9 b7 0b 00 00 jmp $LN1@stbi__psd_ $LN32@stbi__psd_: ; 6482 : ; 6483 : // Check file type version. ; 6484 : if (stbi__get16be(s) != 1) 00076 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 0007d e8 00 00 00 00 call stbi__get16be 00082 83 f8 01 cmp eax, 1 00085 74 34 je SHORT $LN33@stbi__psd_ ; 6485 : return stbi__errpuc("wrong version", "Unsupported version of PSD image"); 00087 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@CHBCDKKC@wrong?5version@ 0008e e8 00 00 00 00 call stbi__err 00093 85 c0 test eax, eax 00095 74 0d je SHORT $LN71@stbi__psd_ 00097 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv77[rbp], 0 000a2 eb 0b jmp SHORT $LN72@stbi__psd_ $LN71@stbi__psd_: 000a4 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv77[rbp], 0 $LN72@stbi__psd_: 000af 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv77[rbp] 000b6 e9 72 0b 00 00 jmp $LN1@stbi__psd_ $LN33@stbi__psd_: ; 6486 : ; 6487 : // Skip 6 reserved bytes. ; 6488 : stbi__skip(s, 6); 000bb ba 06 00 00 00 mov edx, 6 000c0 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 000c7 e8 00 00 00 00 call stbi__skip 000cc 90 npad 1 ; 6489 : ; 6490 : // Read the number of channels (R, G, B, A, etc). ; 6491 : channelCount = stbi__get16be(s); 000cd 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 000d4 e8 00 00 00 00 call stbi__get16be 000d9 89 45 24 mov DWORD PTR channelCount$[rbp], eax ; 6492 : if (channelCount < 0 || channelCount > 16) 000dc 83 7d 24 00 cmp DWORD PTR channelCount$[rbp], 0 000e0 7c 06 jl SHORT $LN35@stbi__psd_ 000e2 83 7d 24 10 cmp DWORD PTR channelCount$[rbp], 16 000e6 7e 34 jle SHORT $LN34@stbi__psd_ $LN35@stbi__psd_: ; 6493 : return stbi__errpuc("wrong channel count", 000e8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@PJBNGDBE@wrong?5channel?5count@ 000ef e8 00 00 00 00 call stbi__err 000f4 85 c0 test eax, eax 000f6 74 0d je SHORT $LN73@stbi__psd_ 000f8 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv87[rbp], 0 00103 eb 0b jmp SHORT $LN74@stbi__psd_ $LN73@stbi__psd_: 00105 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv87[rbp], 0 $LN74@stbi__psd_: 00110 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv87[rbp] 00117 e9 11 0b 00 00 jmp $LN1@stbi__psd_ $LN34@stbi__psd_: ; 6494 : "Unsupported number of channels in PSD image"); ; 6495 : ; 6496 : // Read the rows and columns of the image. ; 6497 : h = stbi__get32be(s); 0011c 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 00123 e8 00 00 00 00 call stbi__get32be 00128 89 85 e4 00 00 00 mov DWORD PTR h$[rbp], eax ; 6498 : w = stbi__get32be(s); 0012e 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 00135 e8 00 00 00 00 call stbi__get32be 0013a 89 85 c4 00 00 00 mov DWORD PTR w$[rbp], eax ; 6499 : ; 6500 : if (h > STBI_MAX_DIMENSIONS) 00140 81 bd e4 00 00 00 00 00 00 01 cmp DWORD PTR h$[rbp], 16777216 ; 01000000H 0014a 7e 34 jle SHORT $LN36@stbi__psd_ ; 6501 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 0014c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00153 e8 00 00 00 00 call stbi__err 00158 85 c0 test eax, eax 0015a 74 0d je SHORT $LN75@stbi__psd_ 0015c 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 00167 eb 0b jmp SHORT $LN76@stbi__psd_ $LN75@stbi__psd_: 00169 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN76@stbi__psd_: 00174 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv128[rbp] 0017b e9 ad 0a 00 00 jmp $LN1@stbi__psd_ $LN36@stbi__psd_: ; 6502 : if (w > STBI_MAX_DIMENSIONS) 00180 81 bd c4 00 00 00 00 00 00 01 cmp DWORD PTR w$[rbp], 16777216 ; 01000000H 0018a 7e 34 jle SHORT $LN37@stbi__psd_ ; 6503 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 0018c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 00193 e8 00 00 00 00 call stbi__err 00198 85 c0 test eax, eax 0019a 74 0d je SHORT $LN77@stbi__psd_ 0019c 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv133[rbp], 0 001a7 eb 0b jmp SHORT $LN78@stbi__psd_ $LN77@stbi__psd_: 001a9 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv133[rbp], 0 $LN78@stbi__psd_: 001b4 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv133[rbp] 001bb e9 6d 0a 00 00 jmp $LN1@stbi__psd_ $LN37@stbi__psd_: ; 6504 : ; 6505 : // Make sure the depth is 8 bits. ; 6506 : bitdepth = stbi__get16be(s); 001c0 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 001c7 e8 00 00 00 00 call stbi__get16be 001cc 89 85 a4 00 00 00 mov DWORD PTR bitdepth$[rbp], eax ; 6507 : if (bitdepth != 8 && bitdepth != 16) 001d2 83 bd a4 00 00 00 08 cmp DWORD PTR bitdepth$[rbp], 8 001d9 74 3d je SHORT $LN38@stbi__psd_ 001db 83 bd a4 00 00 00 10 cmp DWORD PTR bitdepth$[rbp], 16 001e2 74 34 je SHORT $LN38@stbi__psd_ ; 6508 : return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); 001e4 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@NOLDLPP@unsupported?5bit?5depth@ 001eb e8 00 00 00 00 call stbi__err 001f0 85 c0 test eax, eax 001f2 74 0d je SHORT $LN79@stbi__psd_ 001f4 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv141[rbp], 0 001ff eb 0b jmp SHORT $LN80@stbi__psd_ $LN79@stbi__psd_: 00201 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv141[rbp], 0 $LN80@stbi__psd_: 0020c 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv141[rbp] 00213 e9 15 0a 00 00 jmp $LN1@stbi__psd_ $LN38@stbi__psd_: ; 6509 : ; 6510 : // Make sure the color mode is RGB. ; 6511 : // Valid options are: ; 6512 : // 0: Bitmap ; 6513 : // 1: Grayscale ; 6514 : // 2: Indexed color ; 6515 : // 3: RGB color ; 6516 : // 4: CMYK color ; 6517 : // 7: Multichannel ; 6518 : // 8: Duotone ; 6519 : // 9: Lab color ; 6520 : if (stbi__get16be(s) != 3) 00218 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 0021f e8 00 00 00 00 call stbi__get16be 00224 83 f8 03 cmp eax, 3 00227 74 34 je SHORT $LN39@stbi__psd_ ; 6521 : return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); 00229 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@IOGGBMNK@wrong?5color?5format@ 00230 e8 00 00 00 00 call stbi__err 00235 85 c0 test eax, eax 00237 74 0d je SHORT $LN81@stbi__psd_ 00239 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv148[rbp], 0 00244 eb 0b jmp SHORT $LN82@stbi__psd_ $LN81@stbi__psd_: 00246 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv148[rbp], 0 $LN82@stbi__psd_: 00251 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv148[rbp] 00258 e9 d0 09 00 00 jmp $LN1@stbi__psd_ $LN39@stbi__psd_: ; 6522 : ; 6523 : // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) ; 6524 : stbi__skip(s, stbi__get32be(s)); 0025d 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 00264 e8 00 00 00 00 call stbi__get32be 00269 8b d0 mov edx, eax 0026b 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 00272 e8 00 00 00 00 call stbi__skip 00277 90 npad 1 ; 6525 : ; 6526 : // Skip the image resources. (resolution, pen tool paths, etc) ; 6527 : stbi__skip(s, stbi__get32be(s)); 00278 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 0027f e8 00 00 00 00 call stbi__get32be 00284 8b d0 mov edx, eax 00286 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 0028d e8 00 00 00 00 call stbi__skip 00292 90 npad 1 ; 6528 : ; 6529 : // Skip the reserved data. ; 6530 : stbi__skip(s, stbi__get32be(s)); 00293 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 0029a e8 00 00 00 00 call stbi__get32be 0029f 8b d0 mov edx, eax 002a1 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 002a8 e8 00 00 00 00 call stbi__skip 002ad 90 npad 1 ; 6531 : ; 6532 : // Find out if the data is compressed. ; 6533 : // Known values: ; 6534 : // 0: no compression ; 6535 : // 1: RLE compressed ; 6536 : compression = stbi__get16be(s); 002ae 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 002b5 e8 00 00 00 00 call stbi__get16be 002ba 89 45 44 mov DWORD PTR compression$[rbp], eax ; 6537 : if (compression > 1) 002bd 83 7d 44 01 cmp DWORD PTR compression$[rbp], 1 002c1 7e 34 jle SHORT $LN40@stbi__psd_ ; 6538 : return stbi__errpuc("bad compression", "PSD has an unknown compression format"); 002c3 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@MCNBDLPD@bad?5compression@ 002ca e8 00 00 00 00 call stbi__err 002cf 85 c0 test eax, eax 002d1 74 0d je SHORT $LN83@stbi__psd_ 002d3 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv167[rbp], 0 002de eb 0b jmp SHORT $LN84@stbi__psd_ $LN83@stbi__psd_: 002e0 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv167[rbp], 0 $LN84@stbi__psd_: 002eb 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv167[rbp] 002f2 e9 36 09 00 00 jmp $LN1@stbi__psd_ $LN40@stbi__psd_: ; 6539 : ; 6540 : // Check size ; 6541 : if (!stbi__mad3sizes_valid(4, w, h, 0)) 002f7 45 33 c9 xor r9d, r9d 002fa 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR h$[rbp] 00301 8b 95 c4 00 00 00 mov edx, DWORD PTR w$[rbp] 00307 b9 04 00 00 00 mov ecx, 4 0030c e8 00 00 00 00 call stbi__mad3sizes_valid 00311 85 c0 test eax, eax 00313 75 34 jne SHORT $LN41@stbi__psd_ ; 6542 : return stbi__errpuc("too large", "Corrupt PSD"); 00315 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 0031c e8 00 00 00 00 call stbi__err 00321 85 c0 test eax, eax 00323 74 0d je SHORT $LN85@stbi__psd_ 00325 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv177[rbp], 0 00330 eb 0b jmp SHORT $LN86@stbi__psd_ $LN85@stbi__psd_: 00332 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv177[rbp], 0 $LN86@stbi__psd_: 0033d 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv177[rbp] 00344 e9 e4 08 00 00 jmp $LN1@stbi__psd_ $LN41@stbi__psd_: ; 6543 : ; 6544 : // Create the destination image. ; 6545 : ; 6546 : if (!compression && bitdepth == 16 && bpc == 16) { 00349 83 7d 44 00 cmp DWORD PTR compression$[rbp], 0 0034d 75 42 jne SHORT $LN42@stbi__psd_ 0034f 83 bd a4 00 00 00 10 cmp DWORD PTR bitdepth$[rbp], 16 00356 75 39 jne SHORT $LN42@stbi__psd_ 00358 83 bd d0 04 00 00 10 cmp DWORD PTR bpc$[rbp], 16 0035f 75 30 jne SHORT $LN42@stbi__psd_ ; 6547 : out = (stbi_uc *)stbi__malloc_mad3(8, w, h, 0); 00361 45 33 c9 xor r9d, r9d 00364 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR h$[rbp] 0036b 8b 95 c4 00 00 00 mov edx, DWORD PTR w$[rbp] 00371 b9 08 00 00 00 mov ecx, 8 00376 e8 00 00 00 00 call stbi__malloc_mad3 0037b 48 89 85 08 01 00 00 mov QWORD PTR out$[rbp], rax ; 6548 : ri->bits_per_channel = 16; 00382 48 8b 85 c8 04 00 00 mov rax, QWORD PTR ri$[rbp] 00389 c7 00 10 00 00 00 mov DWORD PTR [rax], 16 ; 6549 : } else 0038f eb 21 jmp SHORT $LN43@stbi__psd_ $LN42@stbi__psd_: ; 6550 : out = (stbi_uc *)stbi__malloc(4 * w * h); 00391 8b 85 c4 00 00 00 mov eax, DWORD PTR w$[rbp] 00397 c1 e0 02 shl eax, 2 0039a 0f af 85 e4 00 00 00 imul eax, DWORD PTR h$[rbp] 003a1 48 98 cdqe 003a3 48 8b c8 mov rcx, rax 003a6 e8 00 00 00 00 call stbi__malloc 003ab 48 89 85 08 01 00 00 mov QWORD PTR out$[rbp], rax $LN43@stbi__psd_: ; 6551 : ; 6552 : if (!out) 003b2 48 83 bd 08 01 00 00 00 cmp QWORD PTR out$[rbp], 0 003ba 75 34 jne SHORT $LN44@stbi__psd_ ; 6553 : return stbi__errpuc("outofmem", "Out of memory"); 003bc 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 003c3 e8 00 00 00 00 call stbi__err 003c8 85 c0 test eax, eax 003ca 74 0d je SHORT $LN87@stbi__psd_ 003cc 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv196[rbp], 0 003d7 eb 0b jmp SHORT $LN88@stbi__psd_ $LN87@stbi__psd_: 003d9 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv196[rbp], 0 $LN88@stbi__psd_: 003e4 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv196[rbp] 003eb e9 3d 08 00 00 jmp $LN1@stbi__psd_ $LN44@stbi__psd_: ; 6554 : pixelCount = w * h; 003f0 8b 85 c4 00 00 00 mov eax, DWORD PTR w$[rbp] 003f6 0f af 85 e4 00 00 00 imul eax, DWORD PTR h$[rbp] 003fd 89 45 04 mov DWORD PTR pixelCount$[rbp], eax ; 6555 : ; 6556 : // Initialize the data to zero. ; 6557 : //memset( out, 0, pixelCount * 4 ); ; 6558 : ; 6559 : // Finally, the image data. ; 6560 : if (compression) { 00400 83 7d 44 00 cmp DWORD PTR compression$[rbp], 0 00404 0f 84 24 01 00 00 je $LN45@stbi__psd_ ; 6561 : // RLE as used by .PSD and .TIFF ; 6562 : // Loop until you get the number of unpacked bytes you are expecting: ; 6563 : // Read the next source byte into n. ; 6564 : // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. ; 6565 : // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. ; 6566 : // Else if n is 128, noop. ; 6567 : // Endloop ; 6568 : ; 6569 : // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, ; 6570 : // which we're going to just skip. ; 6571 : stbi__skip(s, h * channelCount * 2); 0040a 8b 85 e4 00 00 00 mov eax, DWORD PTR h$[rbp] 00410 0f af 45 24 imul eax, DWORD PTR channelCount$[rbp] 00414 d1 e0 shl eax, 1 00416 8b d0 mov edx, eax 00418 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 0041f e8 00 00 00 00 call stbi__skip 00424 90 npad 1 ; 6572 : ; 6573 : // Read the RLE data by channel. ; 6574 : for (channel = 0; channel < 4; channel++) { 00425 c7 45 64 00 00 00 00 mov DWORD PTR channel$[rbp], 0 0042c eb 08 jmp SHORT $LN4@stbi__psd_ $LN2@stbi__psd_: 0042e 8b 45 64 mov eax, DWORD PTR channel$[rbp] 00431 ff c0 inc eax 00433 89 45 64 mov DWORD PTR channel$[rbp], eax $LN4@stbi__psd_: 00436 83 7d 64 04 cmp DWORD PTR channel$[rbp], 4 0043a 0f 8d e9 00 00 00 jge $LN3@stbi__psd_ ; 6575 : stbi_uc *p; ; 6576 : ; 6577 : p = out + channel; 00440 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] 00444 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 0044b 48 03 c8 add rcx, rax 0044e 48 8b c1 mov rax, rcx 00451 48 89 85 28 01 00 00 mov QWORD PTR p$1[rbp], rax ; 6578 : if (channel >= channelCount) { 00458 8b 45 24 mov eax, DWORD PTR channelCount$[rbp] 0045b 39 45 64 cmp DWORD PTR channel$[rbp], eax 0045e 7c 67 jl SHORT $LN47@stbi__psd_ ; 6579 : // Fill this channel with default data. ; 6580 : for (i = 0; i < pixelCount; i++, p += 4) 00460 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 0046a eb 20 jmp SHORT $LN7@stbi__psd_ $LN5@stbi__psd_: 0046c 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 00472 ff c0 inc eax 00474 89 85 84 00 00 00 mov DWORD PTR i$[rbp], eax 0047a 48 8b 85 28 01 00 00 mov rax, QWORD PTR p$1[rbp] 00481 48 83 c0 04 add rax, 4 00485 48 89 85 28 01 00 00 mov QWORD PTR p$1[rbp], rax $LN7@stbi__psd_: 0048c 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] 0048f 39 85 84 00 00 00 cmp DWORD PTR i$[rbp], eax 00495 7d 2e jge SHORT $LN6@stbi__psd_ ; 6581 : *p = (channel == 3 ? 255 : 0); 00497 83 7d 64 03 cmp DWORD PTR channel$[rbp], 3 0049b 75 0c jne SHORT $LN89@stbi__psd_ 0049d c7 85 74 04 00 00 ff 00 00 00 mov DWORD PTR tv212[rbp], 255 ; 000000ffH 004a7 eb 0a jmp SHORT $LN90@stbi__psd_ $LN89@stbi__psd_: 004a9 c7 85 74 04 00 00 00 00 00 00 mov DWORD PTR tv212[rbp], 0 $LN90@stbi__psd_: 004b3 48 8b 85 28 01 00 00 mov rax, QWORD PTR p$1[rbp] 004ba 0f b6 8d 74 04 00 00 movzx ecx, BYTE PTR tv212[rbp] 004c1 88 08 mov BYTE PTR [rax], cl 004c3 eb a7 jmp SHORT $LN5@stbi__psd_ $LN6@stbi__psd_: ; 6582 : } else { 004c5 eb 5d jmp SHORT $LN48@stbi__psd_ $LN47@stbi__psd_: ; 6583 : // Read the RLE data. ; 6584 : if (!stbi__psd_decode_rle(s, p, pixelCount)) { 004c7 44 8b 45 04 mov r8d, DWORD PTR pixelCount$[rbp] 004cb 48 8b 95 28 01 00 00 mov rdx, QWORD PTR p$1[rbp] 004d2 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 004d9 e8 00 00 00 00 call stbi__psd_decode_rle 004de 85 c0 test eax, eax 004e0 75 42 jne SHORT $LN49@stbi__psd_ ; 6585 : STBI_FREE(out); 004e2 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 004e9 ff 15 00 00 00 00 call QWORD PTR __imp_free 004ef 90 npad 1 ; 6586 : return stbi__errpuc("corrupt", "bad RLE data"); 004f0 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07DPPMCAKL@corrupt@ 004f7 e8 00 00 00 00 call stbi__err 004fc 85 c0 test eax, eax 004fe 74 0d je SHORT $LN91@stbi__psd_ 00500 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv223[rbp], 0 0050b eb 0b jmp SHORT $LN92@stbi__psd_ $LN91@stbi__psd_: 0050d 48 c7 85 78 04 00 00 00 00 00 00 mov QWORD PTR tv223[rbp], 0 $LN92@stbi__psd_: 00518 48 8b 85 78 04 00 00 mov rax, QWORD PTR tv223[rbp] 0051f e9 09 07 00 00 jmp $LN1@stbi__psd_ $LN49@stbi__psd_: $LN48@stbi__psd_: ; 6587 : } ; 6588 : } ; 6589 : } 00524 e9 05 ff ff ff jmp $LN2@stbi__psd_ $LN3@stbi__psd_: ; 6590 : } else { 00529 e9 9c 02 00 00 jmp $LN46@stbi__psd_ $LN45@stbi__psd_: ; 6591 : // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) ; 6592 : // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. ; 6593 : ; 6594 : // Read the data by channel. ; 6595 : for (channel = 0; channel < 4; channel++) { 0052e c7 45 64 00 00 00 00 mov DWORD PTR channel$[rbp], 0 00535 eb 08 jmp SHORT $LN10@stbi__psd_ $LN8@stbi__psd_: 00537 8b 45 64 mov eax, DWORD PTR channel$[rbp] 0053a ff c0 inc eax 0053c 89 45 64 mov DWORD PTR channel$[rbp], eax $LN10@stbi__psd_: 0053f 83 7d 64 04 cmp DWORD PTR channel$[rbp], 4 00543 0f 8d 81 02 00 00 jge $LN9@stbi__psd_ ; 6596 : if (channel >= channelCount) { 00549 8b 45 24 mov eax, DWORD PTR channelCount$[rbp] 0054c 39 45 64 cmp DWORD PTR channel$[rbp], eax 0054f 0f 8c 38 01 00 00 jl $LN50@stbi__psd_ ; 6597 : // Fill this channel with default data. ; 6598 : if (bitdepth == 16 && bpc == 16) { 00555 83 bd a4 00 00 00 10 cmp DWORD PTR bitdepth$[rbp], 16 0055c 0f 85 9c 00 00 00 jne $LN52@stbi__psd_ 00562 83 bd d0 04 00 00 10 cmp DWORD PTR bpc$[rbp], 16 00569 0f 85 8f 00 00 00 jne $LN52@stbi__psd_ ; 6599 : stbi__uint16 *q = ((stbi__uint16 *)out) + channel; 0056f 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] 00573 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 0057a 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] 0057e 48 89 85 48 01 00 00 mov QWORD PTR q$2[rbp], rax ; 6600 : stbi__uint16 val = channel == 3 ? 65535 : 0; 00585 83 7d 64 03 cmp DWORD PTR channel$[rbp], 3 00589 75 0c jne SHORT $LN93@stbi__psd_ 0058b c7 85 74 04 00 00 ff ff 00 00 mov DWORD PTR tv233[rbp], 65535 ; 0000ffffH 00595 eb 0a jmp SHORT $LN94@stbi__psd_ $LN93@stbi__psd_: 00597 c7 85 74 04 00 00 00 00 00 00 mov DWORD PTR tv233[rbp], 0 $LN94@stbi__psd_: 005a1 0f b7 85 74 04 00 00 movzx eax, WORD PTR tv233[rbp] 005a8 66 89 85 64 01 00 00 mov WORD PTR val$3[rbp], ax ; 6601 : for (i = 0; i < pixelCount; i++, q += 4) 005af c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 005b9 eb 20 jmp SHORT $LN13@stbi__psd_ $LN11@stbi__psd_: 005bb 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 005c1 ff c0 inc eax 005c3 89 85 84 00 00 00 mov DWORD PTR i$[rbp], eax 005c9 48 8b 85 48 01 00 00 mov rax, QWORD PTR q$2[rbp] 005d0 48 83 c0 08 add rax, 8 005d4 48 89 85 48 01 00 00 mov QWORD PTR q$2[rbp], rax $LN13@stbi__psd_: 005db 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] 005de 39 85 84 00 00 00 cmp DWORD PTR i$[rbp], eax 005e4 7d 13 jge SHORT $LN12@stbi__psd_ ; 6602 : *q = val; 005e6 48 8b 85 48 01 00 00 mov rax, QWORD PTR q$2[rbp] 005ed 0f b7 8d 64 01 00 00 movzx ecx, WORD PTR val$3[rbp] 005f4 66 89 08 mov WORD PTR [rax], cx 005f7 eb c2 jmp SHORT $LN11@stbi__psd_ $LN12@stbi__psd_: ; 6603 : } else { 005f9 e9 8a 00 00 00 jmp $LN53@stbi__psd_ $LN52@stbi__psd_: ; 6604 : stbi_uc *p = out + channel; 005fe 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] 00602 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 00609 48 03 c8 add rcx, rax 0060c 48 8b c1 mov rax, rcx 0060f 48 89 85 88 01 00 00 mov QWORD PTR p$4[rbp], rax ; 6605 : stbi_uc val = channel == 3 ? 255 : 0; 00616 83 7d 64 03 cmp DWORD PTR channel$[rbp], 3 0061a 75 0c jne SHORT $LN95@stbi__psd_ 0061c c7 85 74 04 00 00 ff 00 00 00 mov DWORD PTR tv241[rbp], 255 ; 000000ffH 00626 eb 0a jmp SHORT $LN96@stbi__psd_ $LN95@stbi__psd_: 00628 c7 85 74 04 00 00 00 00 00 00 mov DWORD PTR tv241[rbp], 0 $LN96@stbi__psd_: 00632 0f b6 85 74 04 00 00 movzx eax, BYTE PTR tv241[rbp] 00639 88 85 a4 01 00 00 mov BYTE PTR val$5[rbp], al ; 6606 : for (i = 0; i < pixelCount; i++, p += 4) 0063f c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 00649 eb 20 jmp SHORT $LN16@stbi__psd_ $LN14@stbi__psd_: 0064b 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 00651 ff c0 inc eax 00653 89 85 84 00 00 00 mov DWORD PTR i$[rbp], eax 00659 48 8b 85 88 01 00 00 mov rax, QWORD PTR p$4[rbp] 00660 48 83 c0 04 add rax, 4 00664 48 89 85 88 01 00 00 mov QWORD PTR p$4[rbp], rax $LN16@stbi__psd_: 0066b 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] 0066e 39 85 84 00 00 00 cmp DWORD PTR i$[rbp], eax 00674 7d 12 jge SHORT $LN15@stbi__psd_ ; 6607 : *p = val; 00676 48 8b 85 88 01 00 00 mov rax, QWORD PTR p$4[rbp] 0067d 0f b6 8d a4 01 00 00 movzx ecx, BYTE PTR val$5[rbp] 00684 88 08 mov BYTE PTR [rax], cl 00686 eb c3 jmp SHORT $LN14@stbi__psd_ $LN15@stbi__psd_: $LN53@stbi__psd_: ; 6608 : } ; 6609 : } else { 00688 e9 38 01 00 00 jmp $LN51@stbi__psd_ $LN50@stbi__psd_: ; 6610 : if (ri->bits_per_channel == 16) { // output bpc 0068d 48 8b 85 c8 04 00 00 mov rax, QWORD PTR ri$[rbp] 00694 83 38 10 cmp DWORD PTR [rax], 16 00697 75 6a jne SHORT $LN54@stbi__psd_ ; 6611 : stbi__uint16 *q = ((stbi__uint16 *)out) + channel; 00699 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] 0069d 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 006a4 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] 006a8 48 89 85 c8 01 00 00 mov QWORD PTR q$6[rbp], rax ; 6612 : for (i = 0; i < pixelCount; i++, q += 4) 006af c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 006b9 eb 20 jmp SHORT $LN19@stbi__psd_ $LN17@stbi__psd_: 006bb 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 006c1 ff c0 inc eax 006c3 89 85 84 00 00 00 mov DWORD PTR i$[rbp], eax 006c9 48 8b 85 c8 01 00 00 mov rax, QWORD PTR q$6[rbp] 006d0 48 83 c0 08 add rax, 8 006d4 48 89 85 c8 01 00 00 mov QWORD PTR q$6[rbp], rax $LN19@stbi__psd_: 006db 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] 006de 39 85 84 00 00 00 cmp DWORD PTR i$[rbp], eax 006e4 7d 18 jge SHORT $LN18@stbi__psd_ ; 6613 : *q = (stbi__uint16)stbi__get16be(s); 006e6 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 006ed e8 00 00 00 00 call stbi__get16be 006f2 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR q$6[rbp] 006f9 66 89 01 mov WORD PTR [rcx], ax 006fc eb bd jmp SHORT $LN17@stbi__psd_ $LN18@stbi__psd_: ; 6614 : } else { 006fe e9 c2 00 00 00 jmp $LN55@stbi__psd_ $LN54@stbi__psd_: ; 6615 : stbi_uc *p = out + channel; 00703 48 63 45 64 movsxd rax, DWORD PTR channel$[rbp] 00707 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 0070e 48 03 c8 add rcx, rax 00711 48 8b c1 mov rax, rcx 00714 48 89 85 e8 01 00 00 mov QWORD PTR p$7[rbp], rax ; 6616 : if (bitdepth == 16) { // input bpc 0071b 83 bd a4 00 00 00 10 cmp DWORD PTR bitdepth$[rbp], 16 00722 75 53 jne SHORT $LN56@stbi__psd_ ; 6617 : for (i = 0; i < pixelCount; i++, p += 4) 00724 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 0072e eb 20 jmp SHORT $LN22@stbi__psd_ $LN20@stbi__psd_: 00730 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 00736 ff c0 inc eax 00738 89 85 84 00 00 00 mov DWORD PTR i$[rbp], eax 0073e 48 8b 85 e8 01 00 00 mov rax, QWORD PTR p$7[rbp] 00745 48 83 c0 04 add rax, 4 00749 48 89 85 e8 01 00 00 mov QWORD PTR p$7[rbp], rax $LN22@stbi__psd_: 00750 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] 00753 39 85 84 00 00 00 cmp DWORD PTR i$[rbp], eax 00759 7d 1a jge SHORT $LN21@stbi__psd_ ; 6618 : *p = (stbi_uc)(stbi__get16be(s) >> 8); 0075b 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 00762 e8 00 00 00 00 call stbi__get16be 00767 c1 f8 08 sar eax, 8 0076a 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR p$7[rbp] 00771 88 01 mov BYTE PTR [rcx], al 00773 eb bb jmp SHORT $LN20@stbi__psd_ $LN21@stbi__psd_: ; 6619 : } else { 00775 eb 4e jmp SHORT $LN57@stbi__psd_ $LN56@stbi__psd_: ; 6620 : for (i = 0; i < pixelCount; i++, p += 4) 00777 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 00781 eb 20 jmp SHORT $LN25@stbi__psd_ $LN23@stbi__psd_: 00783 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 00789 ff c0 inc eax 0078b 89 85 84 00 00 00 mov DWORD PTR i$[rbp], eax 00791 48 8b 85 e8 01 00 00 mov rax, QWORD PTR p$7[rbp] 00798 48 83 c0 04 add rax, 4 0079c 48 89 85 e8 01 00 00 mov QWORD PTR p$7[rbp], rax $LN25@stbi__psd_: 007a3 8b 45 04 mov eax, DWORD PTR pixelCount$[rbp] 007a6 39 85 84 00 00 00 cmp DWORD PTR i$[rbp], eax 007ac 7d 17 jge SHORT $LN24@stbi__psd_ ; 6621 : *p = stbi__get8(s); 007ae 48 8b 8d a0 04 00 00 mov rcx, QWORD PTR s$[rbp] 007b5 e8 00 00 00 00 call stbi__get8 007ba 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR p$7[rbp] 007c1 88 01 mov BYTE PTR [rcx], al 007c3 eb be jmp SHORT $LN23@stbi__psd_ $LN24@stbi__psd_: $LN57@stbi__psd_: $LN55@stbi__psd_: $LN51@stbi__psd_: ; 6622 : } ; 6623 : } ; 6624 : } ; 6625 : } 007c5 e9 6d fd ff ff jmp $LN8@stbi__psd_ $LN9@stbi__psd_: $LN46@stbi__psd_: ; 6626 : } ; 6627 : ; 6628 : // remove weird white matte from PSD ; 6629 : if (channelCount >= 4) { 007ca 83 7d 24 04 cmp DWORD PTR channelCount$[rbp], 4 007ce 0f 8c 82 03 00 00 jl $LN58@stbi__psd_ ; 6630 : if (ri->bits_per_channel == 16) { 007d4 48 8b 85 c8 04 00 00 mov rax, QWORD PTR ri$[rbp] 007db 83 38 10 cmp DWORD PTR [rax], 16 007de 0f 85 bc 01 00 00 jne $LN59@stbi__psd_ ; 6631 : for (i = 0; i < w * h; ++i) { 007e4 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 007ee eb 0e jmp SHORT $LN28@stbi__psd_ $LN26@stbi__psd_: 007f0 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 007f6 ff c0 inc eax 007f8 89 85 84 00 00 00 mov DWORD PTR i$[rbp], eax $LN28@stbi__psd_: 007fe 8b 85 c4 00 00 00 mov eax, DWORD PTR w$[rbp] 00804 0f af 85 e4 00 00 00 imul eax, DWORD PTR h$[rbp] 0080b 39 85 84 00 00 00 cmp DWORD PTR i$[rbp], eax 00811 0f 8d 84 01 00 00 jge $LN27@stbi__psd_ ; 6632 : stbi__uint16 *pixel = (stbi__uint16 *)out + 4 * i; 00817 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 0081d c1 e0 02 shl eax, 2 00820 48 98 cdqe 00822 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 00829 48 8d 04 41 lea rax, QWORD PTR [rcx+rax*2] 0082d 48 89 85 08 02 00 00 mov QWORD PTR pixel$8[rbp], rax ; 6633 : if (pixel[3] != 0 && pixel[3] != 65535) { 00834 b8 02 00 00 00 mov eax, 2 00839 48 6b c0 03 imul rax, rax, 3 0083d 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR pixel$8[rbp] 00844 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 00848 85 c0 test eax, eax 0084a 0f 84 46 01 00 00 je $LN61@stbi__psd_ 00850 b8 02 00 00 00 mov eax, 2 00855 48 6b c0 03 imul rax, rax, 3 00859 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR pixel$8[rbp] 00860 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 00864 3d ff ff 00 00 cmp eax, 65535 ; 0000ffffH 00869 0f 84 27 01 00 00 je $LN61@stbi__psd_ ; 6634 : float a = pixel[3] / 65535.0f; 0086f b8 02 00 00 00 mov eax, 2 00874 48 6b c0 03 imul rax, rax, 3 00878 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR pixel$8[rbp] 0087f 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 00883 f3 0f 2a c0 cvtsi2ss xmm0, eax 00887 f3 0f 5e 05 00 00 00 00 divss xmm0, DWORD PTR __real@477fff00 0088f f3 0f 11 85 24 02 00 00 movss DWORD PTR a$9[rbp], xmm0 ; 6635 : float ra = 1.0f / a; 00897 f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 0089f f3 0f 5e 85 24 02 00 00 divss xmm0, DWORD PTR a$9[rbp] 008a7 f3 0f 11 85 44 02 00 00 movss DWORD PTR ra$10[rbp], xmm0 ; 6636 : float inv_a = 65535.0f * (1 - ra); 008af f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 008b7 f3 0f 5c 85 44 02 00 00 subss xmm0, DWORD PTR ra$10[rbp] 008bf f3 0f 10 0d 00 00 00 00 movss xmm1, DWORD PTR __real@477fff00 008c7 f3 0f 59 c8 mulss xmm1, xmm0 008cb 0f 28 c1 movaps xmm0, xmm1 008ce f3 0f 11 85 64 02 00 00 movss DWORD PTR inv_a$11[rbp], xmm0 ; 6637 : pixel[0] = (stbi__uint16)(pixel[0] * ra + inv_a); 008d6 b8 02 00 00 00 mov eax, 2 008db 48 6b c0 00 imul rax, rax, 0 008df 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR pixel$8[rbp] 008e6 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 008ea f3 0f 2a c0 cvtsi2ss xmm0, eax 008ee f3 0f 59 85 44 02 00 00 mulss xmm0, DWORD PTR ra$10[rbp] 008f6 f3 0f 58 85 64 02 00 00 addss xmm0, DWORD PTR inv_a$11[rbp] 008fe f3 0f 2c c0 cvttss2si eax, xmm0 00902 b9 02 00 00 00 mov ecx, 2 00907 48 6b c9 00 imul rcx, rcx, 0 0090b 48 8b 95 08 02 00 00 mov rdx, QWORD PTR pixel$8[rbp] 00912 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 6638 : pixel[1] = (stbi__uint16)(pixel[1] * ra + inv_a); 00916 b8 02 00 00 00 mov eax, 2 0091b 48 6b c0 01 imul rax, rax, 1 0091f 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR pixel$8[rbp] 00926 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 0092a f3 0f 2a c0 cvtsi2ss xmm0, eax 0092e f3 0f 59 85 44 02 00 00 mulss xmm0, DWORD PTR ra$10[rbp] 00936 f3 0f 58 85 64 02 00 00 addss xmm0, DWORD PTR inv_a$11[rbp] 0093e f3 0f 2c c0 cvttss2si eax, xmm0 00942 b9 02 00 00 00 mov ecx, 2 00947 48 6b c9 01 imul rcx, rcx, 1 0094b 48 8b 95 08 02 00 00 mov rdx, QWORD PTR pixel$8[rbp] 00952 66 89 04 0a mov WORD PTR [rdx+rcx], ax ; 6639 : pixel[2] = (stbi__uint16)(pixel[2] * ra + inv_a); 00956 b8 02 00 00 00 mov eax, 2 0095b 48 6b c0 02 imul rax, rax, 2 0095f 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR pixel$8[rbp] 00966 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] 0096a f3 0f 2a c0 cvtsi2ss xmm0, eax 0096e f3 0f 59 85 44 02 00 00 mulss xmm0, DWORD PTR ra$10[rbp] 00976 f3 0f 58 85 64 02 00 00 addss xmm0, DWORD PTR inv_a$11[rbp] 0097e f3 0f 2c c0 cvttss2si eax, xmm0 00982 b9 02 00 00 00 mov ecx, 2 00987 48 6b c9 02 imul rcx, rcx, 2 0098b 48 8b 95 08 02 00 00 mov rdx, QWORD PTR pixel$8[rbp] 00992 66 89 04 0a mov WORD PTR [rdx+rcx], ax $LN61@stbi__psd_: ; 6640 : } ; 6641 : } 00996 e9 55 fe ff ff jmp $LN26@stbi__psd_ $LN27@stbi__psd_: ; 6642 : } else { 0099b e9 b6 01 00 00 jmp $LN60@stbi__psd_ $LN59@stbi__psd_: ; 6643 : for (i = 0; i < w * h; ++i) { 009a0 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 009aa eb 0e jmp SHORT $LN31@stbi__psd_ $LN29@stbi__psd_: 009ac 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 009b2 ff c0 inc eax 009b4 89 85 84 00 00 00 mov DWORD PTR i$[rbp], eax $LN31@stbi__psd_: 009ba 8b 85 c4 00 00 00 mov eax, DWORD PTR w$[rbp] 009c0 0f af 85 e4 00 00 00 imul eax, DWORD PTR h$[rbp] 009c7 39 85 84 00 00 00 cmp DWORD PTR i$[rbp], eax 009cd 0f 8d 83 01 00 00 jge $LN30@stbi__psd_ ; 6644 : unsigned char *pixel = out + 4 * i; 009d3 8b 85 84 00 00 00 mov eax, DWORD PTR i$[rbp] 009d9 c1 e0 02 shl eax, 2 009dc 48 98 cdqe 009de 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 009e5 48 03 c8 add rcx, rax 009e8 48 8b c1 mov rax, rcx 009eb 48 89 85 88 02 00 00 mov QWORD PTR pixel$12[rbp], rax ; 6645 : if (pixel[3] != 0 && pixel[3] != 255) { 009f2 b8 01 00 00 00 mov eax, 1 009f7 48 6b c0 03 imul rax, rax, 3 009fb 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR pixel$12[rbp] 00a02 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00a06 85 c0 test eax, eax 00a08 0f 84 43 01 00 00 je $LN62@stbi__psd_ 00a0e b8 01 00 00 00 mov eax, 1 00a13 48 6b c0 03 imul rax, rax, 3 00a17 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR pixel$12[rbp] 00a1e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00a22 3d ff 00 00 00 cmp eax, 255 ; 000000ffH 00a27 0f 84 24 01 00 00 je $LN62@stbi__psd_ ; 6646 : float a = pixel[3] / 255.0f; 00a2d b8 01 00 00 00 mov eax, 1 00a32 48 6b c0 03 imul rax, rax, 3 00a36 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR pixel$12[rbp] 00a3d 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00a41 f3 0f 2a c0 cvtsi2ss xmm0, eax 00a45 f3 0f 5e 05 00 00 00 00 divss xmm0, DWORD PTR __real@437f0000 00a4d f3 0f 11 85 a4 02 00 00 movss DWORD PTR a$13[rbp], xmm0 ; 6647 : float ra = 1.0f / a; 00a55 f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 00a5d f3 0f 5e 85 a4 02 00 00 divss xmm0, DWORD PTR a$13[rbp] 00a65 f3 0f 11 85 c4 02 00 00 movss DWORD PTR ra$14[rbp], xmm0 ; 6648 : float inv_a = 255.0f * (1 - ra); 00a6d f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 00a75 f3 0f 5c 85 c4 02 00 00 subss xmm0, DWORD PTR ra$14[rbp] 00a7d f3 0f 10 0d 00 00 00 00 movss xmm1, DWORD PTR __real@437f0000 00a85 f3 0f 59 c8 mulss xmm1, xmm0 00a89 0f 28 c1 movaps xmm0, xmm1 00a8c f3 0f 11 85 e4 02 00 00 movss DWORD PTR inv_a$15[rbp], xmm0 ; 6649 : pixel[0] = (unsigned char)(pixel[0] * ra + inv_a); 00a94 b8 01 00 00 00 mov eax, 1 00a99 48 6b c0 00 imul rax, rax, 0 00a9d 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR pixel$12[rbp] 00aa4 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00aa8 f3 0f 2a c0 cvtsi2ss xmm0, eax 00aac f3 0f 59 85 c4 02 00 00 mulss xmm0, DWORD PTR ra$14[rbp] 00ab4 f3 0f 58 85 e4 02 00 00 addss xmm0, DWORD PTR inv_a$15[rbp] 00abc f3 0f 2c c0 cvttss2si eax, xmm0 00ac0 b9 01 00 00 00 mov ecx, 1 00ac5 48 6b c9 00 imul rcx, rcx, 0 00ac9 48 8b 95 88 02 00 00 mov rdx, QWORD PTR pixel$12[rbp] 00ad0 88 04 0a mov BYTE PTR [rdx+rcx], al ; 6650 : pixel[1] = (unsigned char)(pixel[1] * ra + inv_a); 00ad3 b8 01 00 00 00 mov eax, 1 00ad8 48 6b c0 01 imul rax, rax, 1 00adc 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR pixel$12[rbp] 00ae3 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00ae7 f3 0f 2a c0 cvtsi2ss xmm0, eax 00aeb f3 0f 59 85 c4 02 00 00 mulss xmm0, DWORD PTR ra$14[rbp] 00af3 f3 0f 58 85 e4 02 00 00 addss xmm0, DWORD PTR inv_a$15[rbp] 00afb f3 0f 2c c0 cvttss2si eax, xmm0 00aff b9 01 00 00 00 mov ecx, 1 00b04 48 6b c9 01 imul rcx, rcx, 1 00b08 48 8b 95 88 02 00 00 mov rdx, QWORD PTR pixel$12[rbp] 00b0f 88 04 0a mov BYTE PTR [rdx+rcx], al ; 6651 : pixel[2] = (unsigned char)(pixel[2] * ra + inv_a); 00b12 b8 01 00 00 00 mov eax, 1 00b17 48 6b c0 02 imul rax, rax, 2 00b1b 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR pixel$12[rbp] 00b22 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00b26 f3 0f 2a c0 cvtsi2ss xmm0, eax 00b2a f3 0f 59 85 c4 02 00 00 mulss xmm0, DWORD PTR ra$14[rbp] 00b32 f3 0f 58 85 e4 02 00 00 addss xmm0, DWORD PTR inv_a$15[rbp] 00b3a f3 0f 2c c0 cvttss2si eax, xmm0 00b3e b9 01 00 00 00 mov ecx, 1 00b43 48 6b c9 02 imul rcx, rcx, 2 00b47 48 8b 95 88 02 00 00 mov rdx, QWORD PTR pixel$12[rbp] 00b4e 88 04 0a mov BYTE PTR [rdx+rcx], al $LN62@stbi__psd_: ; 6652 : } ; 6653 : } 00b51 e9 56 fe ff ff jmp $LN29@stbi__psd_ $LN30@stbi__psd_: $LN60@stbi__psd_: $LN58@stbi__psd_: ; 6654 : } ; 6655 : } ; 6656 : ; 6657 : // convert to desired output format ; 6658 : if (req_comp && req_comp != 4) { 00b56 83 bd c0 04 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 00b5d 0f 84 8e 00 00 00 je $LN63@stbi__psd_ 00b63 83 bd c0 04 00 00 04 cmp DWORD PTR req_comp$[rbp], 4 00b6a 0f 84 81 00 00 00 je $LN63@stbi__psd_ ; 6659 : if (ri->bits_per_channel == 16) 00b70 48 8b 85 c8 04 00 00 mov rax, QWORD PTR ri$[rbp] 00b77 83 38 10 cmp DWORD PTR [rax], 16 00b7a 75 32 jne SHORT $LN64@stbi__psd_ ; 6660 : out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, 4, req_comp, w, 00b7c 8b 85 e4 00 00 00 mov eax, DWORD PTR h$[rbp] 00b82 89 44 24 20 mov DWORD PTR [rsp+32], eax 00b86 44 8b 8d c4 00 00 00 mov r9d, DWORD PTR w$[rbp] 00b8d 44 8b 85 c0 04 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00b94 ba 04 00 00 00 mov edx, 4 00b99 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 00ba0 e8 00 00 00 00 call stbi__convert_format16 00ba5 48 89 85 08 01 00 00 mov QWORD PTR out$[rbp], rax 00bac eb 30 jmp SHORT $LN65@stbi__psd_ $LN64@stbi__psd_: ; 6661 : h); ; 6662 : else ; 6663 : out = stbi__convert_format(out, 4, req_comp, w, h); 00bae 8b 85 e4 00 00 00 mov eax, DWORD PTR h$[rbp] 00bb4 89 44 24 20 mov DWORD PTR [rsp+32], eax 00bb8 44 8b 8d c4 00 00 00 mov r9d, DWORD PTR w$[rbp] 00bbf 44 8b 85 c0 04 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00bc6 ba 04 00 00 00 mov edx, 4 00bcb 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR out$[rbp] 00bd2 e8 00 00 00 00 call stbi__convert_format 00bd7 48 89 85 08 01 00 00 mov QWORD PTR out$[rbp], rax $LN65@stbi__psd_: ; 6664 : if (out == NULL) 00bde 48 83 bd 08 01 00 00 00 cmp QWORD PTR out$[rbp], 0 00be6 75 09 jne SHORT $LN66@stbi__psd_ ; 6665 : return out; // stbi__convert_format frees input on failure 00be8 48 8b 85 08 01 00 00 mov rax, QWORD PTR out$[rbp] 00bef eb 3c jmp SHORT $LN1@stbi__psd_ $LN66@stbi__psd_: $LN63@stbi__psd_: ; 6666 : } ; 6667 : ; 6668 : if (comp) 00bf1 48 83 bd b8 04 00 00 00 cmp QWORD PTR comp$[rbp], 0 00bf9 74 0d je SHORT $LN67@stbi__psd_ ; 6669 : *comp = 4; 00bfb 48 8b 85 b8 04 00 00 mov rax, QWORD PTR comp$[rbp] 00c02 c7 00 04 00 00 00 mov DWORD PTR [rax], 4 $LN67@stbi__psd_: ; 6670 : *y = h; 00c08 48 8b 85 b0 04 00 00 mov rax, QWORD PTR y$[rbp] 00c0f 8b 8d e4 00 00 00 mov ecx, DWORD PTR h$[rbp] 00c15 89 08 mov DWORD PTR [rax], ecx ; 6671 : *x = w; 00c17 48 8b 85 a8 04 00 00 mov rax, QWORD PTR x$[rbp] 00c1e 8b 8d c4 00 00 00 mov ecx, DWORD PTR w$[rbp] 00c24 89 08 mov DWORD PTR [rax], ecx ; 6672 : ; 6673 : return out; 00c26 48 8b 85 08 01 00 00 mov rax, QWORD PTR out$[rbp] $LN1@stbi__psd_: ; 6674 : } 00c2d 48 8d a5 88 04 00 00 lea rsp, QWORD PTR [rbp+1160] 00c34 5f pop rdi 00c35 5d pop rbp 00c36 c3 ret 0 stbi__psd_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__psd_test _TEXT SEGMENT r$ = 4 tv67 = 212 s$ = 256 stbi__psd_test PROC ; COMDAT ; 6422 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 6423 : int r = (stbi__get32be(s) == 0x38425053); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__get32be 0002c 3d 53 50 42 38 cmp eax, 943870035 ; 38425053H 00031 75 0c jne SHORT $LN3@stbi__psd_ 00033 c7 85 d4 00 00 00 01 00 00 00 mov DWORD PTR tv67[rbp], 1 0003d eb 0a jmp SHORT $LN4@stbi__psd_ $LN3@stbi__psd_: 0003f c7 85 d4 00 00 00 00 00 00 00 mov DWORD PTR tv67[rbp], 0 $LN4@stbi__psd_: 00049 8b 85 d4 00 00 00 mov eax, DWORD PTR tv67[rbp] 0004f 89 45 04 mov DWORD PTR r$[rbp], eax ; 6424 : stbi__rewind(s); 00052 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00059 e8 00 00 00 00 call stbi__rewind 0005e 90 npad 1 ; 6425 : return r; 0005f 8b 45 04 mov eax, DWORD PTR r$[rbp] ; 6426 : } 00062 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00069 5f pop rdi 0006a 5d pop rbp 0006b c3 ret 0 stbi__psd_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__tga_info _TEXT SEGMENT tga_w$ = 4 tga_h$ = 36 tga_comp$ = 68 tga_image_type$ = 100 tga_bits_per_pixel$ = 132 tga_colormap_bpp$ = 164 sz$ = 196 tga_colormap_type$ = 228 tv153 = 436 s$ = 480 x$ = 488 y$ = 496 comp$ = 504 stbi__tga_info PROC ; COMDAT ; 6084 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 6085 : int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; ; 6086 : int sz, tga_colormap_type; ; 6087 : stbi__get8(s); // discard Offset 0002f 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__get8 0003b 90 npad 1 ; 6088 : tga_colormap_type = stbi__get8(s); // colormap type 0003c 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00043 e8 00 00 00 00 call stbi__get8 00048 0f b6 c0 movzx eax, al 0004b 89 85 e4 00 00 00 mov DWORD PTR tga_colormap_type$[rbp], eax ; 6089 : if (tga_colormap_type > 1) { 00051 83 bd e4 00 00 00 01 cmp DWORD PTR tga_colormap_type$[rbp], 1 00058 7e 14 jle SHORT $LN2@stbi__tga_ ; 6090 : stbi__rewind(s); 0005a 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00061 e8 00 00 00 00 call stbi__rewind 00066 90 npad 1 ; 6091 : return 0; // only RGB or indexed allowed 00067 33 c0 xor eax, eax 00069 e9 5e 02 00 00 jmp $LN1@stbi__tga_ $LN2@stbi__tga_: ; 6092 : } ; 6093 : tga_image_type = stbi__get8(s); // image type 0006e 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00075 e8 00 00 00 00 call stbi__get8 0007a 0f b6 c0 movzx eax, al 0007d 89 45 64 mov DWORD PTR tga_image_type$[rbp], eax ; 6094 : if (tga_colormap_type == 1) { // colormapped (paletted) image 00080 83 bd e4 00 00 00 01 cmp DWORD PTR tga_colormap_type$[rbp], 1 00087 0f 85 a8 00 00 00 jne $LN3@stbi__tga_ ; 6095 : if (tga_image_type != 1 && tga_image_type != 9) { 0008d 83 7d 64 01 cmp DWORD PTR tga_image_type$[rbp], 1 00091 74 1a je SHORT $LN5@stbi__tga_ 00093 83 7d 64 09 cmp DWORD PTR tga_image_type$[rbp], 9 00097 74 14 je SHORT $LN5@stbi__tga_ ; 6096 : stbi__rewind(s); 00099 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 000a0 e8 00 00 00 00 call stbi__rewind 000a5 90 npad 1 ; 6097 : return 0; 000a6 33 c0 xor eax, eax 000a8 e9 1f 02 00 00 jmp $LN1@stbi__tga_ $LN5@stbi__tga_: ; 6098 : } ; 6099 : stbi__skip(s, 000ad ba 04 00 00 00 mov edx, 4 000b2 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 000b9 e8 00 00 00 00 call stbi__skip 000be 90 npad 1 ; 6100 : 4); // skip index of first colormap entry and number of entries ; 6101 : sz = stbi__get8(s); // check bits per palette color entry 000bf 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 000c6 e8 00 00 00 00 call stbi__get8 000cb 0f b6 c0 movzx eax, al 000ce 89 85 c4 00 00 00 mov DWORD PTR sz$[rbp], eax ; 6102 : if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) { 000d4 83 bd c4 00 00 00 08 cmp DWORD PTR sz$[rbp], 8 000db 74 38 je SHORT $LN6@stbi__tga_ 000dd 83 bd c4 00 00 00 0f cmp DWORD PTR sz$[rbp], 15 000e4 74 2f je SHORT $LN6@stbi__tga_ 000e6 83 bd c4 00 00 00 10 cmp DWORD PTR sz$[rbp], 16 000ed 74 26 je SHORT $LN6@stbi__tga_ 000ef 83 bd c4 00 00 00 18 cmp DWORD PTR sz$[rbp], 24 000f6 74 1d je SHORT $LN6@stbi__tga_ 000f8 83 bd c4 00 00 00 20 cmp DWORD PTR sz$[rbp], 32 ; 00000020H 000ff 74 14 je SHORT $LN6@stbi__tga_ ; 6103 : stbi__rewind(s); 00101 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00108 e8 00 00 00 00 call stbi__rewind 0010d 90 npad 1 ; 6104 : return 0; 0010e 33 c0 xor eax, eax 00110 e9 b7 01 00 00 jmp $LN1@stbi__tga_ $LN6@stbi__tga_: ; 6105 : } ; 6106 : stbi__skip(s, 4); // skip image x and y origin 00115 ba 04 00 00 00 mov edx, 4 0011a 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00121 e8 00 00 00 00 call stbi__skip 00126 90 npad 1 ; 6107 : tga_colormap_bpp = sz; 00127 8b 85 c4 00 00 00 mov eax, DWORD PTR sz$[rbp] 0012d 89 85 a4 00 00 00 mov DWORD PTR tga_colormap_bpp$[rbp], eax ; 6108 : } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE 00133 eb 48 jmp SHORT $LN4@stbi__tga_ $LN3@stbi__tga_: ; 6109 : if ((tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && 00135 83 7d 64 02 cmp DWORD PTR tga_image_type$[rbp], 2 00139 74 26 je SHORT $LN7@stbi__tga_ 0013b 83 7d 64 03 cmp DWORD PTR tga_image_type$[rbp], 3 0013f 74 20 je SHORT $LN7@stbi__tga_ 00141 83 7d 64 0a cmp DWORD PTR tga_image_type$[rbp], 10 00145 74 1a je SHORT $LN7@stbi__tga_ 00147 83 7d 64 0b cmp DWORD PTR tga_image_type$[rbp], 11 0014b 74 14 je SHORT $LN7@stbi__tga_ ; 6110 : (tga_image_type != 11)) { ; 6111 : stbi__rewind(s); 0014d 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00154 e8 00 00 00 00 call stbi__rewind 00159 90 npad 1 ; 6112 : return 0; // only RGB or grey allowed, +/- RLE 0015a 33 c0 xor eax, eax 0015c e9 6b 01 00 00 jmp $LN1@stbi__tga_ $LN7@stbi__tga_: ; 6113 : } ; 6114 : stbi__skip(s, 00161 ba 09 00 00 00 mov edx, 9 00166 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 0016d e8 00 00 00 00 call stbi__skip 00172 90 npad 1 ; 6115 : 9); // skip colormap specification and image x/y origin ; 6116 : tga_colormap_bpp = 0; 00173 c7 85 a4 00 00 00 00 00 00 00 mov DWORD PTR tga_colormap_bpp$[rbp], 0 $LN4@stbi__tga_: ; 6117 : } ; 6118 : tga_w = stbi__get16le(s); 0017d 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00184 e8 00 00 00 00 call stbi__get16le 00189 89 45 04 mov DWORD PTR tga_w$[rbp], eax ; 6119 : if (tga_w < 1) { 0018c 83 7d 04 01 cmp DWORD PTR tga_w$[rbp], 1 00190 7d 14 jge SHORT $LN8@stbi__tga_ ; 6120 : stbi__rewind(s); 00192 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00199 e8 00 00 00 00 call stbi__rewind 0019e 90 npad 1 ; 6121 : return 0; // test width 0019f 33 c0 xor eax, eax 001a1 e9 26 01 00 00 jmp $LN1@stbi__tga_ $LN8@stbi__tga_: ; 6122 : } ; 6123 : tga_h = stbi__get16le(s); 001a6 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 001ad e8 00 00 00 00 call stbi__get16le 001b2 89 45 24 mov DWORD PTR tga_h$[rbp], eax ; 6124 : if (tga_h < 1) { 001b5 83 7d 24 01 cmp DWORD PTR tga_h$[rbp], 1 001b9 7d 14 jge SHORT $LN9@stbi__tga_ ; 6125 : stbi__rewind(s); 001bb 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 001c2 e8 00 00 00 00 call stbi__rewind 001c7 90 npad 1 ; 6126 : return 0; // test height 001c8 33 c0 xor eax, eax 001ca e9 fd 00 00 00 jmp $LN1@stbi__tga_ $LN9@stbi__tga_: ; 6127 : } ; 6128 : tga_bits_per_pixel = stbi__get8(s); // bits per pixel 001cf 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 001d6 e8 00 00 00 00 call stbi__get8 001db 0f b6 c0 movzx eax, al 001de 89 85 84 00 00 00 mov DWORD PTR tga_bits_per_pixel$[rbp], eax ; 6129 : stbi__get8(s); // ignore alpha bits 001e4 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 001eb e8 00 00 00 00 call stbi__get8 001f0 90 npad 1 ; 6130 : if (tga_colormap_bpp != 0) { 001f1 83 bd a4 00 00 00 00 cmp DWORD PTR tga_colormap_bpp$[rbp], 0 001f8 74 3b je SHORT $LN10@stbi__tga_ ; 6131 : if ((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { 001fa 83 bd 84 00 00 00 08 cmp DWORD PTR tga_bits_per_pixel$[rbp], 8 00201 74 1d je SHORT $LN12@stbi__tga_ 00203 83 bd 84 00 00 00 10 cmp DWORD PTR tga_bits_per_pixel$[rbp], 16 0020a 74 14 je SHORT $LN12@stbi__tga_ ; 6132 : // when using a colormap, tga_bits_per_pixel is the size of the indexes ; 6133 : // I don't think anything but 8 or 16bit indexes makes sense ; 6134 : stbi__rewind(s); 0020c 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 00213 e8 00 00 00 00 call stbi__rewind 00218 90 npad 1 ; 6135 : return 0; 00219 33 c0 xor eax, eax 0021b e9 ac 00 00 00 jmp $LN1@stbi__tga_ $LN12@stbi__tga_: ; 6136 : } ; 6137 : tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); 00220 45 33 c0 xor r8d, r8d 00223 33 d2 xor edx, edx 00225 8b 8d a4 00 00 00 mov ecx, DWORD PTR tga_colormap_bpp$[rbp] 0022b e8 00 00 00 00 call stbi__tga_get_comp 00230 89 45 44 mov DWORD PTR tga_comp$[rbp], eax ; 6138 : } else { 00233 eb 39 jmp SHORT $LN11@stbi__tga_ $LN10@stbi__tga_: ; 6139 : tga_comp = stbi__tga_get_comp( 00235 83 7d 64 03 cmp DWORD PTR tga_image_type$[rbp], 3 00239 74 12 je SHORT $LN18@stbi__tga_ 0023b 83 7d 64 0b cmp DWORD PTR tga_image_type$[rbp], 11 0023f 74 0c je SHORT $LN18@stbi__tga_ 00241 c7 85 b4 01 00 00 00 00 00 00 mov DWORD PTR tv153[rbp], 0 0024b eb 0a jmp SHORT $LN19@stbi__tga_ $LN18@stbi__tga_: 0024d c7 85 b4 01 00 00 01 00 00 00 mov DWORD PTR tv153[rbp], 1 $LN19@stbi__tga_: 00257 45 33 c0 xor r8d, r8d 0025a 8b 95 b4 01 00 00 mov edx, DWORD PTR tv153[rbp] 00260 8b 8d 84 00 00 00 mov ecx, DWORD PTR tga_bits_per_pixel$[rbp] 00266 e8 00 00 00 00 call stbi__tga_get_comp 0026b 89 45 44 mov DWORD PTR tga_comp$[rbp], eax $LN11@stbi__tga_: ; 6140 : tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); ; 6141 : } ; 6142 : if (!tga_comp) { 0026e 83 7d 44 00 cmp DWORD PTR tga_comp$[rbp], 0 00272 75 11 jne SHORT $LN13@stbi__tga_ ; 6143 : stbi__rewind(s); 00274 48 8b 8d e0 01 00 00 mov rcx, QWORD PTR s$[rbp] 0027b e8 00 00 00 00 call stbi__rewind 00280 90 npad 1 ; 6144 : return 0; 00281 33 c0 xor eax, eax 00283 eb 47 jmp SHORT $LN1@stbi__tga_ $LN13@stbi__tga_: ; 6145 : } ; 6146 : if (x) 00285 48 83 bd e8 01 00 00 00 cmp QWORD PTR x$[rbp], 0 0028d 74 0c je SHORT $LN14@stbi__tga_ ; 6147 : *x = tga_w; 0028f 48 8b 85 e8 01 00 00 mov rax, QWORD PTR x$[rbp] 00296 8b 4d 04 mov ecx, DWORD PTR tga_w$[rbp] 00299 89 08 mov DWORD PTR [rax], ecx $LN14@stbi__tga_: ; 6148 : if (y) 0029b 48 83 bd f0 01 00 00 00 cmp QWORD PTR y$[rbp], 0 002a3 74 0c je SHORT $LN15@stbi__tga_ ; 6149 : *y = tga_h; 002a5 48 8b 85 f0 01 00 00 mov rax, QWORD PTR y$[rbp] 002ac 8b 4d 24 mov ecx, DWORD PTR tga_h$[rbp] 002af 89 08 mov DWORD PTR [rax], ecx $LN15@stbi__tga_: ; 6150 : if (comp) 002b1 48 83 bd f8 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 002b9 74 0c je SHORT $LN16@stbi__tga_ ; 6151 : *comp = tga_comp; 002bb 48 8b 85 f8 01 00 00 mov rax, QWORD PTR comp$[rbp] 002c2 8b 4d 44 mov ecx, DWORD PTR tga_comp$[rbp] 002c5 89 08 mov DWORD PTR [rax], ecx $LN16@stbi__tga_: ; 6152 : return 1; // seems to have passed everything 002c7 b8 01 00 00 00 mov eax, 1 $LN1@stbi__tga_: ; 6153 : } 002cc 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 002d3 5f pop rdi 002d4 5d pop rbp 002d5 c3 ret 0 stbi__tga_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__tga_load _TEXT SEGMENT tga_offset$ = 4 tga_indexed$ = 36 tga_image_type$ = 68 tga_is_RLE$ = 100 tga_palette_start$ = 132 tga_palette_len$ = 164 tga_palette_bits$ = 196 tga_x_origin$ = 228 tga_y_origin$ = 260 tga_width$ = 292 tga_height$ = 324 tga_bits_per_pixel$ = 356 tga_comp$ = 388 tga_rgb16$ = 420 tga_inverted$ = 452 tga_data$ = 488 tga_palette$ = 520 i$ = 548 j$ = 580 raw_data$ = 612 RLE_count$ = 644 RLE_repeating$ = 676 read_next_pixel$ = 708 row$5 = 740 tga_row$6 = 776 pal_entry$7 = 808 RLE_cmd$8 = 836 pal_idx$9 = 868 index1$10 = 900 index2$11 = 932 temp$12 = 964 tga_pixel$13 = 1000 temp$14 = 1028 tv192 = 1620 tv296 = 1620 tv153 = 1620 tv181 = 1624 tv219 = 1624 tv134 = 1624 tv139 = 1624 tv160 = 1624 tv171 = 1624 tv275 = 1624 tv207 = 1624 __$ArrayPad$ = 1632 s$ = 1680 x$ = 1688 y$ = 1696 comp$ = 1704 req_comp$ = 1712 ri$ = 1720 stbi__tga_load PROC ; COMDAT ; 6218 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec a8 06 00 00 sub rsp, 1704 ; 000006a8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 0e 01 00 00 mov ecx, 270 ; 0000010eH 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 c8 06 00 00 mov rcx, QWORD PTR [rsp+1736] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 60 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 6219 : // read in the TGA header stuff ; 6220 : int tga_offset = stbi__get8(s); 00059 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 00060 e8 00 00 00 00 call stbi__get8 00065 0f b6 c0 movzx eax, al 00068 89 45 04 mov DWORD PTR tga_offset$[rbp], eax ; 6221 : int tga_indexed = stbi__get8(s); 0006b 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 00072 e8 00 00 00 00 call stbi__get8 00077 0f b6 c0 movzx eax, al 0007a 89 45 24 mov DWORD PTR tga_indexed$[rbp], eax ; 6222 : int tga_image_type = stbi__get8(s); 0007d 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 00084 e8 00 00 00 00 call stbi__get8 00089 0f b6 c0 movzx eax, al 0008c 89 45 44 mov DWORD PTR tga_image_type$[rbp], eax ; 6223 : int tga_is_RLE = 0; 0008f c7 45 64 00 00 00 00 mov DWORD PTR tga_is_RLE$[rbp], 0 ; 6224 : int tga_palette_start = stbi__get16le(s); 00096 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 0009d e8 00 00 00 00 call stbi__get16le 000a2 89 85 84 00 00 00 mov DWORD PTR tga_palette_start$[rbp], eax ; 6225 : int tga_palette_len = stbi__get16le(s); 000a8 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 000af e8 00 00 00 00 call stbi__get16le 000b4 89 85 a4 00 00 00 mov DWORD PTR tga_palette_len$[rbp], eax ; 6226 : int tga_palette_bits = stbi__get8(s); 000ba 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 000c1 e8 00 00 00 00 call stbi__get8 000c6 0f b6 c0 movzx eax, al 000c9 89 85 c4 00 00 00 mov DWORD PTR tga_palette_bits$[rbp], eax ; 6227 : int tga_x_origin = stbi__get16le(s); 000cf 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 000d6 e8 00 00 00 00 call stbi__get16le 000db 89 85 e4 00 00 00 mov DWORD PTR tga_x_origin$[rbp], eax ; 6228 : int tga_y_origin = stbi__get16le(s); 000e1 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 000e8 e8 00 00 00 00 call stbi__get16le 000ed 89 85 04 01 00 00 mov DWORD PTR tga_y_origin$[rbp], eax ; 6229 : int tga_width = stbi__get16le(s); 000f3 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 000fa e8 00 00 00 00 call stbi__get16le 000ff 89 85 24 01 00 00 mov DWORD PTR tga_width$[rbp], eax ; 6230 : int tga_height = stbi__get16le(s); 00105 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 0010c e8 00 00 00 00 call stbi__get16le 00111 89 85 44 01 00 00 mov DWORD PTR tga_height$[rbp], eax ; 6231 : int tga_bits_per_pixel = stbi__get8(s); 00117 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 0011e e8 00 00 00 00 call stbi__get8 00123 0f b6 c0 movzx eax, al 00126 89 85 64 01 00 00 mov DWORD PTR tga_bits_per_pixel$[rbp], eax ; 6232 : int tga_comp, tga_rgb16 = 0; 0012c c7 85 a4 01 00 00 00 00 00 00 mov DWORD PTR tga_rgb16$[rbp], 0 ; 6233 : int tga_inverted = stbi__get8(s); 00136 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 0013d e8 00 00 00 00 call stbi__get8 00142 0f b6 c0 movzx eax, al 00145 89 85 c4 01 00 00 mov DWORD PTR tga_inverted$[rbp], eax ; 6234 : // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) ; 6235 : // image data ; 6236 : unsigned char *tga_data; ; 6237 : unsigned char *tga_palette = NULL; 0014b 48 c7 85 08 02 00 00 00 00 00 00 mov QWORD PTR tga_palette$[rbp], 0 ; 6238 : int i, j; ; 6239 : unsigned char raw_data[4] = { 0 }; 00156 48 8d 85 64 02 00 00 lea rax, QWORD PTR raw_data$[rbp] 0015d 48 8b f8 mov rdi, rax 00160 33 c0 xor eax, eax 00162 b9 04 00 00 00 mov ecx, 4 00167 f3 aa rep stosb ; 6240 : int RLE_count = 0; 00169 c7 85 84 02 00 00 00 00 00 00 mov DWORD PTR RLE_count$[rbp], 0 ; 6241 : int RLE_repeating = 0; 00173 c7 85 a4 02 00 00 00 00 00 00 mov DWORD PTR RLE_repeating$[rbp], 0 ; 6242 : int read_next_pixel = 1; 0017d c7 85 c4 02 00 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1 ; 6243 : STBI_NOTUSED(ri); ; 6244 : STBI_NOTUSED(tga_x_origin); // @TODO ; 6245 : STBI_NOTUSED(tga_y_origin); // @TODO ; 6246 : ; 6247 : if (tga_height > STBI_MAX_DIMENSIONS) 00187 81 bd 44 01 00 00 00 00 00 01 cmp DWORD PTR tga_height$[rbp], 16777216 ; 01000000H 00191 7e 34 jle SHORT $LN29@stbi__tga_ ; 6248 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 00193 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 0019a e8 00 00 00 00 call stbi__err 0019f 85 c0 test eax, eax 001a1 74 0d je SHORT $LN62@stbi__tga_ 001a3 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv134[rbp], 0 001ae eb 0b jmp SHORT $LN63@stbi__tga_ $LN62@stbi__tga_: 001b0 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv134[rbp], 0 $LN63@stbi__tga_: 001bb 48 8b 85 58 06 00 00 mov rax, QWORD PTR tv134[rbp] 001c2 e9 ce 09 00 00 jmp $LN1@stbi__tga_ $LN29@stbi__tga_: ; 6249 : if (tga_width > STBI_MAX_DIMENSIONS) 001c7 81 bd 24 01 00 00 00 00 00 01 cmp DWORD PTR tga_width$[rbp], 16777216 ; 01000000H 001d1 7e 34 jle SHORT $LN30@stbi__tga_ ; 6250 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 001d3 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 001da e8 00 00 00 00 call stbi__err 001df 85 c0 test eax, eax 001e1 74 0d je SHORT $LN64@stbi__tga_ 001e3 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv139[rbp], 0 001ee eb 0b jmp SHORT $LN65@stbi__tga_ $LN64@stbi__tga_: 001f0 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv139[rbp], 0 $LN65@stbi__tga_: 001fb 48 8b 85 58 06 00 00 mov rax, QWORD PTR tv139[rbp] 00202 e9 8e 09 00 00 jmp $LN1@stbi__tga_ $LN30@stbi__tga_: ; 6251 : ; 6252 : // do a tiny bit of precessing ; 6253 : if (tga_image_type >= 8) { 00207 83 7d 44 08 cmp DWORD PTR tga_image_type$[rbp], 8 0020b 7c 10 jl SHORT $LN31@stbi__tga_ ; 6254 : tga_image_type -= 8; 0020d 8b 45 44 mov eax, DWORD PTR tga_image_type$[rbp] 00210 83 e8 08 sub eax, 8 00213 89 45 44 mov DWORD PTR tga_image_type$[rbp], eax ; 6255 : tga_is_RLE = 1; 00216 c7 45 64 01 00 00 00 mov DWORD PTR tga_is_RLE$[rbp], 1 $LN31@stbi__tga_: ; 6256 : } ; 6257 : tga_inverted = 1 - ((tga_inverted >> 5) & 1); 0021d 8b 85 c4 01 00 00 mov eax, DWORD PTR tga_inverted$[rbp] 00223 c1 f8 05 sar eax, 5 00226 83 e0 01 and eax, 1 00229 b9 01 00 00 00 mov ecx, 1 0022e 2b c8 sub ecx, eax 00230 8b c1 mov eax, ecx 00232 89 85 c4 01 00 00 mov DWORD PTR tga_inverted$[rbp], eax ; 6258 : ; 6259 : // If I'm paletted, then I'll use the number of bits from the palette ; 6260 : if (tga_indexed) 00238 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0 0023c 74 1c je SHORT $LN32@stbi__tga_ ; 6261 : tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); 0023e 4c 8d 85 a4 01 00 00 lea r8, QWORD PTR tga_rgb16$[rbp] 00245 33 d2 xor edx, edx 00247 8b 8d c4 00 00 00 mov ecx, DWORD PTR tga_palette_bits$[rbp] 0024d e8 00 00 00 00 call stbi__tga_get_comp 00252 89 85 84 01 00 00 mov DWORD PTR tga_comp$[rbp], eax 00258 eb 3a jmp SHORT $LN33@stbi__tga_ $LN32@stbi__tga_: ; 6262 : else ; 6263 : tga_comp = 0025a 83 7d 44 03 cmp DWORD PTR tga_image_type$[rbp], 3 0025e 75 0c jne SHORT $LN66@stbi__tga_ 00260 c7 85 54 06 00 00 01 00 00 00 mov DWORD PTR tv153[rbp], 1 0026a eb 0a jmp SHORT $LN67@stbi__tga_ $LN66@stbi__tga_: 0026c c7 85 54 06 00 00 00 00 00 00 mov DWORD PTR tv153[rbp], 0 $LN67@stbi__tga_: 00276 4c 8d 85 a4 01 00 00 lea r8, QWORD PTR tga_rgb16$[rbp] 0027d 8b 95 54 06 00 00 mov edx, DWORD PTR tv153[rbp] 00283 8b 8d 64 01 00 00 mov ecx, DWORD PTR tga_bits_per_pixel$[rbp] 00289 e8 00 00 00 00 call stbi__tga_get_comp 0028e 89 85 84 01 00 00 mov DWORD PTR tga_comp$[rbp], eax $LN33@stbi__tga_: ; 6264 : stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); ; 6265 : ; 6266 : if (!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency 00294 83 bd 84 01 00 00 00 cmp DWORD PTR tga_comp$[rbp], 0 0029b 75 34 jne SHORT $LN34@stbi__tga_ ; 6267 : return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); 0029d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@DMAPJJO@bad?5format@ 002a4 e8 00 00 00 00 call stbi__err 002a9 85 c0 test eax, eax 002ab 74 0d je SHORT $LN68@stbi__tga_ 002ad 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv160[rbp], 0 002b8 eb 0b jmp SHORT $LN69@stbi__tga_ $LN68@stbi__tga_: 002ba 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv160[rbp], 0 $LN69@stbi__tga_: 002c5 48 8b 85 58 06 00 00 mov rax, QWORD PTR tv160[rbp] 002cc e9 c4 08 00 00 jmp $LN1@stbi__tga_ $LN34@stbi__tga_: ; 6268 : ; 6269 : // tga info ; 6270 : *x = tga_width; 002d1 48 8b 85 98 06 00 00 mov rax, QWORD PTR x$[rbp] 002d8 8b 8d 24 01 00 00 mov ecx, DWORD PTR tga_width$[rbp] 002de 89 08 mov DWORD PTR [rax], ecx ; 6271 : *y = tga_height; 002e0 48 8b 85 a0 06 00 00 mov rax, QWORD PTR y$[rbp] 002e7 8b 8d 44 01 00 00 mov ecx, DWORD PTR tga_height$[rbp] 002ed 89 08 mov DWORD PTR [rax], ecx ; 6272 : if (comp) 002ef 48 83 bd a8 06 00 00 00 cmp QWORD PTR comp$[rbp], 0 002f7 74 0f je SHORT $LN35@stbi__tga_ ; 6273 : *comp = tga_comp; 002f9 48 8b 85 a8 06 00 00 mov rax, QWORD PTR comp$[rbp] 00300 8b 8d 84 01 00 00 mov ecx, DWORD PTR tga_comp$[rbp] 00306 89 08 mov DWORD PTR [rax], ecx $LN35@stbi__tga_: ; 6274 : ; 6275 : if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) 00308 45 33 c9 xor r9d, r9d 0030b 44 8b 85 84 01 00 00 mov r8d, DWORD PTR tga_comp$[rbp] 00312 8b 95 44 01 00 00 mov edx, DWORD PTR tga_height$[rbp] 00318 8b 8d 24 01 00 00 mov ecx, DWORD PTR tga_width$[rbp] 0031e e8 00 00 00 00 call stbi__mad3sizes_valid 00323 85 c0 test eax, eax 00325 75 34 jne SHORT $LN36@stbi__tga_ ; 6276 : return stbi__errpuc("too large", "Corrupt TGA"); 00327 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 0032e e8 00 00 00 00 call stbi__err 00333 85 c0 test eax, eax 00335 74 0d je SHORT $LN70@stbi__tga_ 00337 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv171[rbp], 0 00342 eb 0b jmp SHORT $LN71@stbi__tga_ $LN70@stbi__tga_: 00344 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv171[rbp], 0 $LN71@stbi__tga_: 0034f 48 8b 85 58 06 00 00 mov rax, QWORD PTR tv171[rbp] 00356 e9 3a 08 00 00 jmp $LN1@stbi__tga_ $LN36@stbi__tga_: ; 6277 : ; 6278 : tga_data = (unsigned char *)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); 0035b 45 33 c9 xor r9d, r9d 0035e 44 8b 85 84 01 00 00 mov r8d, DWORD PTR tga_comp$[rbp] 00365 8b 95 44 01 00 00 mov edx, DWORD PTR tga_height$[rbp] 0036b 8b 8d 24 01 00 00 mov ecx, DWORD PTR tga_width$[rbp] 00371 e8 00 00 00 00 call stbi__malloc_mad3 00376 48 89 85 e8 01 00 00 mov QWORD PTR tga_data$[rbp], rax ; 6279 : if (!tga_data) 0037d 48 83 bd e8 01 00 00 00 cmp QWORD PTR tga_data$[rbp], 0 00385 75 34 jne SHORT $LN37@stbi__tga_ ; 6280 : return stbi__errpuc("outofmem", "Out of memory"); 00387 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0038e e8 00 00 00 00 call stbi__err 00393 85 c0 test eax, eax 00395 74 0d je SHORT $LN72@stbi__tga_ 00397 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv181[rbp], 0 003a2 eb 0b jmp SHORT $LN73@stbi__tga_ $LN72@stbi__tga_: 003a4 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv181[rbp], 0 $LN73@stbi__tga_: 003af 48 8b 85 58 06 00 00 mov rax, QWORD PTR tv181[rbp] 003b6 e9 da 07 00 00 jmp $LN1@stbi__tga_ $LN37@stbi__tga_: ; 6281 : ; 6282 : // skip to the data's starting position (offset usually = 0) ; 6283 : stbi__skip(s, tga_offset); 003bb 8b 55 04 mov edx, DWORD PTR tga_offset$[rbp] 003be 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 003c5 e8 00 00 00 00 call stbi__skip 003ca 90 npad 1 ; 6284 : ; 6285 : if (!tga_indexed && !tga_is_RLE && !tga_rgb16) { 003cb 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0 003cf 0f 85 d6 00 00 00 jne $LN38@stbi__tga_ 003d5 83 7d 64 00 cmp DWORD PTR tga_is_RLE$[rbp], 0 003d9 0f 85 cc 00 00 00 jne $LN38@stbi__tga_ 003df 83 bd a4 01 00 00 00 cmp DWORD PTR tga_rgb16$[rbp], 0 003e6 0f 85 bf 00 00 00 jne $LN38@stbi__tga_ ; 6286 : for (i = 0; i < tga_height; ++i) { 003ec c7 85 24 02 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 003f6 eb 0e jmp SHORT $LN4@stbi__tga_ $LN2@stbi__tga_: 003f8 8b 85 24 02 00 00 mov eax, DWORD PTR i$[rbp] 003fe ff c0 inc eax 00400 89 85 24 02 00 00 mov DWORD PTR i$[rbp], eax $LN4@stbi__tga_: 00406 8b 85 44 01 00 00 mov eax, DWORD PTR tga_height$[rbp] 0040c 39 85 24 02 00 00 cmp DWORD PTR i$[rbp], eax 00412 0f 8d 8e 00 00 00 jge $LN3@stbi__tga_ ; 6287 : int row = tga_inverted ? tga_height - i - 1 : i; 00418 83 bd c4 01 00 00 00 cmp DWORD PTR tga_inverted$[rbp], 0 0041f 74 1a je SHORT $LN74@stbi__tga_ 00421 8b 85 24 02 00 00 mov eax, DWORD PTR i$[rbp] 00427 8b 8d 44 01 00 00 mov ecx, DWORD PTR tga_height$[rbp] 0042d 2b c8 sub ecx, eax 0042f 8b c1 mov eax, ecx 00431 ff c8 dec eax 00433 89 85 54 06 00 00 mov DWORD PTR tv192[rbp], eax 00439 eb 0c jmp SHORT $LN75@stbi__tga_ $LN74@stbi__tga_: 0043b 8b 85 24 02 00 00 mov eax, DWORD PTR i$[rbp] 00441 89 85 54 06 00 00 mov DWORD PTR tv192[rbp], eax $LN75@stbi__tga_: 00447 8b 85 54 06 00 00 mov eax, DWORD PTR tv192[rbp] 0044d 89 85 e4 02 00 00 mov DWORD PTR row$5[rbp], eax ; 6288 : stbi_uc *tga_row = tga_data + row * tga_width * tga_comp; 00453 8b 85 e4 02 00 00 mov eax, DWORD PTR row$5[rbp] 00459 0f af 85 24 01 00 00 imul eax, DWORD PTR tga_width$[rbp] 00460 0f af 85 84 01 00 00 imul eax, DWORD PTR tga_comp$[rbp] 00467 48 98 cdqe 00469 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR tga_data$[rbp] 00470 48 03 c8 add rcx, rax 00473 48 8b c1 mov rax, rcx 00476 48 89 85 08 03 00 00 mov QWORD PTR tga_row$6[rbp], rax ; 6289 : stbi__getn(s, tga_row, tga_width * tga_comp); 0047d 8b 85 24 01 00 00 mov eax, DWORD PTR tga_width$[rbp] 00483 0f af 85 84 01 00 00 imul eax, DWORD PTR tga_comp$[rbp] 0048a 44 8b c0 mov r8d, eax 0048d 48 8b 95 08 03 00 00 mov rdx, QWORD PTR tga_row$6[rbp] 00494 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 0049b e8 00 00 00 00 call stbi__getn 004a0 90 npad 1 ; 6290 : } 004a1 e9 52 ff ff ff jmp $LN2@stbi__tga_ $LN3@stbi__tga_: ; 6291 : } else { 004a6 e9 8f 05 00 00 jmp $LN39@stbi__tga_ $LN38@stbi__tga_: ; 6292 : // do I need to load a palette? ; 6293 : if (tga_indexed) { 004ab 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0 004af 0f 84 d7 01 00 00 je $LN40@stbi__tga_ ; 6294 : if (tga_palette_len == 0) { /* you have to have at least one entry! */ 004b5 83 bd a4 00 00 00 00 cmp DWORD PTR tga_palette_len$[rbp], 0 004bc 75 42 jne SHORT $LN41@stbi__tga_ ; 6295 : STBI_FREE(tga_data); 004be 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR tga_data$[rbp] 004c5 ff 15 00 00 00 00 call QWORD PTR __imp_free 004cb 90 npad 1 ; 6296 : return stbi__errpuc("bad palette", "Corrupt TGA"); 004cc 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@ILLOCNCO@bad?5palette@ 004d3 e8 00 00 00 00 call stbi__err 004d8 85 c0 test eax, eax 004da 74 0d je SHORT $LN76@stbi__tga_ 004dc 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv207[rbp], 0 004e7 eb 0b jmp SHORT $LN77@stbi__tga_ $LN76@stbi__tga_: 004e9 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv207[rbp], 0 $LN77@stbi__tga_: 004f4 48 8b 85 58 06 00 00 mov rax, QWORD PTR tv207[rbp] 004fb e9 95 06 00 00 jmp $LN1@stbi__tga_ $LN41@stbi__tga_: ; 6297 : } ; 6298 : ; 6299 : // any data to skip? (offset usually = 0) ; 6300 : stbi__skip(s, tga_palette_start); 00500 8b 95 84 00 00 00 mov edx, DWORD PTR tga_palette_start$[rbp] 00506 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 0050d e8 00 00 00 00 call stbi__skip 00512 90 npad 1 ; 6301 : // load the palette ; 6302 : tga_palette = 00513 45 33 c0 xor r8d, r8d 00516 8b 95 84 01 00 00 mov edx, DWORD PTR tga_comp$[rbp] 0051c 8b 8d a4 00 00 00 mov ecx, DWORD PTR tga_palette_len$[rbp] 00522 e8 00 00 00 00 call stbi__malloc_mad2 00527 48 89 85 08 02 00 00 mov QWORD PTR tga_palette$[rbp], rax ; 6303 : (unsigned char *)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); ; 6304 : if (!tga_palette) { 0052e 48 83 bd 08 02 00 00 00 cmp QWORD PTR tga_palette$[rbp], 0 00536 75 42 jne SHORT $LN42@stbi__tga_ ; 6305 : STBI_FREE(tga_data); 00538 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR tga_data$[rbp] 0053f ff 15 00 00 00 00 call QWORD PTR __imp_free 00545 90 npad 1 ; 6306 : return stbi__errpuc("outofmem", "Out of memory"); 00546 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0054d e8 00 00 00 00 call stbi__err 00552 85 c0 test eax, eax 00554 74 0d je SHORT $LN78@stbi__tga_ 00556 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv219[rbp], 0 00561 eb 0b jmp SHORT $LN79@stbi__tga_ $LN78@stbi__tga_: 00563 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv219[rbp], 0 $LN79@stbi__tga_: 0056e 48 8b 85 58 06 00 00 mov rax, QWORD PTR tv219[rbp] 00575 e9 1b 06 00 00 jmp $LN1@stbi__tga_ $LN42@stbi__tga_: ; 6307 : } ; 6308 : if (tga_rgb16) { 0057a 83 bd a4 01 00 00 00 cmp DWORD PTR tga_rgb16$[rbp], 0 00581 0f 84 8e 00 00 00 je $LN43@stbi__tga_ ; 6309 : stbi_uc *pal_entry = tga_palette; 00587 48 8b 85 08 02 00 00 mov rax, QWORD PTR tga_palette$[rbp] 0058e 48 89 85 28 03 00 00 mov QWORD PTR pal_entry$7[rbp], rax ; 6310 : STBI_ASSERT(tga_comp == STBI_rgb); 00595 83 bd 84 01 00 00 03 cmp DWORD PTR tga_comp$[rbp], 3 0059c 74 1c je SHORT $LN80@stbi__tga_ 0059e 41 b8 a6 18 00 00 mov r8d, 6310 ; 000018a6H 005a4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 005ab 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ 005b2 ff 15 00 00 00 00 call QWORD PTR __imp__wassert 005b8 33 c0 xor eax, eax $LN80@stbi__tga_: ; 6311 : for (i = 0; i < tga_palette_len; ++i) { 005ba c7 85 24 02 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 005c4 eb 0e jmp SHORT $LN7@stbi__tga_ $LN5@stbi__tga_: 005c6 8b 85 24 02 00 00 mov eax, DWORD PTR i$[rbp] 005cc ff c0 inc eax 005ce 89 85 24 02 00 00 mov DWORD PTR i$[rbp], eax $LN7@stbi__tga_: 005d4 8b 85 a4 00 00 00 mov eax, DWORD PTR tga_palette_len$[rbp] 005da 39 85 24 02 00 00 cmp DWORD PTR i$[rbp], eax 005e0 7d 31 jge SHORT $LN6@stbi__tga_ ; 6312 : stbi__tga_read_rgb16(s, pal_entry); 005e2 48 8b 95 28 03 00 00 mov rdx, QWORD PTR pal_entry$7[rbp] 005e9 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 005f0 e8 00 00 00 00 call stbi__tga_read_rgb16 005f5 90 npad 1 ; 6313 : pal_entry += tga_comp; 005f6 48 63 85 84 01 00 00 movsxd rax, DWORD PTR tga_comp$[rbp] 005fd 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR pal_entry$7[rbp] 00604 48 03 c8 add rcx, rax 00607 48 8b c1 mov rax, rcx 0060a 48 89 85 28 03 00 00 mov QWORD PTR pal_entry$7[rbp], rax ; 6314 : } 00611 eb b3 jmp SHORT $LN5@stbi__tga_ $LN6@stbi__tga_: ; 6315 : } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { 00613 eb 77 jmp SHORT $LN44@stbi__tga_ $LN43@stbi__tga_: 00615 8b 85 a4 00 00 00 mov eax, DWORD PTR tga_palette_len$[rbp] 0061b 0f af 85 84 01 00 00 imul eax, DWORD PTR tga_comp$[rbp] 00622 44 8b c0 mov r8d, eax 00625 48 8b 95 08 02 00 00 mov rdx, QWORD PTR tga_palette$[rbp] 0062c 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 00633 e8 00 00 00 00 call stbi__getn 00638 85 c0 test eax, eax 0063a 75 50 jne SHORT $LN45@stbi__tga_ ; 6316 : STBI_FREE(tga_data); 0063c 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR tga_data$[rbp] 00643 ff 15 00 00 00 00 call QWORD PTR __imp_free 00649 90 npad 1 ; 6317 : STBI_FREE(tga_palette); 0064a 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tga_palette$[rbp] 00651 ff 15 00 00 00 00 call QWORD PTR __imp_free 00657 90 npad 1 ; 6318 : return stbi__errpuc("bad palette", "Corrupt TGA"); 00658 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@ILLOCNCO@bad?5palette@ 0065f e8 00 00 00 00 call stbi__err 00664 85 c0 test eax, eax 00666 74 0d je SHORT $LN81@stbi__tga_ 00668 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv275[rbp], 0 00673 eb 0b jmp SHORT $LN82@stbi__tga_ $LN81@stbi__tga_: 00675 48 c7 85 58 06 00 00 00 00 00 00 mov QWORD PTR tv275[rbp], 0 $LN82@stbi__tga_: 00680 48 8b 85 58 06 00 00 mov rax, QWORD PTR tv275[rbp] 00687 e9 09 05 00 00 jmp $LN1@stbi__tga_ $LN45@stbi__tga_: $LN44@stbi__tga_: $LN40@stbi__tga_: ; 6319 : } ; 6320 : } ; 6321 : // load the data ; 6322 : for (i = 0; i < tga_width * tga_height; ++i) { 0068c c7 85 24 02 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 00696 eb 0e jmp SHORT $LN10@stbi__tga_ $LN8@stbi__tga_: 00698 8b 85 24 02 00 00 mov eax, DWORD PTR i$[rbp] 0069e ff c0 inc eax 006a0 89 85 24 02 00 00 mov DWORD PTR i$[rbp], eax $LN10@stbi__tga_: 006a6 8b 85 24 01 00 00 mov eax, DWORD PTR tga_width$[rbp] 006ac 0f af 85 44 01 00 00 imul eax, DWORD PTR tga_height$[rbp] 006b3 39 85 24 02 00 00 cmp DWORD PTR i$[rbp], eax 006b9 0f 8d 47 02 00 00 jge $LN9@stbi__tga_ ; 6323 : // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? ; 6324 : if (tga_is_RLE) { 006bf 83 7d 64 00 cmp DWORD PTR tga_is_RLE$[rbp], 0 006c3 74 5f je SHORT $LN46@stbi__tga_ ; 6325 : if (RLE_count == 0) { 006c5 83 bd 84 02 00 00 00 cmp DWORD PTR RLE_count$[rbp], 0 006cc 75 41 jne SHORT $LN48@stbi__tga_ ; 6326 : // yep, get the next byte as a RLE command ; 6327 : int RLE_cmd = stbi__get8(s); 006ce 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 006d5 e8 00 00 00 00 call stbi__get8 006da 0f b6 c0 movzx eax, al 006dd 89 85 44 03 00 00 mov DWORD PTR RLE_cmd$8[rbp], eax ; 6328 : RLE_count = 1 + (RLE_cmd & 127); 006e3 8b 85 44 03 00 00 mov eax, DWORD PTR RLE_cmd$8[rbp] 006e9 83 e0 7f and eax, 127 ; 0000007fH 006ec ff c0 inc eax 006ee 89 85 84 02 00 00 mov DWORD PTR RLE_count$[rbp], eax ; 6329 : RLE_repeating = RLE_cmd >> 7; 006f4 8b 85 44 03 00 00 mov eax, DWORD PTR RLE_cmd$8[rbp] 006fa c1 f8 07 sar eax, 7 006fd 89 85 a4 02 00 00 mov DWORD PTR RLE_repeating$[rbp], eax ; 6330 : read_next_pixel = 1; 00703 c7 85 c4 02 00 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1 0070d eb 13 jmp SHORT $LN49@stbi__tga_ $LN48@stbi__tga_: ; 6331 : } else if (!RLE_repeating) { 0070f 83 bd a4 02 00 00 00 cmp DWORD PTR RLE_repeating$[rbp], 0 00716 75 0a jne SHORT $LN50@stbi__tga_ ; 6332 : read_next_pixel = 1; 00718 c7 85 c4 02 00 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1 $LN50@stbi__tga_: $LN49@stbi__tga_: ; 6333 : } ; 6334 : } else { 00722 eb 0a jmp SHORT $LN47@stbi__tga_ $LN46@stbi__tga_: ; 6335 : read_next_pixel = 1; 00724 c7 85 c4 02 00 00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1 $LN47@stbi__tga_: ; 6336 : } ; 6337 : // OK, if I need to read a pixel, do it now ; 6338 : if (read_next_pixel) { 0072e 83 bd c4 02 00 00 00 cmp DWORD PTR read_next_pixel$[rbp], 0 00735 0f 84 5f 01 00 00 je $LN51@stbi__tga_ ; 6339 : // load however much data we did have ; 6340 : if (tga_indexed) { 0073b 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0 0073f 0f 84 c3 00 00 00 je $LN52@stbi__tga_ ; 6341 : // read in index, then perform the lookup ; 6342 : int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : 00745 83 bd 64 01 00 00 08 cmp DWORD PTR tga_bits_per_pixel$[rbp], 8 0074c 75 17 jne SHORT $LN83@stbi__tga_ 0074e 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 00755 e8 00 00 00 00 call stbi__get8 0075a 0f b6 c0 movzx eax, al 0075d 89 85 54 06 00 00 mov DWORD PTR tv296[rbp], eax 00763 eb 12 jmp SHORT $LN84@stbi__tga_ $LN83@stbi__tga_: 00765 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 0076c e8 00 00 00 00 call stbi__get16le 00771 89 85 54 06 00 00 mov DWORD PTR tv296[rbp], eax $LN84@stbi__tga_: 00777 8b 85 54 06 00 00 mov eax, DWORD PTR tv296[rbp] 0077d 89 85 64 03 00 00 mov DWORD PTR pal_idx$9[rbp], eax ; 6343 : stbi__get16le(s); ; 6344 : if (pal_idx >= tga_palette_len) { 00783 8b 85 a4 00 00 00 mov eax, DWORD PTR tga_palette_len$[rbp] 00789 39 85 64 03 00 00 cmp DWORD PTR pal_idx$9[rbp], eax 0078f 7c 0a jl SHORT $LN54@stbi__tga_ ; 6345 : // invalid index ; 6346 : pal_idx = 0; 00791 c7 85 64 03 00 00 00 00 00 00 mov DWORD PTR pal_idx$9[rbp], 0 $LN54@stbi__tga_: ; 6347 : } ; 6348 : pal_idx *= tga_comp; 0079b 8b 85 64 03 00 00 mov eax, DWORD PTR pal_idx$9[rbp] 007a1 0f af 85 84 01 00 00 imul eax, DWORD PTR tga_comp$[rbp] 007a8 89 85 64 03 00 00 mov DWORD PTR pal_idx$9[rbp], eax ; 6349 : for (j = 0; j < tga_comp; ++j) { 007ae c7 85 44 02 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 007b8 eb 0e jmp SHORT $LN13@stbi__tga_ $LN11@stbi__tga_: 007ba 8b 85 44 02 00 00 mov eax, DWORD PTR j$[rbp] 007c0 ff c0 inc eax 007c2 89 85 44 02 00 00 mov DWORD PTR j$[rbp], eax $LN13@stbi__tga_: 007c8 8b 85 84 01 00 00 mov eax, DWORD PTR tga_comp$[rbp] 007ce 39 85 44 02 00 00 cmp DWORD PTR j$[rbp], eax 007d4 7d 2d jge SHORT $LN12@stbi__tga_ ; 6350 : raw_data[j] = tga_palette[pal_idx + j]; 007d6 8b 85 44 02 00 00 mov eax, DWORD PTR j$[rbp] 007dc 8b 8d 64 03 00 00 mov ecx, DWORD PTR pal_idx$9[rbp] 007e2 03 c8 add ecx, eax 007e4 8b c1 mov eax, ecx 007e6 48 98 cdqe 007e8 48 63 8d 44 02 00 00 movsxd rcx, DWORD PTR j$[rbp] 007ef 48 8b 95 08 02 00 00 mov rdx, QWORD PTR tga_palette$[rbp] 007f6 0f b6 04 02 movzx eax, BYTE PTR [rdx+rax] 007fa 88 84 0d 64 02 00 00 mov BYTE PTR raw_data$[rbp+rcx], al ; 6351 : } 00801 eb b7 jmp SHORT $LN11@stbi__tga_ $LN12@stbi__tga_: ; 6352 : } else if (tga_rgb16) { 00803 e9 88 00 00 00 jmp $LN53@stbi__tga_ $LN52@stbi__tga_: 00808 83 bd a4 01 00 00 00 cmp DWORD PTR tga_rgb16$[rbp], 0 0080f 74 3b je SHORT $LN55@stbi__tga_ ; 6353 : STBI_ASSERT(tga_comp == STBI_rgb); 00811 83 bd 84 01 00 00 03 cmp DWORD PTR tga_comp$[rbp], 3 00818 74 1c je SHORT $LN85@stbi__tga_ 0081a 41 b8 d1 18 00 00 mov r8d, 6353 ; 000018d1H 00820 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1GG@PCNMFHPN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@ 00827 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1CK@GOOINIO@?$AAt?$AAg?$AAa?$AA_?$AAc?$AAo?$AAm?$AAp?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AAS?$AAT?$AAB@ 0082e ff 15 00 00 00 00 call QWORD PTR __imp__wassert 00834 33 c0 xor eax, eax $LN85@stbi__tga_: ; 6354 : stbi__tga_read_rgb16(s, raw_data); 00836 48 8d 95 64 02 00 00 lea rdx, QWORD PTR raw_data$[rbp] 0083d 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 00844 e8 00 00 00 00 call stbi__tga_read_rgb16 00849 90 npad 1 ; 6355 : } else { 0084a eb 44 jmp SHORT $LN56@stbi__tga_ $LN55@stbi__tga_: ; 6356 : // read in the data raw ; 6357 : for (j = 0; j < tga_comp; ++j) { 0084c c7 85 44 02 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 00856 eb 0e jmp SHORT $LN16@stbi__tga_ $LN14@stbi__tga_: 00858 8b 85 44 02 00 00 mov eax, DWORD PTR j$[rbp] 0085e ff c0 inc eax 00860 89 85 44 02 00 00 mov DWORD PTR j$[rbp], eax $LN16@stbi__tga_: 00866 8b 85 84 01 00 00 mov eax, DWORD PTR tga_comp$[rbp] 0086c 39 85 44 02 00 00 cmp DWORD PTR j$[rbp], eax 00872 7d 1c jge SHORT $LN15@stbi__tga_ ; 6358 : raw_data[j] = stbi__get8(s); 00874 48 8b 8d 90 06 00 00 mov rcx, QWORD PTR s$[rbp] 0087b e8 00 00 00 00 call stbi__get8 00880 48 63 8d 44 02 00 00 movsxd rcx, DWORD PTR j$[rbp] 00887 88 84 0d 64 02 00 00 mov BYTE PTR raw_data$[rbp+rcx], al ; 6359 : } 0088e eb c8 jmp SHORT $LN14@stbi__tga_ $LN15@stbi__tga_: $LN56@stbi__tga_: $LN53@stbi__tga_: ; 6360 : } ; 6361 : // clear the reading flag for the next pixel ; 6362 : read_next_pixel = 0; 00890 c7 85 c4 02 00 00 00 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 0 $LN51@stbi__tga_: ; 6363 : } // end of reading a pixel ; 6364 : ; 6365 : // copy data ; 6366 : for (j = 0; j < tga_comp; ++j) 0089a c7 85 44 02 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 008a4 eb 0e jmp SHORT $LN19@stbi__tga_ $LN17@stbi__tga_: 008a6 8b 85 44 02 00 00 mov eax, DWORD PTR j$[rbp] 008ac ff c0 inc eax 008ae 89 85 44 02 00 00 mov DWORD PTR j$[rbp], eax $LN19@stbi__tga_: 008b4 8b 85 84 01 00 00 mov eax, DWORD PTR tga_comp$[rbp] 008ba 39 85 44 02 00 00 cmp DWORD PTR j$[rbp], eax 008c0 7d 31 jge SHORT $LN18@stbi__tga_ ; 6367 : tga_data[i * tga_comp + j] = raw_data[j]; 008c2 48 63 85 44 02 00 00 movsxd rax, DWORD PTR j$[rbp] 008c9 8b 8d 24 02 00 00 mov ecx, DWORD PTR i$[rbp] 008cf 0f af 8d 84 01 00 00 imul ecx, DWORD PTR tga_comp$[rbp] 008d6 03 8d 44 02 00 00 add ecx, DWORD PTR j$[rbp] 008dc 48 63 c9 movsxd rcx, ecx 008df 48 8b 95 e8 01 00 00 mov rdx, QWORD PTR tga_data$[rbp] 008e6 0f b6 84 05 64 02 00 00 movzx eax, BYTE PTR raw_data$[rbp+rax] 008ee 88 04 0a mov BYTE PTR [rdx+rcx], al 008f1 eb b3 jmp SHORT $LN17@stbi__tga_ $LN18@stbi__tga_: ; 6368 : ; 6369 : // in case we're in RLE mode, keep counting down ; 6370 : --RLE_count; 008f3 8b 85 84 02 00 00 mov eax, DWORD PTR RLE_count$[rbp] 008f9 ff c8 dec eax 008fb 89 85 84 02 00 00 mov DWORD PTR RLE_count$[rbp], eax ; 6371 : } 00901 e9 92 fd ff ff jmp $LN8@stbi__tga_ $LN9@stbi__tga_: ; 6372 : // do I need to invert the image? ; 6373 : if (tga_inverted) { 00906 83 bd c4 01 00 00 00 cmp DWORD PTR tga_inverted$[rbp], 0 0090d 0f 84 0f 01 00 00 je $LN57@stbi__tga_ ; 6374 : for (j = 0; j * 2 < tga_height; ++j) { 00913 c7 85 44 02 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 0091d eb 0e jmp SHORT $LN22@stbi__tga_ $LN20@stbi__tga_: 0091f 8b 85 44 02 00 00 mov eax, DWORD PTR j$[rbp] 00925 ff c0 inc eax 00927 89 85 44 02 00 00 mov DWORD PTR j$[rbp], eax $LN22@stbi__tga_: 0092d 8b 85 44 02 00 00 mov eax, DWORD PTR j$[rbp] 00933 d1 e0 shl eax, 1 00935 3b 85 44 01 00 00 cmp eax, DWORD PTR tga_height$[rbp] 0093b 0f 8d e1 00 00 00 jge $LN21@stbi__tga_ ; 6375 : int index1 = j * tga_width * tga_comp; 00941 8b 85 44 02 00 00 mov eax, DWORD PTR j$[rbp] 00947 0f af 85 24 01 00 00 imul eax, DWORD PTR tga_width$[rbp] 0094e 0f af 85 84 01 00 00 imul eax, DWORD PTR tga_comp$[rbp] 00955 89 85 84 03 00 00 mov DWORD PTR index1$10[rbp], eax ; 6376 : int index2 = (tga_height - 1 - j) * tga_width * tga_comp; 0095b 8b 85 44 01 00 00 mov eax, DWORD PTR tga_height$[rbp] 00961 ff c8 dec eax 00963 2b 85 44 02 00 00 sub eax, DWORD PTR j$[rbp] 00969 0f af 85 24 01 00 00 imul eax, DWORD PTR tga_width$[rbp] 00970 0f af 85 84 01 00 00 imul eax, DWORD PTR tga_comp$[rbp] 00977 89 85 a4 03 00 00 mov DWORD PTR index2$11[rbp], eax ; 6377 : for (i = tga_width * tga_comp; i > 0; --i) { 0097d 8b 85 24 01 00 00 mov eax, DWORD PTR tga_width$[rbp] 00983 0f af 85 84 01 00 00 imul eax, DWORD PTR tga_comp$[rbp] 0098a 89 85 24 02 00 00 mov DWORD PTR i$[rbp], eax 00990 eb 0e jmp SHORT $LN25@stbi__tga_ $LN23@stbi__tga_: 00992 8b 85 24 02 00 00 mov eax, DWORD PTR i$[rbp] 00998 ff c8 dec eax 0099a 89 85 24 02 00 00 mov DWORD PTR i$[rbp], eax $LN25@stbi__tga_: 009a0 83 bd 24 02 00 00 00 cmp DWORD PTR i$[rbp], 0 009a7 7e 74 jle SHORT $LN24@stbi__tga_ ; 6378 : unsigned char temp = tga_data[index1]; 009a9 48 63 85 84 03 00 00 movsxd rax, DWORD PTR index1$10[rbp] 009b0 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR tga_data$[rbp] 009b7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 009bb 88 85 c4 03 00 00 mov BYTE PTR temp$12[rbp], al ; 6379 : tga_data[index1] = tga_data[index2]; 009c1 48 63 85 a4 03 00 00 movsxd rax, DWORD PTR index2$11[rbp] 009c8 48 63 8d 84 03 00 00 movsxd rcx, DWORD PTR index1$10[rbp] 009cf 48 8b 95 e8 01 00 00 mov rdx, QWORD PTR tga_data$[rbp] 009d6 48 8b bd e8 01 00 00 mov rdi, QWORD PTR tga_data$[rbp] 009dd 0f b6 04 07 movzx eax, BYTE PTR [rdi+rax] 009e1 88 04 0a mov BYTE PTR [rdx+rcx], al ; 6380 : tga_data[index2] = temp; 009e4 48 63 85 a4 03 00 00 movsxd rax, DWORD PTR index2$11[rbp] 009eb 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR tga_data$[rbp] 009f2 0f b6 95 c4 03 00 00 movzx edx, BYTE PTR temp$12[rbp] 009f9 88 14 01 mov BYTE PTR [rcx+rax], dl ; 6381 : ++index1; 009fc 8b 85 84 03 00 00 mov eax, DWORD PTR index1$10[rbp] 00a02 ff c0 inc eax 00a04 89 85 84 03 00 00 mov DWORD PTR index1$10[rbp], eax ; 6382 : ++index2; 00a0a 8b 85 a4 03 00 00 mov eax, DWORD PTR index2$11[rbp] 00a10 ff c0 inc eax 00a12 89 85 a4 03 00 00 mov DWORD PTR index2$11[rbp], eax ; 6383 : } 00a18 e9 75 ff ff ff jmp $LN23@stbi__tga_ $LN24@stbi__tga_: ; 6384 : } 00a1d e9 fd fe ff ff jmp $LN20@stbi__tga_ $LN21@stbi__tga_: $LN57@stbi__tga_: ; 6385 : } ; 6386 : // clear my palette, if I had one ; 6387 : if (tga_palette != NULL) { 00a22 48 83 bd 08 02 00 00 00 cmp QWORD PTR tga_palette$[rbp], 0 00a2a 74 0e je SHORT $LN58@stbi__tga_ ; 6388 : STBI_FREE(tga_palette); 00a2c 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tga_palette$[rbp] 00a33 ff 15 00 00 00 00 call QWORD PTR __imp_free 00a39 90 npad 1 $LN58@stbi__tga_: $LN39@stbi__tga_: ; 6389 : } ; 6390 : } ; 6391 : ; 6392 : // swap RGB - if the source data was RGB16, it already is in the right order ; 6393 : if (tga_comp >= 3 && !tga_rgb16) { 00a3a 83 bd 84 01 00 00 03 cmp DWORD PTR tga_comp$[rbp], 3 00a41 0f 8c c5 00 00 00 jl $LN59@stbi__tga_ 00a47 83 bd a4 01 00 00 00 cmp DWORD PTR tga_rgb16$[rbp], 0 00a4e 0f 85 b8 00 00 00 jne $LN59@stbi__tga_ ; 6394 : unsigned char *tga_pixel = tga_data; 00a54 48 8b 85 e8 01 00 00 mov rax, QWORD PTR tga_data$[rbp] 00a5b 48 89 85 e8 03 00 00 mov QWORD PTR tga_pixel$13[rbp], rax ; 6395 : for (i = 0; i < tga_width * tga_height; ++i) { 00a62 c7 85 24 02 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 00a6c eb 0e jmp SHORT $LN28@stbi__tga_ $LN26@stbi__tga_: 00a6e 8b 85 24 02 00 00 mov eax, DWORD PTR i$[rbp] 00a74 ff c0 inc eax 00a76 89 85 24 02 00 00 mov DWORD PTR i$[rbp], eax $LN28@stbi__tga_: 00a7c 8b 85 24 01 00 00 mov eax, DWORD PTR tga_width$[rbp] 00a82 0f af 85 44 01 00 00 imul eax, DWORD PTR tga_height$[rbp] 00a89 39 85 24 02 00 00 cmp DWORD PTR i$[rbp], eax 00a8f 7d 7b jge SHORT $LN27@stbi__tga_ ; 6396 : unsigned char temp = tga_pixel[0]; 00a91 b8 01 00 00 00 mov eax, 1 00a96 48 6b c0 00 imul rax, rax, 0 00a9a 48 8b 8d e8 03 00 00 mov rcx, QWORD PTR tga_pixel$13[rbp] 00aa1 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 00aa5 88 85 04 04 00 00 mov BYTE PTR temp$14[rbp], al ; 6397 : tga_pixel[0] = tga_pixel[2]; 00aab b8 01 00 00 00 mov eax, 1 00ab0 48 6b c0 02 imul rax, rax, 2 00ab4 b9 01 00 00 00 mov ecx, 1 00ab9 48 6b c9 00 imul rcx, rcx, 0 00abd 48 8b 95 e8 03 00 00 mov rdx, QWORD PTR tga_pixel$13[rbp] 00ac4 48 8b bd e8 03 00 00 mov rdi, QWORD PTR tga_pixel$13[rbp] 00acb 0f b6 04 07 movzx eax, BYTE PTR [rdi+rax] 00acf 88 04 0a mov BYTE PTR [rdx+rcx], al ; 6398 : tga_pixel[2] = temp; 00ad2 b8 01 00 00 00 mov eax, 1 00ad7 48 6b c0 02 imul rax, rax, 2 00adb 48 8b 8d e8 03 00 00 mov rcx, QWORD PTR tga_pixel$13[rbp] 00ae2 0f b6 95 04 04 00 00 movzx edx, BYTE PTR temp$14[rbp] 00ae9 88 14 01 mov BYTE PTR [rcx+rax], dl ; 6399 : tga_pixel += tga_comp; 00aec 48 63 85 84 01 00 00 movsxd rax, DWORD PTR tga_comp$[rbp] 00af3 48 8b 8d e8 03 00 00 mov rcx, QWORD PTR tga_pixel$13[rbp] 00afa 48 03 c8 add rcx, rax 00afd 48 8b c1 mov rax, rcx 00b00 48 89 85 e8 03 00 00 mov QWORD PTR tga_pixel$13[rbp], rax ; 6400 : } 00b07 e9 62 ff ff ff jmp $LN26@stbi__tga_ $LN27@stbi__tga_: $LN59@stbi__tga_: ; 6401 : } ; 6402 : ; 6403 : // convert to target component count ; 6404 : if (req_comp && req_comp != tga_comp) 00b0c 83 bd b0 06 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 00b13 74 3f je SHORT $LN60@stbi__tga_ 00b15 8b 85 84 01 00 00 mov eax, DWORD PTR tga_comp$[rbp] 00b1b 39 85 b0 06 00 00 cmp DWORD PTR req_comp$[rbp], eax 00b21 74 31 je SHORT $LN60@stbi__tga_ ; 6405 : tga_data = 00b23 8b 85 44 01 00 00 mov eax, DWORD PTR tga_height$[rbp] 00b29 89 44 24 20 mov DWORD PTR [rsp+32], eax 00b2d 44 8b 8d 24 01 00 00 mov r9d, DWORD PTR tga_width$[rbp] 00b34 44 8b 85 b0 06 00 00 mov r8d, DWORD PTR req_comp$[rbp] 00b3b 8b 95 84 01 00 00 mov edx, DWORD PTR tga_comp$[rbp] 00b41 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR tga_data$[rbp] 00b48 e8 00 00 00 00 call stbi__convert_format 00b4d 48 89 85 e8 01 00 00 mov QWORD PTR tga_data$[rbp], rax $LN60@stbi__tga_: ; 6406 : stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); ; 6407 : ; 6408 : // the things I do to get rid of an error message, and yet keep ; 6409 : // Microsoft's C compilers happy... [8^( ; 6410 : tga_palette_start = tga_palette_len = tga_palette_bits = tga_x_origin = tga_y_origin = 0; 00b54 c7 85 04 01 00 00 00 00 00 00 mov DWORD PTR tga_y_origin$[rbp], 0 00b5e 8b 85 04 01 00 00 mov eax, DWORD PTR tga_y_origin$[rbp] 00b64 89 85 e4 00 00 00 mov DWORD PTR tga_x_origin$[rbp], eax 00b6a 8b 85 e4 00 00 00 mov eax, DWORD PTR tga_x_origin$[rbp] 00b70 89 85 c4 00 00 00 mov DWORD PTR tga_palette_bits$[rbp], eax 00b76 8b 85 c4 00 00 00 mov eax, DWORD PTR tga_palette_bits$[rbp] 00b7c 89 85 a4 00 00 00 mov DWORD PTR tga_palette_len$[rbp], eax 00b82 8b 85 a4 00 00 00 mov eax, DWORD PTR tga_palette_len$[rbp] 00b88 89 85 84 00 00 00 mov DWORD PTR tga_palette_start$[rbp], eax ; 6411 : STBI_NOTUSED(tga_palette_start); ; 6412 : // OK, done ; 6413 : return tga_data; 00b8e 48 8b 85 e8 01 00 00 mov rax, QWORD PTR tga_data$[rbp] $LN1@stbi__tga_: ; 6414 : } 00b95 48 8b f8 mov rdi, rax 00b98 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00b9c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__tga_load$rtcFrameData 00ba3 e8 00 00 00 00 call _RTC_CheckStackVars 00ba8 48 8b c7 mov rax, rdi 00bab 48 8b 8d 60 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00bb2 48 33 cd xor rcx, rbp 00bb5 e8 00 00 00 00 call __security_check_cookie 00bba 48 8d a5 78 06 00 00 lea rsp, QWORD PTR [rbp+1656] 00bc1 5f pop rdi 00bc2 5d pop rbp 00bc3 c3 ret 0 stbi__tga_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__tga_test _TEXT SEGMENT res$ = 4 sz$ = 36 tga_color_type$ = 68 s$ = 320 stbi__tga_test PROC ; COMDAT ; 6156 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 6157 : int res = 0; 00020 c7 45 04 00 00 00 00 mov DWORD PTR res$[rbp], 0 ; 6158 : int sz, tga_color_type; ; 6159 : stbi__get8(s); // discard Offset 00027 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0002e e8 00 00 00 00 call stbi__get8 00033 90 npad 1 ; 6160 : tga_color_type = stbi__get8(s); // color type 00034 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0003b e8 00 00 00 00 call stbi__get8 00040 0f b6 c0 movzx eax, al 00043 89 45 44 mov DWORD PTR tga_color_type$[rbp], eax ; 6161 : if (tga_color_type > 1) 00046 83 7d 44 01 cmp DWORD PTR tga_color_type$[rbp], 1 0004a 7e 05 jle SHORT $LN2@stbi__tga_ ; 6162 : goto errorEnd; // only RGB or indexed allowed 0004c e9 26 01 00 00 jmp $errorEnd$13 $LN2@stbi__tga_: ; 6163 : sz = stbi__get8(s); // image type 00051 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00058 e8 00 00 00 00 call stbi__get8 0005d 0f b6 c0 movzx eax, al 00060 89 45 24 mov DWORD PTR sz$[rbp], eax ; 6164 : if (tga_color_type == 1) { // colormapped (paletted) image 00063 83 7d 44 01 cmp DWORD PTR tga_color_type$[rbp], 1 00067 75 6c jne SHORT $LN3@stbi__tga_ ; 6165 : if (sz != 1 && sz != 9) 00069 83 7d 24 01 cmp DWORD PTR sz$[rbp], 1 0006d 74 0b je SHORT $LN5@stbi__tga_ 0006f 83 7d 24 09 cmp DWORD PTR sz$[rbp], 9 00073 74 05 je SHORT $LN5@stbi__tga_ ; 6166 : goto errorEnd; // colortype 1 demands image type 1 or 9 00075 e9 fd 00 00 00 jmp $errorEnd$13 $LN5@stbi__tga_: ; 6167 : stbi__skip(s, 0007a ba 04 00 00 00 mov edx, 4 0007f 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00086 e8 00 00 00 00 call stbi__skip 0008b 90 npad 1 ; 6168 : 4); // skip index of first colormap entry and number of entries ; 6169 : sz = stbi__get8(s); // check bits per palette color entry 0008c 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00093 e8 00 00 00 00 call stbi__get8 00098 0f b6 c0 movzx eax, al 0009b 89 45 24 mov DWORD PTR sz$[rbp], eax ; 6170 : if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) 0009e 83 7d 24 08 cmp DWORD PTR sz$[rbp], 8 000a2 74 1d je SHORT $LN6@stbi__tga_ 000a4 83 7d 24 0f cmp DWORD PTR sz$[rbp], 15 000a8 74 17 je SHORT $LN6@stbi__tga_ 000aa 83 7d 24 10 cmp DWORD PTR sz$[rbp], 16 000ae 74 11 je SHORT $LN6@stbi__tga_ 000b0 83 7d 24 18 cmp DWORD PTR sz$[rbp], 24 000b4 74 0b je SHORT $LN6@stbi__tga_ 000b6 83 7d 24 20 cmp DWORD PTR sz$[rbp], 32 ; 00000020H 000ba 74 05 je SHORT $LN6@stbi__tga_ ; 6171 : goto errorEnd; 000bc e9 b6 00 00 00 jmp $errorEnd$13 $LN6@stbi__tga_: ; 6172 : stbi__skip(s, 4); // skip image x and y origin 000c1 ba 04 00 00 00 mov edx, 4 000c6 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000cd e8 00 00 00 00 call stbi__skip 000d2 90 npad 1 ; 6173 : } else { // "normal" image w/o colormap 000d3 eb 2f jmp SHORT $LN4@stbi__tga_ $LN3@stbi__tga_: ; 6174 : if ((sz != 2) && (sz != 3) && (sz != 10) && (sz != 11)) 000d5 83 7d 24 02 cmp DWORD PTR sz$[rbp], 2 000d9 74 17 je SHORT $LN7@stbi__tga_ 000db 83 7d 24 03 cmp DWORD PTR sz$[rbp], 3 000df 74 11 je SHORT $LN7@stbi__tga_ 000e1 83 7d 24 0a cmp DWORD PTR sz$[rbp], 10 000e5 74 0b je SHORT $LN7@stbi__tga_ 000e7 83 7d 24 0b cmp DWORD PTR sz$[rbp], 11 000eb 74 05 je SHORT $LN7@stbi__tga_ ; 6175 : goto errorEnd; // only RGB or grey allowed, +/- RLE 000ed e9 85 00 00 00 jmp $errorEnd$13 $LN7@stbi__tga_: ; 6176 : stbi__skip(s, 000f2 ba 09 00 00 00 mov edx, 9 000f7 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000fe e8 00 00 00 00 call stbi__skip 00103 90 npad 1 $LN4@stbi__tga_: ; 6177 : 9); // skip colormap specification and image x/y origin ; 6178 : } ; 6179 : if (stbi__get16le(s) < 1) 00104 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0010b e8 00 00 00 00 call stbi__get16le 00110 83 f8 01 cmp eax, 1 00113 7d 02 jge SHORT $LN8@stbi__tga_ ; 6180 : goto errorEnd; // test width 00115 eb 60 jmp SHORT $errorEnd$13 $LN8@stbi__tga_: ; 6181 : if (stbi__get16le(s) < 1) 00117 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0011e e8 00 00 00 00 call stbi__get16le 00123 83 f8 01 cmp eax, 1 00126 7d 02 jge SHORT $LN9@stbi__tga_ ; 6182 : goto errorEnd; // test height 00128 eb 4d jmp SHORT $errorEnd$13 $LN9@stbi__tga_: ; 6183 : sz = stbi__get8(s); // bits per pixel 0012a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00131 e8 00 00 00 00 call stbi__get8 00136 0f b6 c0 movzx eax, al 00139 89 45 24 mov DWORD PTR sz$[rbp], eax ; 6184 : if ((tga_color_type == 1) && (sz != 8) && (sz != 16)) 0013c 83 7d 44 01 cmp DWORD PTR tga_color_type$[rbp], 1 00140 75 0e jne SHORT $LN10@stbi__tga_ 00142 83 7d 24 08 cmp DWORD PTR sz$[rbp], 8 00146 74 08 je SHORT $LN10@stbi__tga_ 00148 83 7d 24 10 cmp DWORD PTR sz$[rbp], 16 0014c 74 02 je SHORT $LN10@stbi__tga_ ; 6185 : goto errorEnd; // for colormapped images, bpp is size of an index 0014e eb 27 jmp SHORT $errorEnd$13 $LN10@stbi__tga_: ; 6186 : if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) 00150 83 7d 24 08 cmp DWORD PTR sz$[rbp], 8 00154 74 1a je SHORT $LN11@stbi__tga_ 00156 83 7d 24 0f cmp DWORD PTR sz$[rbp], 15 0015a 74 14 je SHORT $LN11@stbi__tga_ 0015c 83 7d 24 10 cmp DWORD PTR sz$[rbp], 16 00160 74 0e je SHORT $LN11@stbi__tga_ 00162 83 7d 24 18 cmp DWORD PTR sz$[rbp], 24 00166 74 08 je SHORT $LN11@stbi__tga_ 00168 83 7d 24 20 cmp DWORD PTR sz$[rbp], 32 ; 00000020H 0016c 74 02 je SHORT $LN11@stbi__tga_ ; 6187 : goto errorEnd; 0016e eb 07 jmp SHORT $errorEnd$13 $LN11@stbi__tga_: ; 6188 : ; 6189 : res = 1; // if we got this far, everything's good and we can return 1 instead of 0 00170 c7 45 04 01 00 00 00 mov DWORD PTR res$[rbp], 1 $errorEnd$13: ; 6190 : ; 6191 : errorEnd: ; 6192 : stbi__rewind(s); 00177 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0017e e8 00 00 00 00 call stbi__rewind 00183 90 npad 1 ; 6193 : return res; 00184 8b 45 04 mov eax, DWORD PTR res$[rbp] ; 6194 : } 00187 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 0018e 5f pop rdi 0018f 5d pop rbp 00190 c3 ret 0 stbi__tga_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bmp_info _TEXT SEGMENT p$ = 8 info$ = 40 tv77 = 276 __$ArrayPad$ = 280 s$ = 320 x$ = 328 y$ = 336 comp$ = 344 stbi__bmp_info PROC ; COMDAT ; 7789 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 1a 00 00 00 mov ecx, 26 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 7790 : void *p; ; 7791 : stbi__bmp_data info; ; 7792 : ; 7793 : info.all_a = 255; 00059 c7 45 44 ff 00 00 00 mov DWORD PTR info$[rbp+28], 255 ; 000000ffH ; 7794 : p = stbi__bmp_parse_header(s, &info); 00060 48 8d 55 28 lea rdx, QWORD PTR info$[rbp] 00064 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 0006b e8 00 00 00 00 call stbi__bmp_parse_header 00070 48 89 45 08 mov QWORD PTR p$[rbp], rax ; 7795 : if (p == NULL) { 00074 48 83 7d 08 00 cmp QWORD PTR p$[rbp], 0 00079 75 14 jne SHORT $LN2@stbi__bmp_ ; 7796 : stbi__rewind(s); 0007b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 00082 e8 00 00 00 00 call stbi__rewind 00087 90 npad 1 ; 7797 : return 0; 00088 33 c0 xor eax, eax 0008a e9 91 00 00 00 jmp $LN1@stbi__bmp_ $LN2@stbi__bmp_: ; 7798 : } ; 7799 : if (x) 0008f 48 83 bd 48 01 00 00 00 cmp QWORD PTR x$[rbp], 0 00097 74 12 je SHORT $LN3@stbi__bmp_ ; 7800 : *x = s->img_x; 00099 48 8b 85 48 01 00 00 mov rax, QWORD PTR x$[rbp] 000a0 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000a7 8b 09 mov ecx, DWORD PTR [rcx] 000a9 89 08 mov DWORD PTR [rax], ecx $LN3@stbi__bmp_: ; 7801 : if (y) 000ab 48 83 bd 50 01 00 00 00 cmp QWORD PTR y$[rbp], 0 000b3 74 13 je SHORT $LN4@stbi__bmp_ ; 7802 : *y = s->img_y; 000b5 48 8b 85 50 01 00 00 mov rax, QWORD PTR y$[rbp] 000bc 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR s$[rbp] 000c3 8b 49 04 mov ecx, DWORD PTR [rcx+4] 000c6 89 08 mov DWORD PTR [rax], ecx $LN4@stbi__bmp_: ; 7803 : if (comp) { 000c8 48 83 bd 58 01 00 00 00 cmp QWORD PTR comp$[rbp], 0 000d0 74 49 je SHORT $LN5@stbi__bmp_ ; 7804 : if (info.bpp == 24 && info.ma == 0xff000000) 000d2 83 7d 28 18 cmp DWORD PTR info$[rbp], 24 000d6 75 18 jne SHORT $LN6@stbi__bmp_ 000d8 81 7d 40 00 00 00 ff cmp DWORD PTR info$[rbp+24], -16777216 ; ff000000H 000df 75 0f jne SHORT $LN6@stbi__bmp_ ; 7805 : *comp = 3; 000e1 48 8b 85 58 01 00 00 mov rax, QWORD PTR comp$[rbp] 000e8 c7 00 03 00 00 00 mov DWORD PTR [rax], 3 000ee eb 2b jmp SHORT $LN7@stbi__bmp_ $LN6@stbi__bmp_: ; 7806 : else ; 7807 : *comp = info.ma ? 4 : 3; 000f0 83 7d 40 00 cmp DWORD PTR info$[rbp+24], 0 000f4 74 0c je SHORT $LN9@stbi__bmp_ 000f6 c7 85 14 01 00 00 04 00 00 00 mov DWORD PTR tv77[rbp], 4 00100 eb 0a jmp SHORT $LN10@stbi__bmp_ $LN9@stbi__bmp_: 00102 c7 85 14 01 00 00 03 00 00 00 mov DWORD PTR tv77[rbp], 3 $LN10@stbi__bmp_: 0010c 48 8b 85 58 01 00 00 mov rax, QWORD PTR comp$[rbp] 00113 8b 8d 14 01 00 00 mov ecx, DWORD PTR tv77[rbp] 00119 89 08 mov DWORD PTR [rax], ecx $LN7@stbi__bmp_: $LN5@stbi__bmp_: ; 7808 : } ; 7809 : return 1; 0011b b8 01 00 00 00 mov eax, 1 $LN1@stbi__bmp_: ; 7810 : } 00120 48 8b f8 mov rdi, rax 00123 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00127 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__bmp_info$rtcFrameData 0012e e8 00 00 00 00 call _RTC_CheckStackVars 00133 48 8b c7 mov rax, rdi 00136 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0013d 48 33 cd xor rcx, rbp 00140 e8 00 00 00 00 call __security_check_cookie 00145 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 0014c 5f pop rdi 0014d 5d pop rbp 0014e c3 ret 0 stbi__bmp_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bmp_load _TEXT SEGMENT out$ = 8 mr$ = 36 mg$ = 68 mb$ = 100 ma$ = 132 all_a$ = 164 pal$ = 208 psize$ = 1252 i$ = 1284 j$ = 1316 width$ = 1348 flip_vertically$ = 1380 pad$ = 1412 target$ = 1444 info$ = 1480 bytes_read_so_far$5 = 1540 header_limit$6 = 1572 extra_data_limit$7 = 1604 z$8 = 1636 bit_offset$9 = 1668 v$10 = 1700 color$11 = 1732 v$12 = 1764 v2$13 = 1796 rshift$14 = 1828 gshift$15 = 1860 bshift$16 = 1892 ashift$17 = 1924 rcount$18 = 1956 gcount$19 = 1988 bcount$20 = 2020 acount$21 = 2052 z$22 = 2084 easy$23 = 2116 a$24 = 2148 bpp$25 = 2180 v$26 = 2212 a$27 = 2244 t$28 = 2276 p1$29 = 2312 p2$30 = 2344 tv70 = 3316 tv188 = 3316 tv257 = 3316 tv384 = 3316 tv505 = 3316 tv522 = 3316 tv562 = 3316 tv86 = 3320 tv172 = 3320 tv179 = 3320 tv203 = 3320 tv215 = 3320 tv223 = 3320 tv80 = 3320 tv445 = 3320 tv474 = 3320 tv276 = 3320 __$ArrayPad$ = 3328 s$ = 3376 x$ = 3384 y$ = 3392 comp$ = 3400 req_comp$ = 3408 ri$ = 3416 stbi__bmp_load PROC ; COMDAT ; 5804 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 48 0d 00 00 sub rsp, 3400 ; 00000d48H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 56 02 00 00 mov ecx, 598 ; 00000256H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 68 0d 00 00 mov rcx, QWORD PTR [rsp+3432] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 00 0d 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 5805 : stbi_uc *out; ; 5806 : unsigned int mr = 0, mg = 0, mb = 0, ma = 0, all_a; 00059 c7 45 24 00 00 00 00 mov DWORD PTR mr$[rbp], 0 00060 c7 45 44 00 00 00 00 mov DWORD PTR mg$[rbp], 0 00067 c7 45 64 00 00 00 00 mov DWORD PTR mb$[rbp], 0 0006e c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR ma$[rbp], 0 ; 5807 : stbi_uc pal[256][4]; ; 5808 : int psize = 0, i, j, width; 00078 c7 85 e4 04 00 00 00 00 00 00 mov DWORD PTR psize$[rbp], 0 ; 5809 : int flip_vertically, pad, target; ; 5810 : stbi__bmp_data info; ; 5811 : STBI_NOTUSED(ri); ; 5812 : ; 5813 : info.all_a = 255; 00082 c7 85 e4 05 00 00 ff 00 00 00 mov DWORD PTR info$[rbp+28], 255 ; 000000ffH ; 5814 : if (stbi__bmp_parse_header(s, &info) == NULL) 0008c 48 8d 95 c8 05 00 00 lea rdx, QWORD PTR info$[rbp] 00093 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 0009a e8 00 00 00 00 call stbi__bmp_parse_header 0009f 48 85 c0 test rax, rax 000a2 75 07 jne SHORT $LN35@stbi__bmp_ ; 5815 : return NULL; // error code already set 000a4 33 c0 xor eax, eax 000a6 e9 67 12 00 00 jmp $LN1@stbi__bmp_ $LN35@stbi__bmp_: ; 5816 : ; 5817 : flip_vertically = ((int)s->img_y) > 0; 000ab 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 000b2 83 78 04 00 cmp DWORD PTR [rax+4], 0 000b6 7e 0c jle SHORT $LN97@stbi__bmp_ 000b8 c7 85 f4 0c 00 00 01 00 00 00 mov DWORD PTR tv70[rbp], 1 000c2 eb 0a jmp SHORT $LN98@stbi__bmp_ $LN97@stbi__bmp_: 000c4 c7 85 f4 0c 00 00 00 00 00 00 mov DWORD PTR tv70[rbp], 0 $LN98@stbi__bmp_: 000ce 8b 85 f4 0c 00 00 mov eax, DWORD PTR tv70[rbp] 000d4 89 85 64 05 00 00 mov DWORD PTR flip_vertically$[rbp], eax ; 5818 : s->img_y = abs((int)s->img_y); 000da 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 000e1 8b 48 04 mov ecx, DWORD PTR [rax+4] 000e4 e8 00 00 00 00 call abs 000e9 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 000f0 89 41 04 mov DWORD PTR [rcx+4], eax ; 5819 : ; 5820 : if (s->img_y > STBI_MAX_DIMENSIONS) 000f3 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 000fa 81 78 04 00 00 00 01 cmp DWORD PTR [rax+4], 16777216 ; 01000000H 00101 76 34 jbe SHORT $LN36@stbi__bmp_ ; 5821 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 00103 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 0010a e8 00 00 00 00 call stbi__err 0010f 85 c0 test eax, eax 00111 74 0d je SHORT $LN99@stbi__bmp_ 00113 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv80[rbp], 0 0011e eb 0b jmp SHORT $LN100@stbi__bmp_ $LN99@stbi__bmp_: 00120 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv80[rbp], 0 $LN100@stbi__bmp_: 0012b 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv80[rbp] 00132 e9 db 11 00 00 jmp $LN1@stbi__bmp_ $LN36@stbi__bmp_: ; 5822 : if (s->img_x > STBI_MAX_DIMENSIONS) 00137 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0013e 81 38 00 00 00 01 cmp DWORD PTR [rax], 16777216 ; 01000000H 00144 76 34 jbe SHORT $LN37@stbi__bmp_ ; 5823 : return stbi__errpuc("too large", "Very large image (corrupt?)"); 00146 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 0014d e8 00 00 00 00 call stbi__err 00152 85 c0 test eax, eax 00154 74 0d je SHORT $LN101@stbi__bmp_ 00156 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 00161 eb 0b jmp SHORT $LN102@stbi__bmp_ $LN101@stbi__bmp_: 00163 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN102@stbi__bmp_: 0016e 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv86[rbp] 00175 e9 98 11 00 00 jmp $LN1@stbi__bmp_ $LN37@stbi__bmp_: ; 5824 : ; 5825 : mr = info.mr; 0017a 8b 85 d4 05 00 00 mov eax, DWORD PTR info$[rbp+12] 00180 89 45 24 mov DWORD PTR mr$[rbp], eax ; 5826 : mg = info.mg; 00183 8b 85 d8 05 00 00 mov eax, DWORD PTR info$[rbp+16] 00189 89 45 44 mov DWORD PTR mg$[rbp], eax ; 5827 : mb = info.mb; 0018c 8b 85 dc 05 00 00 mov eax, DWORD PTR info$[rbp+20] 00192 89 45 64 mov DWORD PTR mb$[rbp], eax ; 5828 : ma = info.ma; 00195 8b 85 e0 05 00 00 mov eax, DWORD PTR info$[rbp+24] 0019b 89 85 84 00 00 00 mov DWORD PTR ma$[rbp], eax ; 5829 : all_a = info.all_a; 001a1 8b 85 e4 05 00 00 mov eax, DWORD PTR info$[rbp+28] 001a7 89 85 a4 00 00 00 mov DWORD PTR all_a$[rbp], eax ; 5830 : ; 5831 : if (info.hsz == 12) { 001ad 83 bd d0 05 00 00 0c cmp DWORD PTR info$[rbp+8], 12 001b4 75 2c jne SHORT $LN38@stbi__bmp_ ; 5832 : if (info.bpp < 24) 001b6 83 bd c8 05 00 00 18 cmp DWORD PTR info$[rbp], 24 001bd 7d 21 jge SHORT $LN40@stbi__bmp_ ; 5833 : psize = (info.offset - info.extra_read - 24) / 3; 001bf 8b 85 e8 05 00 00 mov eax, DWORD PTR info$[rbp+32] 001c5 8b 8d cc 05 00 00 mov ecx, DWORD PTR info$[rbp+4] 001cb 2b c8 sub ecx, eax 001cd 8b c1 mov eax, ecx 001cf 83 e8 18 sub eax, 24 001d2 99 cdq 001d3 b9 03 00 00 00 mov ecx, 3 001d8 f7 f9 idiv ecx 001da 89 85 e4 04 00 00 mov DWORD PTR psize$[rbp], eax $LN40@stbi__bmp_: ; 5834 : } else { 001e0 eb 28 jmp SHORT $LN39@stbi__bmp_ $LN38@stbi__bmp_: ; 5835 : if (info.bpp < 16) 001e2 83 bd c8 05 00 00 10 cmp DWORD PTR info$[rbp], 16 001e9 7d 1f jge SHORT $LN41@stbi__bmp_ ; 5836 : psize = (info.offset - info.extra_read - info.hsz) >> 2; 001eb 8b 85 e8 05 00 00 mov eax, DWORD PTR info$[rbp+32] 001f1 8b 8d cc 05 00 00 mov ecx, DWORD PTR info$[rbp+4] 001f7 2b c8 sub ecx, eax 001f9 8b c1 mov eax, ecx 001fb 2b 85 d0 05 00 00 sub eax, DWORD PTR info$[rbp+8] 00201 c1 f8 02 sar eax, 2 00204 89 85 e4 04 00 00 mov DWORD PTR psize$[rbp], eax $LN41@stbi__bmp_: $LN39@stbi__bmp_: ; 5837 : } ; 5838 : if (psize == 0) { 0020a 83 bd e4 04 00 00 00 cmp DWORD PTR psize$[rbp], 0 00211 0f 85 0c 01 00 00 jne $LN42@stbi__bmp_ ; 5839 : // accept some number of extra bytes after the header, but if the offset points either to before ; 5840 : // the header ends or implies a large amount of extra data, reject the file as malformed ; 5841 : int bytes_read_so_far = 00217 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0021e 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00225 48 8b 89 d0 00 00 00 mov rcx, QWORD PTR [rcx+208] 0022c 48 8b 80 c0 00 00 00 mov rax, QWORD PTR [rax+192] 00233 48 2b c1 sub rax, rcx 00236 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 0023d 03 81 b8 00 00 00 add eax, DWORD PTR [rcx+184] 00243 89 85 04 06 00 00 mov DWORD PTR bytes_read_so_far$5[rbp], eax ; 5842 : s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original); ; 5843 : int header_limit = 1024; // max we actually read is below 256 bytes currently. 00249 c7 85 24 06 00 00 00 04 00 00 mov DWORD PTR header_limit$6[rbp], 1024 ; 00000400H ; 5844 : int extra_data_limit = 00253 c7 85 44 06 00 00 00 04 00 00 mov DWORD PTR extra_data_limit$7[rbp], 1024 ; 00000400H ; 5845 : 256 * ; 5846 : 4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size. ; 5847 : if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) { 0025d 83 bd 04 06 00 00 00 cmp DWORD PTR bytes_read_so_far$5[rbp], 0 00264 7e 0e jle SHORT $LN44@stbi__bmp_ 00266 8b 85 24 06 00 00 mov eax, DWORD PTR header_limit$6[rbp] 0026c 39 85 04 06 00 00 cmp DWORD PTR bytes_read_so_far$5[rbp], eax 00272 7e 34 jle SHORT $LN43@stbi__bmp_ $LN44@stbi__bmp_: ; 5848 : return stbi__errpuc("bad header", "Corrupt BMP"); 00274 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@PJHPAMCH@bad?5header@ 0027b e8 00 00 00 00 call stbi__err 00280 85 c0 test eax, eax 00282 74 0d je SHORT $LN103@stbi__bmp_ 00284 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv172[rbp], 0 0028f eb 0b jmp SHORT $LN104@stbi__bmp_ $LN103@stbi__bmp_: 00291 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv172[rbp], 0 $LN104@stbi__bmp_: 0029c 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv172[rbp] 002a3 e9 6a 10 00 00 jmp $LN1@stbi__bmp_ $LN43@stbi__bmp_: ; 5849 : } ; 5850 : // we established that bytes_read_so_far is positive and sensible. ; 5851 : // the first half of this test rejects offsets that are either too small positives, or ; 5852 : // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn ; 5853 : // ensures the number computed in the second half of the test can't overflow. ; 5854 : if (info.offset < bytes_read_so_far || 002a8 8b 85 04 06 00 00 mov eax, DWORD PTR bytes_read_so_far$5[rbp] 002ae 39 85 cc 05 00 00 cmp DWORD PTR info$[rbp+4], eax 002b4 7c 18 jl SHORT $LN47@stbi__bmp_ 002b6 8b 85 04 06 00 00 mov eax, DWORD PTR bytes_read_so_far$5[rbp] 002bc 8b 8d cc 05 00 00 mov ecx, DWORD PTR info$[rbp+4] 002c2 2b c8 sub ecx, eax 002c4 8b c1 mov eax, ecx 002c6 3b 85 44 06 00 00 cmp eax, DWORD PTR extra_data_limit$7[rbp] 002cc 7e 36 jle SHORT $LN45@stbi__bmp_ $LN47@stbi__bmp_: ; 5855 : info.offset - bytes_read_so_far > extra_data_limit) { ; 5856 : return stbi__errpuc("bad offset", "Corrupt BMP"); 002ce 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@JDPIFELH@bad?5offset@ 002d5 e8 00 00 00 00 call stbi__err 002da 85 c0 test eax, eax 002dc 74 0d je SHORT $LN105@stbi__bmp_ 002de 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv179[rbp], 0 002e9 eb 0b jmp SHORT $LN106@stbi__bmp_ $LN105@stbi__bmp_: 002eb 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv179[rbp], 0 $LN106@stbi__bmp_: 002f6 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv179[rbp] 002fd e9 10 10 00 00 jmp $LN1@stbi__bmp_ ; 5857 : } else { 00302 eb 1f jmp SHORT $LN46@stbi__bmp_ $LN45@stbi__bmp_: ; 5858 : stbi__skip(s, info.offset - bytes_read_so_far); 00304 8b 85 04 06 00 00 mov eax, DWORD PTR bytes_read_so_far$5[rbp] 0030a 8b 8d cc 05 00 00 mov ecx, DWORD PTR info$[rbp+4] 00310 2b c8 sub ecx, eax 00312 8b c1 mov eax, ecx 00314 8b d0 mov edx, eax 00316 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 0031d e8 00 00 00 00 call stbi__skip 00322 90 npad 1 $LN46@stbi__bmp_: $LN42@stbi__bmp_: ; 5859 : } ; 5860 : } ; 5861 : ; 5862 : if (info.bpp == 24 && ma == 0xff000000) 00323 83 bd c8 05 00 00 18 cmp DWORD PTR info$[rbp], 24 0032a 75 1c jne SHORT $LN48@stbi__bmp_ 0032c 81 bd 84 00 00 00 00 00 00 ff cmp DWORD PTR ma$[rbp], -16777216 ; ff000000H 00336 75 10 jne SHORT $LN48@stbi__bmp_ ; 5863 : s->img_n = 3; 00338 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0033f c7 40 08 03 00 00 00 mov DWORD PTR [rax+8], 3 00346 eb 2f jmp SHORT $LN49@stbi__bmp_ $LN48@stbi__bmp_: ; 5864 : else ; 5865 : s->img_n = ma ? 4 : 3; 00348 83 bd 84 00 00 00 00 cmp DWORD PTR ma$[rbp], 0 0034f 74 0c je SHORT $LN107@stbi__bmp_ 00351 c7 85 f4 0c 00 00 04 00 00 00 mov DWORD PTR tv188[rbp], 4 0035b eb 0a jmp SHORT $LN108@stbi__bmp_ $LN107@stbi__bmp_: 0035d c7 85 f4 0c 00 00 03 00 00 00 mov DWORD PTR tv188[rbp], 3 $LN108@stbi__bmp_: 00367 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0036e 8b 8d f4 0c 00 00 mov ecx, DWORD PTR tv188[rbp] 00374 89 48 08 mov DWORD PTR [rax+8], ecx $LN49@stbi__bmp_: ; 5866 : if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 00377 83 bd 50 0d 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 0037e 74 17 je SHORT $LN50@stbi__bmp_ 00380 83 bd 50 0d 00 00 03 cmp DWORD PTR req_comp$[rbp], 3 00387 7c 0e jl SHORT $LN50@stbi__bmp_ ; 5867 : target = req_comp; 00389 8b 85 50 0d 00 00 mov eax, DWORD PTR req_comp$[rbp] 0038f 89 85 a4 05 00 00 mov DWORD PTR target$[rbp], eax 00395 eb 10 jmp SHORT $LN51@stbi__bmp_ $LN50@stbi__bmp_: ; 5868 : else ; 5869 : target = s->img_n; // if they want monochrome, we'll post-convert 00397 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0039e 8b 40 08 mov eax, DWORD PTR [rax+8] 003a1 89 85 a4 05 00 00 mov DWORD PTR target$[rbp], eax $LN51@stbi__bmp_: ; 5870 : ; 5871 : // sanity-check size ; 5872 : if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) 003a7 45 33 c9 xor r9d, r9d 003aa 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 003b1 44 8b 40 04 mov r8d, DWORD PTR [rax+4] 003b5 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 003bc 8b 10 mov edx, DWORD PTR [rax] 003be 8b 8d a4 05 00 00 mov ecx, DWORD PTR target$[rbp] 003c4 e8 00 00 00 00 call stbi__mad3sizes_valid 003c9 85 c0 test eax, eax 003cb 75 34 jne SHORT $LN52@stbi__bmp_ ; 5873 : return stbi__errpuc("too large", "Corrupt BMP"); 003cd 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@ 003d4 e8 00 00 00 00 call stbi__err 003d9 85 c0 test eax, eax 003db 74 0d je SHORT $LN109@stbi__bmp_ 003dd 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv203[rbp], 0 003e8 eb 0b jmp SHORT $LN110@stbi__bmp_ $LN109@stbi__bmp_: 003ea 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv203[rbp], 0 $LN110@stbi__bmp_: 003f5 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv203[rbp] 003fc e9 11 0f 00 00 jmp $LN1@stbi__bmp_ $LN52@stbi__bmp_: ; 5874 : ; 5875 : out = (stbi_uc *)stbi__malloc_mad3(target, s->img_x, s->img_y, 0); 00401 45 33 c9 xor r9d, r9d 00404 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0040b 44 8b 40 04 mov r8d, DWORD PTR [rax+4] 0040f 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00416 8b 10 mov edx, DWORD PTR [rax] 00418 8b 8d a4 05 00 00 mov ecx, DWORD PTR target$[rbp] 0041e e8 00 00 00 00 call stbi__malloc_mad3 00423 48 89 45 08 mov QWORD PTR out$[rbp], rax ; 5876 : if (!out) 00427 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0 0042c 75 34 jne SHORT $LN53@stbi__bmp_ ; 5877 : return stbi__errpuc("outofmem", "Out of memory"); 0042e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 00435 e8 00 00 00 00 call stbi__err 0043a 85 c0 test eax, eax 0043c 74 0d je SHORT $LN111@stbi__bmp_ 0043e 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv215[rbp], 0 00449 eb 0b jmp SHORT $LN112@stbi__bmp_ $LN111@stbi__bmp_: 0044b 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv215[rbp], 0 $LN112@stbi__bmp_: 00456 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv215[rbp] 0045d e9 b0 0e 00 00 jmp $LN1@stbi__bmp_ $LN53@stbi__bmp_: ; 5878 : if (info.bpp < 16) { 00462 83 bd c8 05 00 00 10 cmp DWORD PTR info$[rbp], 16 00469 0f 8d ce 06 00 00 jge $LN54@stbi__bmp_ ; 5879 : int z = 0; 0046f c7 85 64 06 00 00 00 00 00 00 mov DWORD PTR z$8[rbp], 0 ; 5880 : if (psize == 0 || psize > 256) { 00479 83 bd e4 04 00 00 00 cmp DWORD PTR psize$[rbp], 0 00480 74 0c je SHORT $LN57@stbi__bmp_ 00482 81 bd e4 04 00 00 00 01 00 00 cmp DWORD PTR psize$[rbp], 256 ; 00000100H 0048c 7e 3f jle SHORT $LN56@stbi__bmp_ $LN57@stbi__bmp_: ; 5881 : STBI_FREE(out); 0048e 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00492 ff 15 00 00 00 00 call QWORD PTR __imp_free 00498 90 npad 1 ; 5882 : return stbi__errpuc("invalid", "Corrupt BMP"); 00499 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07MALOAKCI@invalid@ 004a0 e8 00 00 00 00 call stbi__err 004a5 85 c0 test eax, eax 004a7 74 0d je SHORT $LN113@stbi__bmp_ 004a9 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv223[rbp], 0 004b4 eb 0b jmp SHORT $LN114@stbi__bmp_ $LN113@stbi__bmp_: 004b6 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv223[rbp], 0 $LN114@stbi__bmp_: 004c1 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv223[rbp] 004c8 e9 45 0e 00 00 jmp $LN1@stbi__bmp_ $LN56@stbi__bmp_: ; 5883 : } ; 5884 : for (i = 0; i < psize; ++i) { 004cd c7 85 04 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 004d7 eb 0e jmp SHORT $LN4@stbi__bmp_ $LN2@stbi__bmp_: 004d9 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 004df ff c0 inc eax 004e1 89 85 04 05 00 00 mov DWORD PTR i$[rbp], eax $LN4@stbi__bmp_: 004e7 8b 85 e4 04 00 00 mov eax, DWORD PTR psize$[rbp] 004ed 39 85 04 05 00 00 cmp DWORD PTR i$[rbp], eax 004f3 0f 8d ac 00 00 00 jge $LN3@stbi__bmp_ ; 5885 : pal[i][2] = stbi__get8(s); 004f9 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00500 e8 00 00 00 00 call stbi__get8 00505 48 63 8d 04 05 00 00 movsxd rcx, DWORD PTR i$[rbp] 0050c 48 8d 8c 8d d0 00 00 00 lea rcx, QWORD PTR pal$[rbp+rcx*4] 00514 ba 01 00 00 00 mov edx, 1 00519 48 6b d2 02 imul rdx, rdx, 2 0051d 88 04 11 mov BYTE PTR [rcx+rdx], al ; 5886 : pal[i][1] = stbi__get8(s); 00520 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00527 e8 00 00 00 00 call stbi__get8 0052c 48 63 8d 04 05 00 00 movsxd rcx, DWORD PTR i$[rbp] 00533 48 8d 8c 8d d0 00 00 00 lea rcx, QWORD PTR pal$[rbp+rcx*4] 0053b ba 01 00 00 00 mov edx, 1 00540 48 6b d2 01 imul rdx, rdx, 1 00544 88 04 11 mov BYTE PTR [rcx+rdx], al ; 5887 : pal[i][0] = stbi__get8(s); 00547 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 0054e e8 00 00 00 00 call stbi__get8 00553 48 63 8d 04 05 00 00 movsxd rcx, DWORD PTR i$[rbp] 0055a 48 8d 8c 8d d0 00 00 00 lea rcx, QWORD PTR pal$[rbp+rcx*4] 00562 ba 01 00 00 00 mov edx, 1 00567 48 6b d2 00 imul rdx, rdx, 0 0056b 88 04 11 mov BYTE PTR [rcx+rdx], al ; 5888 : if (info.hsz != 12) 0056e 83 bd d0 05 00 00 0c cmp DWORD PTR info$[rbp+8], 12 00575 74 0d je SHORT $LN58@stbi__bmp_ ; 5889 : stbi__get8(s); 00577 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 0057e e8 00 00 00 00 call stbi__get8 00583 90 npad 1 $LN58@stbi__bmp_: ; 5890 : pal[i][3] = 255; 00584 48 63 85 04 05 00 00 movsxd rax, DWORD PTR i$[rbp] 0058b 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 00593 b9 01 00 00 00 mov ecx, 1 00598 48 6b c9 03 imul rcx, rcx, 3 0059c c6 04 08 ff mov BYTE PTR [rax+rcx], 255 ; 000000ffH ; 5891 : } 005a0 e9 34 ff ff ff jmp $LN2@stbi__bmp_ $LN3@stbi__bmp_: ; 5892 : stbi__skip(s, info.offset - info.extra_read - info.hsz - 005a5 83 bd d0 05 00 00 0c cmp DWORD PTR info$[rbp+8], 12 005ac 75 0c jne SHORT $LN115@stbi__bmp_ 005ae c7 85 f4 0c 00 00 03 00 00 00 mov DWORD PTR tv257[rbp], 3 005b8 eb 0a jmp SHORT $LN116@stbi__bmp_ $LN115@stbi__bmp_: 005ba c7 85 f4 0c 00 00 04 00 00 00 mov DWORD PTR tv257[rbp], 4 $LN116@stbi__bmp_: 005c4 8b 85 e8 05 00 00 mov eax, DWORD PTR info$[rbp+32] 005ca 8b 8d cc 05 00 00 mov ecx, DWORD PTR info$[rbp+4] 005d0 2b c8 sub ecx, eax 005d2 8b c1 mov eax, ecx 005d4 2b 85 d0 05 00 00 sub eax, DWORD PTR info$[rbp+8] 005da 8b 8d e4 04 00 00 mov ecx, DWORD PTR psize$[rbp] 005e0 0f af 8d f4 0c 00 00 imul ecx, DWORD PTR tv257[rbp] 005e7 2b c1 sub eax, ecx 005e9 8b d0 mov edx, eax 005eb 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 005f2 e8 00 00 00 00 call stbi__skip 005f7 90 npad 1 ; 5893 : psize * (info.hsz == 12 ? 3 : 4)); ; 5894 : if (info.bpp == 1) 005f8 83 bd c8 05 00 00 01 cmp DWORD PTR info$[rbp], 1 005ff 75 17 jne SHORT $LN59@stbi__bmp_ ; 5895 : width = (s->img_x + 7) >> 3; 00601 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00608 8b 00 mov eax, DWORD PTR [rax] 0060a 83 c0 07 add eax, 7 0060d c1 e8 03 shr eax, 3 00610 89 85 44 05 00 00 mov DWORD PTR width$[rbp], eax 00616 eb 77 jmp SHORT $LN60@stbi__bmp_ $LN59@stbi__bmp_: ; 5896 : else if (info.bpp == 4) 00618 83 bd c8 05 00 00 04 cmp DWORD PTR info$[rbp], 4 0061f 75 15 jne SHORT $LN61@stbi__bmp_ ; 5897 : width = (s->img_x + 1) >> 1; 00621 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00628 8b 00 mov eax, DWORD PTR [rax] 0062a ff c0 inc eax 0062c d1 e8 shr eax, 1 0062e 89 85 44 05 00 00 mov DWORD PTR width$[rbp], eax 00634 eb 59 jmp SHORT $LN62@stbi__bmp_ $LN61@stbi__bmp_: ; 5898 : else if (info.bpp == 8) 00636 83 bd c8 05 00 00 08 cmp DWORD PTR info$[rbp], 8 0063d 75 11 jne SHORT $LN63@stbi__bmp_ ; 5899 : width = s->img_x; 0063f 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00646 8b 00 mov eax, DWORD PTR [rax] 00648 89 85 44 05 00 00 mov DWORD PTR width$[rbp], eax 0064e eb 3f jmp SHORT $LN64@stbi__bmp_ $LN63@stbi__bmp_: ; 5900 : else { ; 5901 : STBI_FREE(out); 00650 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00654 ff 15 00 00 00 00 call QWORD PTR __imp_free 0065a 90 npad 1 ; 5902 : return stbi__errpuc("bad bpp", "Corrupt BMP"); 0065b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07JNJHIMGH@bad?5bpp@ 00662 e8 00 00 00 00 call stbi__err 00667 85 c0 test eax, eax 00669 74 0d je SHORT $LN117@stbi__bmp_ 0066b 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv276[rbp], 0 00676 eb 0b jmp SHORT $LN118@stbi__bmp_ $LN117@stbi__bmp_: 00678 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv276[rbp], 0 $LN118@stbi__bmp_: 00683 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv276[rbp] 0068a e9 83 0c 00 00 jmp $LN1@stbi__bmp_ $LN64@stbi__bmp_: $LN62@stbi__bmp_: $LN60@stbi__bmp_: ; 5903 : } ; 5904 : pad = (-width) & 3; 0068f 8b 85 44 05 00 00 mov eax, DWORD PTR width$[rbp] 00695 f7 d8 neg eax 00697 83 e0 03 and eax, 3 0069a 89 85 84 05 00 00 mov DWORD PTR pad$[rbp], eax ; 5905 : if (info.bpp == 1) { 006a0 83 bd c8 05 00 00 01 cmp DWORD PTR info$[rbp], 1 006a7 0f 85 d6 01 00 00 jne $LN65@stbi__bmp_ ; 5906 : for (j = 0; j < (int)s->img_y; ++j) { 006ad c7 85 24 05 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 006b7 eb 0e jmp SHORT $LN7@stbi__bmp_ $LN5@stbi__bmp_: 006b9 8b 85 24 05 00 00 mov eax, DWORD PTR j$[rbp] 006bf ff c0 inc eax 006c1 89 85 24 05 00 00 mov DWORD PTR j$[rbp], eax $LN7@stbi__bmp_: 006c7 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 006ce 8b 40 04 mov eax, DWORD PTR [rax+4] 006d1 39 85 24 05 00 00 cmp DWORD PTR j$[rbp], eax 006d7 0f 8d a1 01 00 00 jge $LN6@stbi__bmp_ ; 5907 : int bit_offset = 7, v = stbi__get8(s); 006dd c7 85 84 06 00 00 07 00 00 00 mov DWORD PTR bit_offset$9[rbp], 7 006e7 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 006ee e8 00 00 00 00 call stbi__get8 006f3 0f b6 c0 movzx eax, al 006f6 89 85 a4 06 00 00 mov DWORD PTR v$10[rbp], eax ; 5908 : for (i = 0; i < (int)s->img_x; ++i) { 006fc c7 85 04 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 00706 eb 0e jmp SHORT $LN10@stbi__bmp_ $LN8@stbi__bmp_: 00708 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 0070e ff c0 inc eax 00710 89 85 04 05 00 00 mov DWORD PTR i$[rbp], eax $LN10@stbi__bmp_: 00716 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0071d 8b 00 mov eax, DWORD PTR [rax] 0071f 39 85 04 05 00 00 cmp DWORD PTR i$[rbp], eax 00725 0f 8d 3b 01 00 00 jge $LN9@stbi__bmp_ ; 5909 : int color = (v >> bit_offset) & 0x1; 0072b 8b 85 84 06 00 00 mov eax, DWORD PTR bit_offset$9[rbp] 00731 0f b6 c8 movzx ecx, al 00734 8b 85 a4 06 00 00 mov eax, DWORD PTR v$10[rbp] 0073a d3 f8 sar eax, cl 0073c 83 e0 01 and eax, 1 0073f 89 85 c4 06 00 00 mov DWORD PTR color$11[rbp], eax ; 5910 : out[z++] = pal[color][0]; 00745 48 63 85 c4 06 00 00 movsxd rax, DWORD PTR color$11[rbp] 0074c 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 00754 b9 01 00 00 00 mov ecx, 1 00759 48 6b c9 00 imul rcx, rcx, 0 0075d 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 00764 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 00768 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 0076c 41 88 04 10 mov BYTE PTR [r8+rdx], al 00770 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 00776 ff c0 inc eax 00778 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5911 : out[z++] = pal[color][1]; 0077e 48 63 85 c4 06 00 00 movsxd rax, DWORD PTR color$11[rbp] 00785 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 0078d b9 01 00 00 00 mov ecx, 1 00792 48 6b c9 01 imul rcx, rcx, 1 00796 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 0079d 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 007a1 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 007a5 41 88 04 10 mov BYTE PTR [r8+rdx], al 007a9 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 007af ff c0 inc eax 007b1 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5912 : out[z++] = pal[color][2]; 007b7 48 63 85 c4 06 00 00 movsxd rax, DWORD PTR color$11[rbp] 007be 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 007c6 b9 01 00 00 00 mov ecx, 1 007cb 48 6b c9 02 imul rcx, rcx, 2 007cf 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 007d6 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 007da 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 007de 41 88 04 10 mov BYTE PTR [r8+rdx], al 007e2 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 007e8 ff c0 inc eax 007ea 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5913 : if (target == 4) 007f0 83 bd a4 05 00 00 04 cmp DWORD PTR target$[rbp], 4 007f7 75 1d jne SHORT $LN67@stbi__bmp_ ; 5914 : out[z++] = 255; 007f9 48 63 85 64 06 00 00 movsxd rax, DWORD PTR z$8[rbp] 00800 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00804 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 00808 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 0080e ff c0 inc eax 00810 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax $LN67@stbi__bmp_: ; 5915 : if (i + 1 == (int)s->img_x) 00816 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 0081c ff c0 inc eax 0081e 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00825 3b 01 cmp eax, DWORD PTR [rcx] 00827 75 02 jne SHORT $LN68@stbi__bmp_ ; 5916 : break; 00829 eb 3b jmp SHORT $LN9@stbi__bmp_ $LN68@stbi__bmp_: ; 5917 : if ((--bit_offset) < 0) { 0082b 8b 85 84 06 00 00 mov eax, DWORD PTR bit_offset$9[rbp] 00831 ff c8 dec eax 00833 89 85 84 06 00 00 mov DWORD PTR bit_offset$9[rbp], eax 00839 83 bd 84 06 00 00 00 cmp DWORD PTR bit_offset$9[rbp], 0 00840 7d 1f jge SHORT $LN69@stbi__bmp_ ; 5918 : bit_offset = 7; 00842 c7 85 84 06 00 00 07 00 00 00 mov DWORD PTR bit_offset$9[rbp], 7 ; 5919 : v = stbi__get8(s); 0084c 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00853 e8 00 00 00 00 call stbi__get8 00858 0f b6 c0 movzx eax, al 0085b 89 85 a4 06 00 00 mov DWORD PTR v$10[rbp], eax $LN69@stbi__bmp_: ; 5920 : } ; 5921 : } 00861 e9 a2 fe ff ff jmp $LN8@stbi__bmp_ $LN9@stbi__bmp_: ; 5922 : stbi__skip(s, pad); 00866 8b 95 84 05 00 00 mov edx, DWORD PTR pad$[rbp] 0086c 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00873 e8 00 00 00 00 call stbi__skip 00878 90 npad 1 ; 5923 : } 00879 e9 3b fe ff ff jmp $LN5@stbi__bmp_ $LN6@stbi__bmp_: ; 5924 : } else { 0087e e9 b5 02 00 00 jmp $LN66@stbi__bmp_ $LN65@stbi__bmp_: ; 5925 : for (j = 0; j < (int)s->img_y; ++j) { 00883 c7 85 24 05 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 0088d eb 0e jmp SHORT $LN13@stbi__bmp_ $LN11@stbi__bmp_: 0088f 8b 85 24 05 00 00 mov eax, DWORD PTR j$[rbp] 00895 ff c0 inc eax 00897 89 85 24 05 00 00 mov DWORD PTR j$[rbp], eax $LN13@stbi__bmp_: 0089d 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 008a4 8b 40 04 mov eax, DWORD PTR [rax+4] 008a7 39 85 24 05 00 00 cmp DWORD PTR j$[rbp], eax 008ad 0f 8d 85 02 00 00 jge $LN12@stbi__bmp_ ; 5926 : for (i = 0; i < (int)s->img_x; i += 2) { 008b3 c7 85 04 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 008bd eb 0f jmp SHORT $LN16@stbi__bmp_ $LN14@stbi__bmp_: 008bf 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 008c5 83 c0 02 add eax, 2 008c8 89 85 04 05 00 00 mov DWORD PTR i$[rbp], eax $LN16@stbi__bmp_: 008ce 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 008d5 8b 00 mov eax, DWORD PTR [rax] 008d7 39 85 04 05 00 00 cmp DWORD PTR i$[rbp], eax 008dd 0f 8d 3d 02 00 00 jge $LN15@stbi__bmp_ ; 5927 : int v = stbi__get8(s), v2 = 0; 008e3 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 008ea e8 00 00 00 00 call stbi__get8 008ef 0f b6 c0 movzx eax, al 008f2 89 85 e4 06 00 00 mov DWORD PTR v$12[rbp], eax 008f8 c7 85 04 07 00 00 00 00 00 00 mov DWORD PTR v2$13[rbp], 0 ; 5928 : if (info.bpp == 4) { 00902 83 bd c8 05 00 00 04 cmp DWORD PTR info$[rbp], 4 00909 75 1e jne SHORT $LN70@stbi__bmp_ ; 5929 : v2 = v & 15; 0090b 8b 85 e4 06 00 00 mov eax, DWORD PTR v$12[rbp] 00911 83 e0 0f and eax, 15 00914 89 85 04 07 00 00 mov DWORD PTR v2$13[rbp], eax ; 5930 : v >>= 4; 0091a 8b 85 e4 06 00 00 mov eax, DWORD PTR v$12[rbp] 00920 c1 f8 04 sar eax, 4 00923 89 85 e4 06 00 00 mov DWORD PTR v$12[rbp], eax $LN70@stbi__bmp_: ; 5931 : } ; 5932 : out[z++] = pal[v][0]; 00929 48 63 85 e4 06 00 00 movsxd rax, DWORD PTR v$12[rbp] 00930 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 00938 b9 01 00 00 00 mov ecx, 1 0093d 48 6b c9 00 imul rcx, rcx, 0 00941 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 00948 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 0094c 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00950 41 88 04 10 mov BYTE PTR [r8+rdx], al 00954 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 0095a ff c0 inc eax 0095c 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5933 : out[z++] = pal[v][1]; 00962 48 63 85 e4 06 00 00 movsxd rax, DWORD PTR v$12[rbp] 00969 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 00971 b9 01 00 00 00 mov ecx, 1 00976 48 6b c9 01 imul rcx, rcx, 1 0097a 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 00981 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 00985 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00989 41 88 04 10 mov BYTE PTR [r8+rdx], al 0098d 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 00993 ff c0 inc eax 00995 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5934 : out[z++] = pal[v][2]; 0099b 48 63 85 e4 06 00 00 movsxd rax, DWORD PTR v$12[rbp] 009a2 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 009aa b9 01 00 00 00 mov ecx, 1 009af 48 6b c9 02 imul rcx, rcx, 2 009b3 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 009ba 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 009be 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 009c2 41 88 04 10 mov BYTE PTR [r8+rdx], al 009c6 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 009cc ff c0 inc eax 009ce 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5935 : if (target == 4) 009d4 83 bd a4 05 00 00 04 cmp DWORD PTR target$[rbp], 4 009db 75 1d jne SHORT $LN71@stbi__bmp_ ; 5936 : out[z++] = 255; 009dd 48 63 85 64 06 00 00 movsxd rax, DWORD PTR z$8[rbp] 009e4 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 009e8 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 009ec 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 009f2 ff c0 inc eax 009f4 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax $LN71@stbi__bmp_: ; 5937 : if (i + 1 == (int)s->img_x) 009fa 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 00a00 ff c0 inc eax 00a02 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00a09 3b 01 cmp eax, DWORD PTR [rcx] 00a0b 75 05 jne SHORT $LN72@stbi__bmp_ ; 5938 : break; 00a0d e9 0e 01 00 00 jmp $LN15@stbi__bmp_ $LN72@stbi__bmp_: ; 5939 : v = (info.bpp == 8) ? stbi__get8(s) : v2; 00a12 83 bd c8 05 00 00 08 cmp DWORD PTR info$[rbp], 8 00a19 75 17 jne SHORT $LN119@stbi__bmp_ 00a1b 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00a22 e8 00 00 00 00 call stbi__get8 00a27 0f b6 c0 movzx eax, al 00a2a 89 85 f4 0c 00 00 mov DWORD PTR tv384[rbp], eax 00a30 eb 0c jmp SHORT $LN120@stbi__bmp_ $LN119@stbi__bmp_: 00a32 8b 85 04 07 00 00 mov eax, DWORD PTR v2$13[rbp] 00a38 89 85 f4 0c 00 00 mov DWORD PTR tv384[rbp], eax $LN120@stbi__bmp_: 00a3e 8b 85 f4 0c 00 00 mov eax, DWORD PTR tv384[rbp] 00a44 89 85 e4 06 00 00 mov DWORD PTR v$12[rbp], eax ; 5940 : out[z++] = pal[v][0]; 00a4a 48 63 85 e4 06 00 00 movsxd rax, DWORD PTR v$12[rbp] 00a51 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 00a59 b9 01 00 00 00 mov ecx, 1 00a5e 48 6b c9 00 imul rcx, rcx, 0 00a62 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 00a69 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 00a6d 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00a71 41 88 04 10 mov BYTE PTR [r8+rdx], al 00a75 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 00a7b ff c0 inc eax 00a7d 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5941 : out[z++] = pal[v][1]; 00a83 48 63 85 e4 06 00 00 movsxd rax, DWORD PTR v$12[rbp] 00a8a 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 00a92 b9 01 00 00 00 mov ecx, 1 00a97 48 6b c9 01 imul rcx, rcx, 1 00a9b 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 00aa2 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 00aa6 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00aaa 41 88 04 10 mov BYTE PTR [r8+rdx], al 00aae 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 00ab4 ff c0 inc eax 00ab6 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5942 : out[z++] = pal[v][2]; 00abc 48 63 85 e4 06 00 00 movsxd rax, DWORD PTR v$12[rbp] 00ac3 48 8d 84 85 d0 00 00 00 lea rax, QWORD PTR pal$[rbp+rax*4] 00acb b9 01 00 00 00 mov ecx, 1 00ad0 48 6b c9 02 imul rcx, rcx, 2 00ad4 48 63 95 64 06 00 00 movsxd rdx, DWORD PTR z$8[rbp] 00adb 4c 8b 45 08 mov r8, QWORD PTR out$[rbp] 00adf 0f b6 04 08 movzx eax, BYTE PTR [rax+rcx] 00ae3 41 88 04 10 mov BYTE PTR [r8+rdx], al 00ae7 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 00aed ff c0 inc eax 00aef 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax ; 5943 : if (target == 4) 00af5 83 bd a4 05 00 00 04 cmp DWORD PTR target$[rbp], 4 00afc 75 1d jne SHORT $LN73@stbi__bmp_ ; 5944 : out[z++] = 255; 00afe 48 63 85 64 06 00 00 movsxd rax, DWORD PTR z$8[rbp] 00b05 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00b09 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 00b0d 8b 85 64 06 00 00 mov eax, DWORD PTR z$8[rbp] 00b13 ff c0 inc eax 00b15 89 85 64 06 00 00 mov DWORD PTR z$8[rbp], eax $LN73@stbi__bmp_: ; 5945 : } 00b1b e9 9f fd ff ff jmp $LN14@stbi__bmp_ $LN15@stbi__bmp_: ; 5946 : stbi__skip(s, pad); 00b20 8b 95 84 05 00 00 mov edx, DWORD PTR pad$[rbp] 00b26 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00b2d e8 00 00 00 00 call stbi__skip 00b32 90 npad 1 ; 5947 : } 00b33 e9 57 fd ff ff jmp $LN11@stbi__bmp_ $LN12@stbi__bmp_: $LN66@stbi__bmp_: ; 5948 : } ; 5949 : } else { 00b38 e9 af 05 00 00 jmp $LN55@stbi__bmp_ $LN54@stbi__bmp_: ; 5950 : int rshift = 0, gshift = 0, bshift = 0, ashift = 0, rcount = 0, gcount = 0, 00b3d c7 85 24 07 00 00 00 00 00 00 mov DWORD PTR rshift$14[rbp], 0 00b47 c7 85 44 07 00 00 00 00 00 00 mov DWORD PTR gshift$15[rbp], 0 00b51 c7 85 64 07 00 00 00 00 00 00 mov DWORD PTR bshift$16[rbp], 0 00b5b c7 85 84 07 00 00 00 00 00 00 mov DWORD PTR ashift$17[rbp], 0 00b65 c7 85 a4 07 00 00 00 00 00 00 mov DWORD PTR rcount$18[rbp], 0 00b6f c7 85 c4 07 00 00 00 00 00 00 mov DWORD PTR gcount$19[rbp], 0 ; 5951 : bcount = 0, acount = 0; 00b79 c7 85 e4 07 00 00 00 00 00 00 mov DWORD PTR bcount$20[rbp], 0 00b83 c7 85 04 08 00 00 00 00 00 00 mov DWORD PTR acount$21[rbp], 0 ; 5952 : int z = 0; 00b8d c7 85 24 08 00 00 00 00 00 00 mov DWORD PTR z$22[rbp], 0 ; 5953 : int easy = 0; 00b97 c7 85 44 08 00 00 00 00 00 00 mov DWORD PTR easy$23[rbp], 0 ; 5954 : stbi__skip(s, info.offset - info.extra_read - info.hsz); 00ba1 8b 85 e8 05 00 00 mov eax, DWORD PTR info$[rbp+32] 00ba7 8b 8d cc 05 00 00 mov ecx, DWORD PTR info$[rbp+4] 00bad 2b c8 sub ecx, eax 00baf 8b c1 mov eax, ecx 00bb1 2b 85 d0 05 00 00 sub eax, DWORD PTR info$[rbp+8] 00bb7 8b d0 mov edx, eax 00bb9 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00bc0 e8 00 00 00 00 call stbi__skip 00bc5 90 npad 1 ; 5955 : if (info.bpp == 24) 00bc6 83 bd c8 05 00 00 18 cmp DWORD PTR info$[rbp], 24 00bcd 75 12 jne SHORT $LN74@stbi__bmp_ ; 5956 : width = 3 * s->img_x; 00bcf 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00bd6 6b 00 03 imul eax, DWORD PTR [rax], 3 00bd9 89 85 44 05 00 00 mov DWORD PTR width$[rbp], eax 00bdf eb 26 jmp SHORT $LN75@stbi__bmp_ $LN74@stbi__bmp_: ; 5957 : else if (info.bpp == 16) 00be1 83 bd c8 05 00 00 10 cmp DWORD PTR info$[rbp], 16 00be8 75 13 jne SHORT $LN76@stbi__bmp_ ; 5958 : width = 2 * s->img_x; 00bea 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00bf1 8b 00 mov eax, DWORD PTR [rax] 00bf3 d1 e0 shl eax, 1 00bf5 89 85 44 05 00 00 mov DWORD PTR width$[rbp], eax 00bfb eb 0a jmp SHORT $LN77@stbi__bmp_ $LN76@stbi__bmp_: ; 5959 : else /* bpp = 32 and pad = 0 */ ; 5960 : width = 0; 00bfd c7 85 44 05 00 00 00 00 00 00 mov DWORD PTR width$[rbp], 0 $LN77@stbi__bmp_: $LN75@stbi__bmp_: ; 5961 : pad = (-width) & 3; 00c07 8b 85 44 05 00 00 mov eax, DWORD PTR width$[rbp] 00c0d f7 d8 neg eax 00c0f 83 e0 03 and eax, 3 00c12 89 85 84 05 00 00 mov DWORD PTR pad$[rbp], eax ; 5962 : if (info.bpp == 24) { 00c18 83 bd c8 05 00 00 18 cmp DWORD PTR info$[rbp], 24 00c1f 75 0c jne SHORT $LN78@stbi__bmp_ ; 5963 : easy = 1; 00c21 c7 85 44 08 00 00 01 00 00 00 mov DWORD PTR easy$23[rbp], 1 00c2b eb 3a jmp SHORT $LN79@stbi__bmp_ $LN78@stbi__bmp_: ; 5964 : } else if (info.bpp == 32) { 00c2d 83 bd c8 05 00 00 20 cmp DWORD PTR info$[rbp], 32 ; 00000020H 00c34 75 31 jne SHORT $LN80@stbi__bmp_ ; 5965 : if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) 00c36 81 7d 64 ff 00 00 00 cmp DWORD PTR mb$[rbp], 255 ; 000000ffH 00c3d 75 28 jne SHORT $LN81@stbi__bmp_ 00c3f 81 7d 44 00 ff 00 00 cmp DWORD PTR mg$[rbp], 65280 ; 0000ff00H 00c46 75 1f jne SHORT $LN81@stbi__bmp_ 00c48 81 7d 24 00 00 ff 00 cmp DWORD PTR mr$[rbp], 16711680 ; 00ff0000H 00c4f 75 16 jne SHORT $LN81@stbi__bmp_ 00c51 81 bd 84 00 00 00 00 00 00 ff cmp DWORD PTR ma$[rbp], -16777216 ; ff000000H 00c5b 75 0a jne SHORT $LN81@stbi__bmp_ ; 5966 : easy = 2; 00c5d c7 85 44 08 00 00 02 00 00 00 mov DWORD PTR easy$23[rbp], 2 $LN81@stbi__bmp_: $LN80@stbi__bmp_: $LN79@stbi__bmp_: ; 5967 : } ; 5968 : if (!easy) { 00c67 83 bd 44 08 00 00 00 cmp DWORD PTR easy$23[rbp], 0 00c6e 0f 85 36 01 00 00 jne $LN82@stbi__bmp_ ; 5969 : if (!mr || !mg || !mb) { 00c74 83 7d 24 00 cmp DWORD PTR mr$[rbp], 0 00c78 74 0c je SHORT $LN84@stbi__bmp_ 00c7a 83 7d 44 00 cmp DWORD PTR mg$[rbp], 0 00c7e 74 06 je SHORT $LN84@stbi__bmp_ 00c80 83 7d 64 00 cmp DWORD PTR mb$[rbp], 0 00c84 75 3f jne SHORT $LN83@stbi__bmp_ $LN84@stbi__bmp_: ; 5970 : STBI_FREE(out); 00c86 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00c8a ff 15 00 00 00 00 call QWORD PTR __imp_free 00c90 90 npad 1 ; 5971 : return stbi__errpuc("bad masks", "Corrupt BMP"); 00c91 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09DAEBACAB@bad?5masks@ 00c98 e8 00 00 00 00 call stbi__err 00c9d 85 c0 test eax, eax 00c9f 74 0d je SHORT $LN121@stbi__bmp_ 00ca1 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv445[rbp], 0 00cac eb 0b jmp SHORT $LN122@stbi__bmp_ $LN121@stbi__bmp_: 00cae 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv445[rbp], 0 $LN122@stbi__bmp_: 00cb9 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv445[rbp] 00cc0 e9 4d 06 00 00 jmp $LN1@stbi__bmp_ $LN83@stbi__bmp_: ; 5972 : } ; 5973 : // right shift amt to put high bit in position #7 ; 5974 : rshift = stbi__high_bit(mr) - 7; 00cc5 8b 4d 24 mov ecx, DWORD PTR mr$[rbp] 00cc8 e8 00 00 00 00 call stbi__high_bit 00ccd 83 e8 07 sub eax, 7 00cd0 89 85 24 07 00 00 mov DWORD PTR rshift$14[rbp], eax ; 5975 : rcount = stbi__bitcount(mr); 00cd6 8b 4d 24 mov ecx, DWORD PTR mr$[rbp] 00cd9 e8 00 00 00 00 call stbi__bitcount 00cde 89 85 a4 07 00 00 mov DWORD PTR rcount$18[rbp], eax ; 5976 : gshift = stbi__high_bit(mg) - 7; 00ce4 8b 4d 44 mov ecx, DWORD PTR mg$[rbp] 00ce7 e8 00 00 00 00 call stbi__high_bit 00cec 83 e8 07 sub eax, 7 00cef 89 85 44 07 00 00 mov DWORD PTR gshift$15[rbp], eax ; 5977 : gcount = stbi__bitcount(mg); 00cf5 8b 4d 44 mov ecx, DWORD PTR mg$[rbp] 00cf8 e8 00 00 00 00 call stbi__bitcount 00cfd 89 85 c4 07 00 00 mov DWORD PTR gcount$19[rbp], eax ; 5978 : bshift = stbi__high_bit(mb) - 7; 00d03 8b 4d 64 mov ecx, DWORD PTR mb$[rbp] 00d06 e8 00 00 00 00 call stbi__high_bit 00d0b 83 e8 07 sub eax, 7 00d0e 89 85 64 07 00 00 mov DWORD PTR bshift$16[rbp], eax ; 5979 : bcount = stbi__bitcount(mb); 00d14 8b 4d 64 mov ecx, DWORD PTR mb$[rbp] 00d17 e8 00 00 00 00 call stbi__bitcount 00d1c 89 85 e4 07 00 00 mov DWORD PTR bcount$20[rbp], eax ; 5980 : ashift = stbi__high_bit(ma) - 7; 00d22 8b 8d 84 00 00 00 mov ecx, DWORD PTR ma$[rbp] 00d28 e8 00 00 00 00 call stbi__high_bit 00d2d 83 e8 07 sub eax, 7 00d30 89 85 84 07 00 00 mov DWORD PTR ashift$17[rbp], eax ; 5981 : acount = stbi__bitcount(ma); 00d36 8b 8d 84 00 00 00 mov ecx, DWORD PTR ma$[rbp] 00d3c e8 00 00 00 00 call stbi__bitcount 00d41 89 85 04 08 00 00 mov DWORD PTR acount$21[rbp], eax ; 5982 : if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { 00d47 83 bd a4 07 00 00 08 cmp DWORD PTR rcount$18[rbp], 8 00d4e 7f 1b jg SHORT $LN86@stbi__bmp_ 00d50 83 bd c4 07 00 00 08 cmp DWORD PTR gcount$19[rbp], 8 00d57 7f 12 jg SHORT $LN86@stbi__bmp_ 00d59 83 bd e4 07 00 00 08 cmp DWORD PTR bcount$20[rbp], 8 00d60 7f 09 jg SHORT $LN86@stbi__bmp_ 00d62 83 bd 04 08 00 00 08 cmp DWORD PTR acount$21[rbp], 8 00d69 7e 3f jle SHORT $LN85@stbi__bmp_ $LN86@stbi__bmp_: ; 5983 : STBI_FREE(out); 00d6b 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00d6f ff 15 00 00 00 00 call QWORD PTR __imp_free 00d75 90 npad 1 ; 5984 : return stbi__errpuc("bad masks", "Corrupt BMP"); 00d76 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_09DAEBACAB@bad?5masks@ 00d7d e8 00 00 00 00 call stbi__err 00d82 85 c0 test eax, eax 00d84 74 0d je SHORT $LN123@stbi__bmp_ 00d86 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv474[rbp], 0 00d91 eb 0b jmp SHORT $LN124@stbi__bmp_ $LN123@stbi__bmp_: 00d93 48 c7 85 f8 0c 00 00 00 00 00 00 mov QWORD PTR tv474[rbp], 0 $LN124@stbi__bmp_: 00d9e 48 8b 85 f8 0c 00 00 mov rax, QWORD PTR tv474[rbp] 00da5 e9 68 05 00 00 jmp $LN1@stbi__bmp_ $LN85@stbi__bmp_: $LN82@stbi__bmp_: ; 5985 : } ; 5986 : } ; 5987 : for (j = 0; j < (int)s->img_y; ++j) { 00daa c7 85 24 05 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 00db4 eb 0e jmp SHORT $LN19@stbi__bmp_ $LN17@stbi__bmp_: 00db6 8b 85 24 05 00 00 mov eax, DWORD PTR j$[rbp] 00dbc ff c0 inc eax 00dbe 89 85 24 05 00 00 mov DWORD PTR j$[rbp], eax $LN19@stbi__bmp_: 00dc4 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00dcb 8b 40 04 mov eax, DWORD PTR [rax+4] 00dce 39 85 24 05 00 00 cmp DWORD PTR j$[rbp], eax 00dd4 0f 8d 12 03 00 00 jge $LN18@stbi__bmp_ ; 5988 : if (easy) { 00dda 83 bd 44 08 00 00 00 cmp DWORD PTR easy$23[rbp], 0 00de1 0f 84 1b 01 00 00 je $LN87@stbi__bmp_ ; 5989 : for (i = 0; i < (int)s->img_x; ++i) { 00de7 c7 85 04 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 00df1 eb 0e jmp SHORT $LN22@stbi__bmp_ $LN20@stbi__bmp_: 00df3 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 00df9 ff c0 inc eax 00dfb 89 85 04 05 00 00 mov DWORD PTR i$[rbp], eax $LN22@stbi__bmp_: 00e01 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00e08 8b 00 mov eax, DWORD PTR [rax] 00e0a 39 85 04 05 00 00 cmp DWORD PTR i$[rbp], eax 00e10 0f 8d e7 00 00 00 jge $LN21@stbi__bmp_ ; 5990 : unsigned char a; ; 5991 : out[z + 2] = stbi__get8(s); 00e16 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00e1d e8 00 00 00 00 call stbi__get8 00e22 8b 8d 24 08 00 00 mov ecx, DWORD PTR z$22[rbp] 00e28 83 c1 02 add ecx, 2 00e2b 48 63 c9 movsxd rcx, ecx 00e2e 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] 00e32 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5992 : out[z + 1] = stbi__get8(s); 00e35 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00e3c e8 00 00 00 00 call stbi__get8 00e41 8b 8d 24 08 00 00 mov ecx, DWORD PTR z$22[rbp] 00e47 ff c1 inc ecx 00e49 48 63 c9 movsxd rcx, ecx 00e4c 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] 00e50 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5993 : out[z + 0] = stbi__get8(s); 00e53 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00e5a e8 00 00 00 00 call stbi__get8 00e5f 8b 8d 24 08 00 00 mov ecx, DWORD PTR z$22[rbp] 00e65 48 63 c9 movsxd rcx, ecx 00e68 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] 00e6c 88 04 0a mov BYTE PTR [rdx+rcx], al ; 5994 : z += 3; 00e6f 8b 85 24 08 00 00 mov eax, DWORD PTR z$22[rbp] 00e75 83 c0 03 add eax, 3 00e78 89 85 24 08 00 00 mov DWORD PTR z$22[rbp], eax ; 5995 : a = (easy == 2 ? stbi__get8(s) : 255); 00e7e 83 bd 44 08 00 00 02 cmp DWORD PTR easy$23[rbp], 2 00e85 75 17 jne SHORT $LN125@stbi__bmp_ 00e87 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00e8e e8 00 00 00 00 call stbi__get8 00e93 0f b6 c0 movzx eax, al 00e96 89 85 f4 0c 00 00 mov DWORD PTR tv505[rbp], eax 00e9c eb 0a jmp SHORT $LN126@stbi__bmp_ $LN125@stbi__bmp_: 00e9e c7 85 f4 0c 00 00 ff 00 00 00 mov DWORD PTR tv505[rbp], 255 ; 000000ffH $LN126@stbi__bmp_: 00ea8 0f b6 85 f4 0c 00 00 movzx eax, BYTE PTR tv505[rbp] 00eaf 88 85 64 08 00 00 mov BYTE PTR a$24[rbp], al ; 5996 : all_a |= a; 00eb5 0f b6 85 64 08 00 00 movzx eax, BYTE PTR a$24[rbp] 00ebc 8b 8d a4 00 00 00 mov ecx, DWORD PTR all_a$[rbp] 00ec2 0b c8 or ecx, eax 00ec4 8b c1 mov eax, ecx 00ec6 89 85 a4 00 00 00 mov DWORD PTR all_a$[rbp], eax ; 5997 : if (target == 4) 00ecc 83 bd a4 05 00 00 04 cmp DWORD PTR target$[rbp], 4 00ed3 75 23 jne SHORT $LN89@stbi__bmp_ ; 5998 : out[z++] = a; 00ed5 48 63 85 24 08 00 00 movsxd rax, DWORD PTR z$22[rbp] 00edc 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 00ee0 0f b6 95 64 08 00 00 movzx edx, BYTE PTR a$24[rbp] 00ee7 88 14 01 mov BYTE PTR [rcx+rax], dl 00eea 8b 85 24 08 00 00 mov eax, DWORD PTR z$22[rbp] 00ef0 ff c0 inc eax 00ef2 89 85 24 08 00 00 mov DWORD PTR z$22[rbp], eax $LN89@stbi__bmp_: ; 5999 : } 00ef8 e9 f6 fe ff ff jmp $LN20@stbi__bmp_ $LN21@stbi__bmp_: ; 6000 : } else { 00efd e9 d2 01 00 00 jmp $LN88@stbi__bmp_ $LN87@stbi__bmp_: ; 6001 : int bpp = info.bpp; 00f02 8b 85 c8 05 00 00 mov eax, DWORD PTR info$[rbp] 00f08 89 85 84 08 00 00 mov DWORD PTR bpp$25[rbp], eax ; 6002 : for (i = 0; i < (int)s->img_x; ++i) { 00f0e c7 85 04 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 00f18 eb 0e jmp SHORT $LN25@stbi__bmp_ $LN23@stbi__bmp_: 00f1a 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 00f20 ff c0 inc eax 00f22 89 85 04 05 00 00 mov DWORD PTR i$[rbp], eax $LN25@stbi__bmp_: 00f28 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 00f2f 8b 00 mov eax, DWORD PTR [rax] 00f31 39 85 04 05 00 00 cmp DWORD PTR i$[rbp], eax 00f37 0f 8d 97 01 00 00 jge $LN24@stbi__bmp_ ; 6003 : stbi__uint32 v = (bpp == 16 ? 00f3d 83 bd 84 08 00 00 10 cmp DWORD PTR bpp$25[rbp], 16 00f44 75 14 jne SHORT $LN127@stbi__bmp_ 00f46 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00f4d e8 00 00 00 00 call stbi__get16le 00f52 89 85 f4 0c 00 00 mov DWORD PTR tv522[rbp], eax 00f58 eb 12 jmp SHORT $LN128@stbi__bmp_ $LN127@stbi__bmp_: 00f5a 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 00f61 e8 00 00 00 00 call stbi__get32le 00f66 89 85 f4 0c 00 00 mov DWORD PTR tv522[rbp], eax $LN128@stbi__bmp_: 00f6c 8b 85 f4 0c 00 00 mov eax, DWORD PTR tv522[rbp] 00f72 89 85 a4 08 00 00 mov DWORD PTR v$26[rbp], eax ; 6004 : (stbi__uint32)stbi__get16le(s) : ; 6005 : stbi__get32le(s)); ; 6006 : unsigned int a; ; 6007 : out[z++] = STBI__BYTECAST( 00f78 8b 45 24 mov eax, DWORD PTR mr$[rbp] 00f7b 8b 8d a4 08 00 00 mov ecx, DWORD PTR v$26[rbp] 00f81 23 c8 and ecx, eax 00f83 8b c1 mov eax, ecx 00f85 44 8b 85 a4 07 00 00 mov r8d, DWORD PTR rcount$18[rbp] 00f8c 8b 95 24 07 00 00 mov edx, DWORD PTR rshift$14[rbp] 00f92 8b c8 mov ecx, eax 00f94 e8 00 00 00 00 call stbi__shiftsigned 00f99 25 ff 00 00 00 and eax, 255 ; 000000ffH 00f9e 48 63 8d 24 08 00 00 movsxd rcx, DWORD PTR z$22[rbp] 00fa5 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] 00fa9 88 04 0a mov BYTE PTR [rdx+rcx], al 00fac 8b 85 24 08 00 00 mov eax, DWORD PTR z$22[rbp] 00fb2 ff c0 inc eax 00fb4 89 85 24 08 00 00 mov DWORD PTR z$22[rbp], eax ; 6008 : stbi__shiftsigned(v & mr, rshift, rcount)); ; 6009 : out[z++] = STBI__BYTECAST( 00fba 8b 45 44 mov eax, DWORD PTR mg$[rbp] 00fbd 8b 8d a4 08 00 00 mov ecx, DWORD PTR v$26[rbp] 00fc3 23 c8 and ecx, eax 00fc5 8b c1 mov eax, ecx 00fc7 44 8b 85 c4 07 00 00 mov r8d, DWORD PTR gcount$19[rbp] 00fce 8b 95 44 07 00 00 mov edx, DWORD PTR gshift$15[rbp] 00fd4 8b c8 mov ecx, eax 00fd6 e8 00 00 00 00 call stbi__shiftsigned 00fdb 25 ff 00 00 00 and eax, 255 ; 000000ffH 00fe0 48 63 8d 24 08 00 00 movsxd rcx, DWORD PTR z$22[rbp] 00fe7 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] 00feb 88 04 0a mov BYTE PTR [rdx+rcx], al 00fee 8b 85 24 08 00 00 mov eax, DWORD PTR z$22[rbp] 00ff4 ff c0 inc eax 00ff6 89 85 24 08 00 00 mov DWORD PTR z$22[rbp], eax ; 6010 : stbi__shiftsigned(v & mg, gshift, gcount)); ; 6011 : out[z++] = STBI__BYTECAST( 00ffc 8b 45 64 mov eax, DWORD PTR mb$[rbp] 00fff 8b 8d a4 08 00 00 mov ecx, DWORD PTR v$26[rbp] 01005 23 c8 and ecx, eax 01007 8b c1 mov eax, ecx 01009 44 8b 85 e4 07 00 00 mov r8d, DWORD PTR bcount$20[rbp] 01010 8b 95 64 07 00 00 mov edx, DWORD PTR bshift$16[rbp] 01016 8b c8 mov ecx, eax 01018 e8 00 00 00 00 call stbi__shiftsigned 0101d 25 ff 00 00 00 and eax, 255 ; 000000ffH 01022 48 63 8d 24 08 00 00 movsxd rcx, DWORD PTR z$22[rbp] 01029 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] 0102d 88 04 0a mov BYTE PTR [rdx+rcx], al 01030 8b 85 24 08 00 00 mov eax, DWORD PTR z$22[rbp] 01036 ff c0 inc eax 01038 89 85 24 08 00 00 mov DWORD PTR z$22[rbp], eax ; 6012 : stbi__shiftsigned(v & mb, bshift, bcount)); ; 6013 : a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); 0103e 83 bd 84 00 00 00 00 cmp DWORD PTR ma$[rbp], 0 01045 74 2c je SHORT $LN129@stbi__bmp_ 01047 8b 85 84 00 00 00 mov eax, DWORD PTR ma$[rbp] 0104d 8b 8d a4 08 00 00 mov ecx, DWORD PTR v$26[rbp] 01053 23 c8 and ecx, eax 01055 8b c1 mov eax, ecx 01057 44 8b 85 04 08 00 00 mov r8d, DWORD PTR acount$21[rbp] 0105e 8b 95 84 07 00 00 mov edx, DWORD PTR ashift$17[rbp] 01064 8b c8 mov ecx, eax 01066 e8 00 00 00 00 call stbi__shiftsigned 0106b 89 85 f4 0c 00 00 mov DWORD PTR tv562[rbp], eax 01071 eb 0a jmp SHORT $LN130@stbi__bmp_ $LN129@stbi__bmp_: 01073 c7 85 f4 0c 00 00 ff 00 00 00 mov DWORD PTR tv562[rbp], 255 ; 000000ffH $LN130@stbi__bmp_: 0107d 8b 85 f4 0c 00 00 mov eax, DWORD PTR tv562[rbp] 01083 89 85 c4 08 00 00 mov DWORD PTR a$27[rbp], eax ; 6014 : all_a |= a; 01089 8b 85 c4 08 00 00 mov eax, DWORD PTR a$27[rbp] 0108f 8b 8d a4 00 00 00 mov ecx, DWORD PTR all_a$[rbp] 01095 0b c8 or ecx, eax 01097 8b c1 mov eax, ecx 01099 89 85 a4 00 00 00 mov DWORD PTR all_a$[rbp], eax ; 6015 : if (target == 4) 0109f 83 bd a4 05 00 00 04 cmp DWORD PTR target$[rbp], 4 010a6 75 27 jne SHORT $LN90@stbi__bmp_ ; 6016 : out[z++] = STBI__BYTECAST(a); 010a8 8b 85 c4 08 00 00 mov eax, DWORD PTR a$27[rbp] 010ae 25 ff 00 00 00 and eax, 255 ; 000000ffH 010b3 48 63 8d 24 08 00 00 movsxd rcx, DWORD PTR z$22[rbp] 010ba 48 8b 55 08 mov rdx, QWORD PTR out$[rbp] 010be 88 04 0a mov BYTE PTR [rdx+rcx], al 010c1 8b 85 24 08 00 00 mov eax, DWORD PTR z$22[rbp] 010c7 ff c0 inc eax 010c9 89 85 24 08 00 00 mov DWORD PTR z$22[rbp], eax $LN90@stbi__bmp_: ; 6017 : } 010cf e9 46 fe ff ff jmp $LN23@stbi__bmp_ $LN24@stbi__bmp_: $LN88@stbi__bmp_: ; 6018 : } ; 6019 : stbi__skip(s, pad); 010d4 8b 95 84 05 00 00 mov edx, DWORD PTR pad$[rbp] 010da 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 010e1 e8 00 00 00 00 call stbi__skip 010e6 90 npad 1 ; 6020 : } 010e7 e9 ca fc ff ff jmp $LN17@stbi__bmp_ $LN18@stbi__bmp_: $LN55@stbi__bmp_: ; 6021 : } ; 6022 : ; 6023 : // if alpha channel is all 0s, replace with all 255s ; 6024 : if (target == 4 && all_a == 0) 010ec 83 bd a4 05 00 00 04 cmp DWORD PTR target$[rbp], 4 010f3 75 53 jne SHORT $LN91@stbi__bmp_ 010f5 83 bd a4 00 00 00 00 cmp DWORD PTR all_a$[rbp], 0 010fc 75 4a jne SHORT $LN91@stbi__bmp_ ; 6025 : for (i = 4 * s->img_x * s->img_y - 1; i >= 0; i -= 4) 010fe 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 01105 8b 00 mov eax, DWORD PTR [rax] 01107 c1 e0 02 shl eax, 2 0110a 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 01111 0f af 41 04 imul eax, DWORD PTR [rcx+4] 01115 ff c8 dec eax 01117 89 85 04 05 00 00 mov DWORD PTR i$[rbp], eax 0111d eb 0f jmp SHORT $LN28@stbi__bmp_ $LN26@stbi__bmp_: 0111f 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 01125 83 e8 04 sub eax, 4 01128 89 85 04 05 00 00 mov DWORD PTR i$[rbp], eax $LN28@stbi__bmp_: 0112e 83 bd 04 05 00 00 00 cmp DWORD PTR i$[rbp], 0 01135 7c 11 jl SHORT $LN27@stbi__bmp_ ; 6026 : out[i] = 255; 01137 48 63 85 04 05 00 00 movsxd rax, DWORD PTR i$[rbp] 0113e 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 01142 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH 01146 eb d7 jmp SHORT $LN26@stbi__bmp_ $LN27@stbi__bmp_: $LN91@stbi__bmp_: ; 6027 : ; 6028 : if (flip_vertically) { 01148 83 bd 64 05 00 00 00 cmp DWORD PTR flip_vertically$[rbp], 0 0114f 0f 84 21 01 00 00 je $LN92@stbi__bmp_ ; 6029 : stbi_uc t; ; 6030 : for (j = 0; j < (int)s->img_y >> 1; ++j) { 01155 c7 85 24 05 00 00 00 00 00 00 mov DWORD PTR j$[rbp], 0 0115f eb 0e jmp SHORT $LN31@stbi__bmp_ $LN29@stbi__bmp_: 01161 8b 85 24 05 00 00 mov eax, DWORD PTR j$[rbp] 01167 ff c0 inc eax 01169 89 85 24 05 00 00 mov DWORD PTR j$[rbp], eax $LN31@stbi__bmp_: 0116f 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 01176 8b 40 04 mov eax, DWORD PTR [rax+4] 01179 d1 f8 sar eax, 1 0117b 39 85 24 05 00 00 cmp DWORD PTR j$[rbp], eax 01181 0f 8d ef 00 00 00 jge $LN30@stbi__bmp_ ; 6031 : stbi_uc *p1 = out + j * s->img_x * target; 01187 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0118e 8b 8d 24 05 00 00 mov ecx, DWORD PTR j$[rbp] 01194 0f af 08 imul ecx, DWORD PTR [rax] 01197 8b c1 mov eax, ecx 01199 0f af 85 a4 05 00 00 imul eax, DWORD PTR target$[rbp] 011a0 8b c0 mov eax, eax 011a2 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 011a6 48 03 c8 add rcx, rax 011a9 48 8b c1 mov rax, rcx 011ac 48 89 85 08 09 00 00 mov QWORD PTR p1$29[rbp], rax ; 6032 : stbi_uc *p2 = out + (s->img_y - 1 - j) * s->img_x * target; 011b3 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 011ba 8b 40 04 mov eax, DWORD PTR [rax+4] 011bd ff c8 dec eax 011bf 2b 85 24 05 00 00 sub eax, DWORD PTR j$[rbp] 011c5 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 011cc 0f af 01 imul eax, DWORD PTR [rcx] 011cf 0f af 85 a4 05 00 00 imul eax, DWORD PTR target$[rbp] 011d6 8b c0 mov eax, eax 011d8 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 011dc 48 03 c8 add rcx, rax 011df 48 8b c1 mov rax, rcx 011e2 48 89 85 28 09 00 00 mov QWORD PTR p2$30[rbp], rax ; 6033 : for (i = 0; i < (int)s->img_x * target; ++i) { 011e9 c7 85 04 05 00 00 00 00 00 00 mov DWORD PTR i$[rbp], 0 011f3 eb 0e jmp SHORT $LN34@stbi__bmp_ $LN32@stbi__bmp_: 011f5 8b 85 04 05 00 00 mov eax, DWORD PTR i$[rbp] 011fb ff c0 inc eax 011fd 89 85 04 05 00 00 mov DWORD PTR i$[rbp], eax $LN34@stbi__bmp_: 01203 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 0120a 8b 00 mov eax, DWORD PTR [rax] 0120c 0f af 85 a4 05 00 00 imul eax, DWORD PTR target$[rbp] 01213 39 85 04 05 00 00 cmp DWORD PTR i$[rbp], eax 01219 7d 56 jge SHORT $LN33@stbi__bmp_ ; 6034 : t = p1[i]; 0121b 48 63 85 04 05 00 00 movsxd rax, DWORD PTR i$[rbp] 01222 48 8b 8d 08 09 00 00 mov rcx, QWORD PTR p1$29[rbp] 01229 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] 0122d 88 85 e4 08 00 00 mov BYTE PTR t$28[rbp], al ; 6035 : p1[i] = p2[i]; 01233 48 63 85 04 05 00 00 movsxd rax, DWORD PTR i$[rbp] 0123a 48 63 8d 04 05 00 00 movsxd rcx, DWORD PTR i$[rbp] 01241 48 8b 95 08 09 00 00 mov rdx, QWORD PTR p1$29[rbp] 01248 4c 8b 85 28 09 00 00 mov r8, QWORD PTR p2$30[rbp] 0124f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax] 01254 88 04 0a mov BYTE PTR [rdx+rcx], al ; 6036 : p2[i] = t; 01257 48 63 85 04 05 00 00 movsxd rax, DWORD PTR i$[rbp] 0125e 48 8b 8d 28 09 00 00 mov rcx, QWORD PTR p2$30[rbp] 01265 0f b6 95 e4 08 00 00 movzx edx, BYTE PTR t$28[rbp] 0126c 88 14 01 mov BYTE PTR [rcx+rax], dl ; 6037 : } 0126f eb 84 jmp SHORT $LN32@stbi__bmp_ $LN33@stbi__bmp_: ; 6038 : } 01271 e9 eb fe ff ff jmp $LN29@stbi__bmp_ $LN30@stbi__bmp_: $LN92@stbi__bmp_: ; 6039 : } ; 6040 : ; 6041 : if (req_comp && req_comp != target) { 01276 83 bd 50 0d 00 00 00 cmp DWORD PTR req_comp$[rbp], 0 0127d 74 4d je SHORT $LN93@stbi__bmp_ 0127f 8b 85 a4 05 00 00 mov eax, DWORD PTR target$[rbp] 01285 39 85 50 0d 00 00 cmp DWORD PTR req_comp$[rbp], eax 0128b 74 3f je SHORT $LN93@stbi__bmp_ ; 6042 : out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); 0128d 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 01294 8b 40 04 mov eax, DWORD PTR [rax+4] 01297 89 44 24 20 mov DWORD PTR [rsp+32], eax 0129b 48 8b 85 30 0d 00 00 mov rax, QWORD PTR s$[rbp] 012a2 44 8b 08 mov r9d, DWORD PTR [rax] 012a5 44 8b 85 50 0d 00 00 mov r8d, DWORD PTR req_comp$[rbp] 012ac 8b 95 a4 05 00 00 mov edx, DWORD PTR target$[rbp] 012b2 48 8b 4d 08 mov rcx, QWORD PTR out$[rbp] 012b6 e8 00 00 00 00 call stbi__convert_format 012bb 48 89 45 08 mov QWORD PTR out$[rbp], rax ; 6043 : if (out == NULL) 012bf 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0 012c4 75 06 jne SHORT $LN94@stbi__bmp_ ; 6044 : return out; // stbi__convert_format frees input on failure 012c6 48 8b 45 08 mov rax, QWORD PTR out$[rbp] 012ca eb 46 jmp SHORT $LN1@stbi__bmp_ $LN94@stbi__bmp_: $LN93@stbi__bmp_: ; 6045 : } ; 6046 : ; 6047 : *x = s->img_x; 012cc 48 8b 85 38 0d 00 00 mov rax, QWORD PTR x$[rbp] 012d3 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 012da 8b 09 mov ecx, DWORD PTR [rcx] 012dc 89 08 mov DWORD PTR [rax], ecx ; 6048 : *y = s->img_y; 012de 48 8b 85 40 0d 00 00 mov rax, QWORD PTR y$[rbp] 012e5 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 012ec 8b 49 04 mov ecx, DWORD PTR [rcx+4] 012ef 89 08 mov DWORD PTR [rax], ecx ; 6049 : if (comp) 012f1 48 83 bd 48 0d 00 00 00 cmp QWORD PTR comp$[rbp], 0 012f9 74 13 je SHORT $LN95@stbi__bmp_ ; 6050 : *comp = s->img_n; 012fb 48 8b 85 48 0d 00 00 mov rax, QWORD PTR comp$[rbp] 01302 48 8b 8d 30 0d 00 00 mov rcx, QWORD PTR s$[rbp] 01309 8b 49 08 mov ecx, DWORD PTR [rcx+8] 0130c 89 08 mov DWORD PTR [rax], ecx $LN95@stbi__bmp_: ; 6051 : return out; 0130e 48 8b 45 08 mov rax, QWORD PTR out$[rbp] $LN1@stbi__bmp_: ; 6052 : } 01312 48 8b f8 mov rdi, rax 01315 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 01319 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__bmp_load$rtcFrameData 01320 e8 00 00 00 00 call _RTC_CheckStackVars 01325 48 8b c7 mov rax, rdi 01328 48 8b 8d 00 0d 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0132f 48 33 cd xor rcx, rbp 01332 e8 00 00 00 00 call __security_check_cookie 01337 48 8d a5 18 0d 00 00 lea rsp, QWORD PTR [rbp+3352] 0133e 5f pop rdi 0133f 5d pop rbp 01340 c3 ret 0 stbi__bmp_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__bmp_test _TEXT SEGMENT r$ = 4 s$ = 256 stbi__bmp_test PROC ; COMDAT ; 5603 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 5604 : int r = stbi__bmp_test_raw(s); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__bmp_test_raw 0002c 89 45 04 mov DWORD PTR r$[rbp], eax ; 5605 : stbi__rewind(s); 0002f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__rewind 0003b 90 npad 1 ; 5606 : return r; 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp] ; 5607 : } 0003f 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00046 5f pop rdi 00047 5d pop rbp 00048 c3 ret 0 stbi__bmp_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__png_is16 _TEXT SEGMENT p$ = 8 __$ArrayPad$ = 248 s$ = 288 stbi__png_is16 PROC ; COMDAT ; 5569 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00018 b9 12 00 00 00 mov ecx, 18 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00022 f3 ab rep stosd 00024 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00033 48 33 c5 xor rax, rbp 00036 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00049 90 npad 1 ; 5570 : stbi__png p; ; 5571 : p.s = s; 0004a 48 8b 85 20 01 00 00 mov rax, QWORD PTR s$[rbp] 00051 48 89 45 08 mov QWORD PTR p$[rbp], rax ; 5572 : if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) 00055 45 33 c9 xor r9d, r9d 00058 45 33 c0 xor r8d, r8d 0005b 33 d2 xor edx, edx 0005d 48 8d 4d 08 lea rcx, QWORD PTR p$[rbp] 00061 e8 00 00 00 00 call stbi__png_info_raw 00066 85 c0 test eax, eax 00068 75 04 jne SHORT $LN2@stbi__png_ ; 5573 : return 0; 0006a 33 c0 xor eax, eax 0006c eb 19 jmp SHORT $LN1@stbi__png_ $LN2@stbi__png_: ; 5574 : if (p.depth != 16) { 0006e 83 7d 28 10 cmp DWORD PTR p$[rbp+32], 16 00072 74 0e je SHORT $LN3@stbi__png_ ; 5575 : stbi__rewind(p.s); 00074 48 8b 4d 08 mov rcx, QWORD PTR p$[rbp] 00078 e8 00 00 00 00 call stbi__rewind 0007d 90 npad 1 ; 5576 : return 0; 0007e 33 c0 xor eax, eax 00080 eb 05 jmp SHORT $LN1@stbi__png_ $LN3@stbi__png_: ; 5577 : } ; 5578 : return 1; 00082 b8 01 00 00 00 mov eax, 1 $LN1@stbi__png_: ; 5579 : } 00087 48 8b f8 mov rdi, rax 0008a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0008e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__png_is16$rtcFrameData 00095 e8 00 00 00 00 call _RTC_CheckStackVars 0009a 48 8b c7 mov rax, rdi 0009d 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000a4 48 33 cd xor rcx, rbp 000a7 e8 00 00 00 00 call __security_check_cookie 000ac 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000b3 5f pop rdi 000b4 5d pop rbp 000b5 c3 ret 0 stbi__png_is16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__png_info _TEXT SEGMENT p$ = 8 __$ArrayPad$ = 248 s$ = 288 x$ = 296 y$ = 304 comp$ = 312 stbi__png_info PROC ; COMDAT ; 5562 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 12 00 00 00 mov ecx, 18 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 5563 : stbi__png p; ; 5564 : p.s = s; 00059 48 8b 85 20 01 00 00 mov rax, QWORD PTR s$[rbp] 00060 48 89 45 08 mov QWORD PTR p$[rbp], rax ; 5565 : return stbi__png_info_raw(&p, x, y, comp); 00064 4c 8b 8d 38 01 00 00 mov r9, QWORD PTR comp$[rbp] 0006b 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 00072 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 00079 48 8d 4d 08 lea rcx, QWORD PTR p$[rbp] 0007d e8 00 00 00 00 call stbi__png_info_raw ; 5566 : } 00082 48 8b f8 mov rdi, rax 00085 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00089 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__png_info$rtcFrameData 00090 e8 00 00 00 00 call _RTC_CheckStackVars 00095 48 8b c7 mov rax, rdi 00098 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0009f 48 33 cd xor rcx, rbp 000a2 e8 00 00 00 00 call __security_check_cookie 000a7 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000ae 5f pop rdi 000af 5d pop rbp 000b0 c3 ret 0 stbi__png_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__png_load _TEXT SEGMENT p$ = 8 __$ArrayPad$ = 248 s$ = 288 x$ = 296 y$ = 304 comp$ = 312 req_comp$ = 320 ri$ = 328 stbi__png_load PROC ; COMDAT ; 5532 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 12 00 00 00 mov ecx, 18 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 58 01 00 00 mov rcx, QWORD PTR [rsp+344] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 5533 : stbi__png p; ; 5534 : p.s = s; 00059 48 8b 85 20 01 00 00 mov rax, QWORD PTR s$[rbp] 00060 48 89 45 08 mov QWORD PTR p$[rbp], rax ; 5535 : return stbi__do_png(&p, x, y, comp, req_comp, ri); 00064 48 8b 85 48 01 00 00 mov rax, QWORD PTR ri$[rbp] 0006b 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 00070 8b 85 40 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00076 89 44 24 20 mov DWORD PTR [rsp+32], eax 0007a 4c 8b 8d 38 01 00 00 mov r9, QWORD PTR comp$[rbp] 00081 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 00088 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 0008f 48 8d 4d 08 lea rcx, QWORD PTR p$[rbp] 00093 e8 00 00 00 00 call stbi__do_png ; 5536 : } 00098 48 8b f8 mov rdi, rax 0009b 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 0009f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__png_load$rtcFrameData 000a6 e8 00 00 00 00 call _RTC_CheckStackVars 000ab 48 8b c7 mov rax, rdi 000ae 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000b5 48 33 cd xor rcx, rbp 000b8 e8 00 00 00 00 call __security_check_cookie 000bd 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000c4 5f pop rdi 000c5 5d pop rbp 000c6 c3 ret 0 stbi__png_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__png_test _TEXT SEGMENT r$ = 4 s$ = 256 stbi__png_test PROC ; COMDAT ; 5539 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 5540 : int r; ; 5541 : r = stbi__check_png_header(s); 00020 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00027 e8 00 00 00 00 call stbi__check_png_header 0002c 89 45 04 mov DWORD PTR r$[rbp], eax ; 5542 : stbi__rewind(s); 0002f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00036 e8 00 00 00 00 call stbi__rewind 0003b 90 npad 1 ; 5543 : return r; 0003c 8b 45 04 mov eax, DWORD PTR r$[rbp] ; 5544 : } 0003f 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00046 5f pop rdi 00047 5d pop rbp 00048 c3 ret 0 stbi__png_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_info _TEXT SEGMENT result$ = 4 j$ = 40 s$ = 288 x$ = 296 y$ = 304 comp$ = 312 stbi__jpeg_info PROC ; COMDAT ; 4053 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 4054 : int result; ; 4055 : stbi__jpeg *j = (stbi__jpeg *)(stbi__malloc(sizeof(stbi__jpeg))); 0002f b9 88 48 00 00 mov ecx, 18568 ; 00004888H 00034 e8 00 00 00 00 call stbi__malloc 00039 48 89 45 28 mov QWORD PTR j$[rbp], rax ; 4056 : if (!j) 0003d 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0 00042 75 0e jne SHORT $LN2@stbi__jpeg ; 4057 : return stbi__err("outofmem", "Out of memory"); 00044 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0004b e8 00 00 00 00 call stbi__err 00050 eb 4f jmp SHORT $LN1@stbi__jpeg $LN2@stbi__jpeg: ; 4058 : memset(j, 0, sizeof(stbi__jpeg)); 00052 41 b8 88 48 00 00 mov r8d, 18568 ; 00004888H 00058 33 d2 xor edx, edx 0005a 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 0005e e8 00 00 00 00 call memset 00063 90 npad 1 ; 4059 : j->s = s; 00064 48 8b 45 28 mov rax, QWORD PTR j$[rbp] 00068 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 0006f 48 89 08 mov QWORD PTR [rax], rcx ; 4060 : result = stbi__jpeg_info_raw(j, x, y, comp); 00072 4c 8b 8d 38 01 00 00 mov r9, QWORD PTR comp$[rbp] 00079 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 00080 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 00087 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 0008b e8 00 00 00 00 call stbi__jpeg_info_raw 00090 89 45 04 mov DWORD PTR result$[rbp], eax ; 4061 : STBI_FREE(j); 00093 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 00097 ff 15 00 00 00 00 call QWORD PTR __imp_free 0009d 90 npad 1 ; 4062 : return result; 0009e 8b 45 04 mov eax, DWORD PTR result$[rbp] $LN1@stbi__jpeg: ; 4063 : } 000a1 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000a8 5f pop rdi 000a9 5d pop rbp 000aa c3 ret 0 stbi__jpeg_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_load _TEXT SEGMENT result$ = 8 j$ = 40 tv70 = 248 s$ = 288 x$ = 296 y$ = 304 comp$ = 312 req_comp$ = 320 ri$ = 328 stbi__jpeg_load PROC ; COMDAT ; 4008 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 4009 : unsigned char *result; ; 4010 : stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg)); 0002f b9 88 48 00 00 mov ecx, 18568 ; 00004888H 00034 e8 00 00 00 00 call stbi__malloc 00039 48 89 45 28 mov QWORD PTR j$[rbp], rax ; 4011 : if (!j) 0003d 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0 00042 75 31 jne SHORT $LN2@stbi__jpeg ; 4012 : return stbi__errpuc("outofmem", "Out of memory"); 00044 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0004b e8 00 00 00 00 call stbi__err 00050 85 c0 test eax, eax 00052 74 0d je SHORT $LN4@stbi__jpeg 00054 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv70[rbp], 0 0005f eb 0b jmp SHORT $LN5@stbi__jpeg $LN4@stbi__jpeg: 00061 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv70[rbp], 0 $LN5@stbi__jpeg: 0006c 48 8b 85 f8 00 00 00 mov rax, QWORD PTR tv70[rbp] 00073 eb 65 jmp SHORT $LN1@stbi__jpeg $LN2@stbi__jpeg: ; 4013 : memset(j, 0, sizeof(stbi__jpeg)); 00075 41 b8 88 48 00 00 mov r8d, 18568 ; 00004888H 0007b 33 d2 xor edx, edx 0007d 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 00081 e8 00 00 00 00 call memset 00086 90 npad 1 ; 4014 : STBI_NOTUSED(ri); ; 4015 : j->s = s; 00087 48 8b 45 28 mov rax, QWORD PTR j$[rbp] 0008b 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00092 48 89 08 mov QWORD PTR [rax], rcx ; 4016 : stbi__setup_jpeg(j); 00095 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 00099 e8 00 00 00 00 call stbi__setup_jpeg 0009e 90 npad 1 ; 4017 : result = load_jpeg_image(j, x, y, comp, req_comp); 0009f 8b 85 40 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 000a5 89 44 24 20 mov DWORD PTR [rsp+32], eax 000a9 4c 8b 8d 38 01 00 00 mov r9, QWORD PTR comp$[rbp] 000b0 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 000b7 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 000be 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 000c2 e8 00 00 00 00 call load_jpeg_image 000c7 48 89 45 08 mov QWORD PTR result$[rbp], rax ; 4018 : STBI_FREE(j); 000cb 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 000cf ff 15 00 00 00 00 call QWORD PTR __imp_free 000d5 90 npad 1 ; 4019 : return result; 000d6 48 8b 45 08 mov rax, QWORD PTR result$[rbp] $LN1@stbi__jpeg: ; 4020 : } 000da 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000e1 5f pop rdi 000e2 5d pop rbp 000e3 c3 ret 0 stbi__jpeg_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__jpeg_test _TEXT SEGMENT r$ = 4 j$ = 40 s$ = 288 stbi__jpeg_test PROC ; COMDAT ; 4023 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 4024 : int r; ; 4025 : stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg)); 00020 b9 88 48 00 00 mov ecx, 18568 ; 00004888H 00025 e8 00 00 00 00 call stbi__malloc 0002a 48 89 45 28 mov QWORD PTR j$[rbp], rax ; 4026 : if (!j) 0002e 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0 00033 75 0e jne SHORT $LN2@stbi__jpeg ; 4027 : return stbi__err("outofmem", "Out of memory"); 00035 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@ 0003c e8 00 00 00 00 call stbi__err 00041 eb 56 jmp SHORT $LN1@stbi__jpeg $LN2@stbi__jpeg: ; 4028 : memset(j, 0, sizeof(stbi__jpeg)); 00043 41 b8 88 48 00 00 mov r8d, 18568 ; 00004888H 00049 33 d2 xor edx, edx 0004b 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 0004f e8 00 00 00 00 call memset 00054 90 npad 1 ; 4029 : j->s = s; 00055 48 8b 45 28 mov rax, QWORD PTR j$[rbp] 00059 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00060 48 89 08 mov QWORD PTR [rax], rcx ; 4030 : stbi__setup_jpeg(j); 00063 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 00067 e8 00 00 00 00 call stbi__setup_jpeg 0006c 90 npad 1 ; 4031 : r = stbi__decode_jpeg_header(j, STBI__SCAN_type); 0006d ba 01 00 00 00 mov edx, 1 00072 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 00076 e8 00 00 00 00 call stbi__decode_jpeg_header 0007b 89 45 04 mov DWORD PTR r$[rbp], eax ; 4032 : stbi__rewind(s); 0007e 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR s$[rbp] 00085 e8 00 00 00 00 call stbi__rewind 0008a 90 npad 1 ; 4033 : STBI_FREE(j); 0008b 48 8b 4d 28 mov rcx, QWORD PTR j$[rbp] 0008f ff 15 00 00 00 00 call QWORD PTR __imp_free 00095 90 npad 1 ; 4034 : return r; 00096 8b 45 04 mov eax, DWORD PTR r$[rbp] $LN1@stbi__jpeg: ; 4035 : } 00099 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000a0 5f pop rdi 000a1 5d pop rbp 000a2 c3 ret 0 stbi__jpeg_test ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__rewind _TEXT SEGMENT s$ = 224 stbi__rewind PROC ; COMDAT ; 339 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 340 : // conceptually rewind SHOULD rewind to the beginning of the stream, ; 341 : // but we just rewind to the beginning of the initial buffer, because ; 342 : // we only use it after doing 'test', which only ever looks at at most 92 bytes ; 343 : s->img_buffer = s->img_buffer_original; 00020 48 8b 85 e0 00 00 00 mov rax, QWORD PTR s$[rbp] 00027 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0002e 48 8b 89 d0 00 00 00 mov rcx, QWORD PTR [rcx+208] 00035 48 89 88 c0 00 00 00 mov QWORD PTR [rax+192], rcx ; 344 : s->img_buffer_end = s->img_buffer_original_end; 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR s$[rbp] 00043 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0004a 48 8b 89 d8 00 00 00 mov rcx, QWORD PTR [rcx+216] 00051 48 89 88 c8 00 00 00 mov QWORD PTR [rax+200], rcx ; 345 : } 00058 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0005f 5f pop rdi 00060 5d pop rbp 00061 c3 ret 0 stbi__rewind ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__start_file _TEXT SEGMENT s$ = 224 f$ = 232 stbi__start_file PROC ; COMDAT ; 330 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 331 : stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *)f); 00025 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR f$[rbp] 0002c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__stdio_callbacks 00033 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR s$[rbp] 0003a e8 00 00 00 00 call stbi__start_callbacks 0003f 90 npad 1 ; 332 : } 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00047 5f pop rdi 00048 5d pop rbp 00049 c3 ret 0 stbi__start_file ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__stdio_eof _TEXT SEGMENT tv70 = 192 user$ = 240 stbi__stdio_eof PROC ; COMDAT ; 319 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 320 : return feof((FILE *)user) || ferror((FILE *)user); 00020 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR user$[rbp] 00027 ff 15 00 00 00 00 call QWORD PTR __imp_feof 0002d 85 c0 test eax, eax 0002f 75 1d jne SHORT $LN3@stbi__stdi 00031 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR user$[rbp] 00038 ff 15 00 00 00 00 call QWORD PTR __imp_ferror 0003e 85 c0 test eax, eax 00040 75 0c jne SHORT $LN3@stbi__stdi 00042 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv70[rbp], 0 0004c eb 0a jmp SHORT $LN4@stbi__stdi $LN3@stbi__stdi: 0004e c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv70[rbp], 1 $LN4@stbi__stdi: 00058 8b 85 c0 00 00 00 mov eax, DWORD PTR tv70[rbp] ; 321 : } 0005e 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 00065 5f pop rdi 00066 5d pop rbp 00067 c3 ret 0 stbi__stdio_eof ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__stdio_skip _TEXT SEGMENT ch$ = 4 user$ = 256 n$ = 264 stbi__stdio_skip PROC ; COMDAT ; 309 : { 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00023 90 npad 1 ; 310 : int ch; ; 311 : fseek((FILE *)user, n, SEEK_CUR); 00024 41 b8 01 00 00 00 mov r8d, 1 0002a 8b 95 08 01 00 00 mov edx, DWORD PTR n$[rbp] 00030 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR user$[rbp] 00037 ff 15 00 00 00 00 call QWORD PTR __imp_fseek 0003d 90 npad 1 ; 312 : ch = fgetc((FILE *)user); /* have to read a byte to reset feof()'s flag */ 0003e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR user$[rbp] 00045 ff 15 00 00 00 00 call QWORD PTR __imp_fgetc 0004b 89 45 04 mov DWORD PTR ch$[rbp], eax ; 313 : if (ch != EOF) { 0004e 83 7d 04 ff cmp DWORD PTR ch$[rbp], -1 00052 74 11 je SHORT $LN2@stbi__stdi ; 314 : ungetc(ch, (FILE *)user); /* push byte back onto stream if valid. */ 00054 48 8b 95 00 01 00 00 mov rdx, QWORD PTR user$[rbp] 0005b 8b 4d 04 mov ecx, DWORD PTR ch$[rbp] 0005e ff 15 00 00 00 00 call QWORD PTR __imp_ungetc 00064 90 npad 1 $LN2@stbi__stdi: ; 315 : } ; 316 : } 00065 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 0006c 5f pop rdi 0006d 5d pop rbp 0006e c3 ret 0 stbi__stdio_skip ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__stdio_read _TEXT SEGMENT user$ = 224 data$ = 232 size$ = 240 stbi__stdio_read PROC ; COMDAT ; 304 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 305 : return (int)fread(data, 1, size, (FILE *)user); 0002a 48 63 85 f0 00 00 00 movsxd rax, DWORD PTR size$[rbp] 00031 4c 8b 8d e0 00 00 00 mov r9, QWORD PTR user$[rbp] 00038 4c 8b c0 mov r8, rax 0003b ba 01 00 00 00 mov edx, 1 00040 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR data$[rbp] 00047 ff 15 00 00 00 00 call QWORD PTR __imp_fread ; 306 : } 0004d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00054 5f pop rdi 00055 5d pop rbp 00056 c3 ret 0 stbi__stdio_read ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__start_callbacks _TEXT SEGMENT tv72 = 192 s$ = 240 c$ = 248 user$ = 256 stbi__start_callbacks PROC ; COMDAT ; 290 : { 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 56 push rsi 00011 57 push rdi 00012 48 81 ec f0 00 00 00 sub rsp, 240 ; 000000f0H 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002a 90 npad 1 ; 291 : s->io = *c; 0002b 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00032 48 8d 78 10 lea rdi, QWORD PTR [rax+16] 00036 48 8b b5 f8 00 00 00 mov rsi, QWORD PTR c$[rbp] 0003d b9 18 00 00 00 mov ecx, 24 00042 f3 a4 rep movsb ; 292 : s->io_user_data = user; 00044 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0004b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR user$[rbp] 00052 48 89 48 28 mov QWORD PTR [rax+40], rcx ; 293 : s->buflen = sizeof(s->buffer_start); 00056 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0005d c7 40 34 80 00 00 00 mov DWORD PTR [rax+52], 128 ; 00000080H ; 294 : s->read_from_callbacks = 1; 00064 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0006b c7 40 30 01 00 00 00 mov DWORD PTR [rax+48], 1 ; 295 : s->callback_already_read = 0; 00072 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00079 c7 80 b8 00 00 00 00 00 00 00 mov DWORD PTR [rax+184], 0 ; 296 : s->img_buffer = s->img_buffer_original = s->buffer_start; 00083 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0008a 48 83 c0 38 add rax, 56 ; 00000038H 0008e 48 89 85 c0 00 00 00 mov QWORD PTR tv72[rbp], rax 00095 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0009c 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv72[rbp] 000a3 48 89 88 d0 00 00 00 mov QWORD PTR [rax+208], rcx 000aa 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 000b1 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv72[rbp] 000b8 48 89 88 c0 00 00 00 mov QWORD PTR [rax+192], rcx ; 297 : stbi__refill_buffer(s); 000bf 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR s$[rbp] 000c6 e8 00 00 00 00 call stbi__refill_buffer 000cb 90 npad 1 ; 298 : s->img_buffer_original_end = s->img_buffer_end; 000cc 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 000d3 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR s$[rbp] 000da 48 8b 89 c8 00 00 00 mov rcx, QWORD PTR [rcx+200] 000e1 48 89 88 d8 00 00 00 mov QWORD PTR [rax+216], rcx ; 299 : } 000e8 48 8d a5 d0 00 00 00 lea rsp, QWORD PTR [rbp+208] 000ef 5f pop rdi 000f0 5e pop rsi 000f1 5d pop rbp 000f2 c3 ret 0 stbi__start_callbacks ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__start_mem _TEXT SEGMENT tv72 = 192 s$ = 240 buffer$ = 248 len$ = 256 stbi__start_mem PROC ; COMDAT ; 280 : { 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 281 : s->io.read = NULL; 0002a 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00031 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 ; 282 : s->read_from_callbacks = 0; 00039 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00040 c7 40 30 00 00 00 00 mov DWORD PTR [rax+48], 0 ; 283 : s->callback_already_read = 0; 00047 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0004e c7 80 b8 00 00 00 00 00 00 00 mov DWORD PTR [rax+184], 0 ; 284 : s->img_buffer = s->img_buffer_original = (stbi_uc *)buffer; 00058 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 0005f 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR buffer$[rbp] 00066 48 89 88 d0 00 00 00 mov QWORD PTR [rax+208], rcx 0006d 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 00074 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR buffer$[rbp] 0007b 48 89 88 c0 00 00 00 mov QWORD PTR [rax+192], rcx ; 285 : s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *)buffer + len; 00082 48 63 85 00 01 00 00 movsxd rax, DWORD PTR len$[rbp] 00089 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR buffer$[rbp] 00090 48 03 c8 add rcx, rax 00093 48 89 8d c0 00 00 00 mov QWORD PTR tv72[rbp], rcx 0009a 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 000a1 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv72[rbp] 000a8 48 89 88 d8 00 00 00 mov QWORD PTR [rax+216], rcx 000af 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp] 000b6 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv72[rbp] 000bd 48 89 88 c8 00 00 00 mov QWORD PTR [rax+200], rcx ; 286 : } 000c4 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] 000cb 5f pop rdi 000cc 5d pop rbp 000cd c3 ret 0 stbi__start_mem ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__refill_buffer _TEXT SEGMENT n$ = 4 s$ = 256 stbi__refill_buffer PROC ; COMDAT ; 1125 : { 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1126 : int n = (s->io.read)(s->io_user_data, (char *)s->buffer_start, s->buflen); 00020 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00027 48 83 c0 38 add rax, 56 ; 00000038H 0002b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00032 44 8b 41 34 mov r8d, DWORD PTR [rcx+52] 00036 48 8b d0 mov rdx, rax 00039 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00040 48 8b 48 28 mov rcx, QWORD PTR [rax+40] 00044 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 0004b ff 50 10 call QWORD PTR [rax+16] 0004e 89 45 04 mov DWORD PTR n$[rbp], eax ; 1127 : s->callback_already_read += (int)(s->img_buffer - s->img_buffer_original); 00051 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00058 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 0005f 48 8b 89 d0 00 00 00 mov rcx, QWORD PTR [rcx+208] 00066 48 8b 80 c0 00 00 00 mov rax, QWORD PTR [rax+192] 0006d 48 2b c1 sub rax, rcx 00070 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00077 03 81 b8 00 00 00 add eax, DWORD PTR [rcx+184] 0007d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00084 89 81 b8 00 00 00 mov DWORD PTR [rcx+184], eax ; 1128 : if (n == 0) { 0008a 83 7d 04 00 cmp DWORD PTR n$[rbp], 0 0008e 75 53 jne SHORT $LN2@stbi__refi ; 1129 : // at end of file, treat same as if from memory, but need to handle case ; 1130 : // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file ; 1131 : s->read_from_callbacks = 0; 00090 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 00097 c7 40 30 00 00 00 00 mov DWORD PTR [rax+48], 0 ; 1132 : s->img_buffer = s->buffer_start; 0009e 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 000a5 48 83 c0 38 add rax, 56 ; 00000038H 000a9 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000b0 48 89 81 c0 00 00 00 mov QWORD PTR [rcx+192], rax ; 1133 : s->img_buffer_end = s->buffer_start + 1; 000b7 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 000be 48 83 c0 39 add rax, 57 ; 00000039H 000c2 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000c9 48 89 81 c8 00 00 00 mov QWORD PTR [rcx+200], rax ; 1134 : *s->img_buffer = 0; 000d0 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 000d7 48 8b 80 c0 00 00 00 mov rax, QWORD PTR [rax+192] 000de c6 00 00 mov BYTE PTR [rax], 0 ; 1135 : } else { 000e1 eb 37 jmp SHORT $LN3@stbi__refi $LN2@stbi__refi: ; 1136 : s->img_buffer = s->buffer_start; 000e3 48 8b 85 00 01 00 00 mov rax, QWORD PTR s$[rbp] 000ea 48 83 c0 38 add rax, 56 ; 00000038H 000ee 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 000f5 48 89 81 c0 00 00 00 mov QWORD PTR [rcx+192], rax ; 1137 : s->img_buffer_end = s->buffer_start + n; 000fc 48 63 45 04 movsxd rax, DWORD PTR n$[rbp] 00100 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00107 48 8d 44 01 38 lea rax, QWORD PTR [rcx+rax+56] 0010c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR s$[rbp] 00113 48 89 81 c8 00 00 00 mov QWORD PTR [rcx+200], rax $LN3@stbi__refi: ; 1138 : } ; 1139 : } 0011a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00121 5f pop rdi 00122 5d pop rbp 00123 c3 ret 0 stbi__refill_buffer ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__sse2_available _TEXT SEGMENT info3$ = 4 tv68 = 212 stbi__sse2_available PROC ; COMDAT ; 210 : { 00000 40 55 push rbp 00002 57 push rdi 00003 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0000f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001b 90 npad 1 ; 211 : int info3 = stbi__cpuid3(); 0001c e8 00 00 00 00 call stbi__cpuid3 00021 89 45 04 mov DWORD PTR info3$[rbp], eax ; 212 : return ((info3 >> 26) & 1) != 0; 00024 8b 45 04 mov eax, DWORD PTR info3$[rbp] 00027 c1 f8 1a sar eax, 26 0002a 83 e0 01 and eax, 1 0002d 85 c0 test eax, eax 0002f 74 0c je SHORT $LN3@stbi__sse2 00031 c7 85 d4 00 00 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 0003b eb 0a jmp SHORT $LN4@stbi__sse2 $LN3@stbi__sse2: 0003d c7 85 d4 00 00 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 $LN4@stbi__sse2: 00047 8b 85 d4 00 00 00 mov eax, DWORD PTR tv68[rbp] ; 213 : } 0004d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00054 5f pop rdi 00055 5d pop rbp 00056 c3 ret 0 stbi__sse2_available ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi__cpuid3 _TEXT SEGMENT info$ = 8 __$ArrayPad$ = 232 stbi__cpuid3 PROC ; COMDAT ; 188 : { 00000 40 55 push rbp 00002 53 push rbx 00003 57 push rdi 00004 48 81 ec 10 01 00 00 sub rsp, 272 ; 00000110H 0000b 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00010 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00015 b9 0c 00 00 00 mov ecx, 12 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 0001f f3 ab rep stosd 00021 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00028 48 33 c5 xor rax, rbp 0002b 48 89 85 e8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00032 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00039 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0003e 90 npad 1 ; 189 : int info[4]; ; 190 : __cpuid(info, 1); 0003f b8 01 00 00 00 mov eax, 1 00044 33 c9 xor ecx, ecx 00046 0f a2 cpuid 00048 4c 8d 45 08 lea r8, QWORD PTR info$[rbp] 0004c 41 89 00 mov DWORD PTR [r8], eax 0004f 41 89 58 04 mov DWORD PTR [r8+4], ebx 00053 41 89 48 08 mov DWORD PTR [r8+8], ecx 00057 41 89 50 0c mov DWORD PTR [r8+12], edx ; 191 : return info[3]; 0005b b8 04 00 00 00 mov eax, 4 00060 48 6b c0 03 imul rax, rax, 3 00064 8b 44 05 08 mov eax, DWORD PTR info$[rbp+rax] ; 192 : } 00068 8b f8 mov edi, eax 0006a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0006e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi__cpuid3$rtcFrameData 00075 e8 00 00 00 00 call _RTC_CheckStackVars 0007a 8b c7 mov eax, edi 0007c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00083 48 33 cd xor rcx, rbp 00086 e8 00 00 00 00 call __security_check_cookie 0008b 48 8d a5 f0 00 00 00 lea rsp, QWORD PTR [rbp+240] 00092 5f pop rdi 00093 5b pop rbx 00094 5d pop rbp 00095 c3 ret 0 stbi__cpuid3 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_zlib_decode_noheader_buffer _TEXT SEGMENT a$ = 16 __$ArrayPad$ = 5656 obuffer$ = 5696 olen$ = 5704 ibuffer$ = 5712 ilen$ = 5720 stbi_zlib_decode_noheader_buffer PROC ; COMDAT ; 4615 : { $LN5: 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 b8 58 16 00 00 mov eax, 5720 ; 00001658H 0001a e8 00 00 00 00 call __chkstk 0001f 48 2b e0 sub rsp, rax 00022 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00027 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0002c b9 0a 04 00 00 mov ecx, 1034 ; 0000040aH 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00036 f3 ab rep stosd 00038 48 8b 8c 24 78 16 00 00 mov rcx, QWORD PTR [rsp+5752] 00040 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00047 48 33 c5 xor rax, rbp 0004a 48 89 85 18 16 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00051 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0005d 90 npad 1 ; 4616 : stbi__zbuf a; ; 4617 : a.zbuffer = (stbi_uc *)ibuffer; 0005e 48 8b 85 50 16 00 00 mov rax, QWORD PTR ibuffer$[rbp] 00065 48 89 45 10 mov QWORD PTR a$[rbp], rax ; 4618 : a.zbuffer_end = (stbi_uc *)ibuffer + ilen; 00069 48 63 85 58 16 00 00 movsxd rax, DWORD PTR ilen$[rbp] 00070 48 8b 8d 50 16 00 00 mov rcx, QWORD PTR ibuffer$[rbp] 00077 48 03 c8 add rcx, rax 0007a 48 8b c1 mov rax, rcx 0007d 48 89 45 18 mov QWORD PTR a$[rbp+8], rax ; 4619 : if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) 00081 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 00089 45 33 c9 xor r9d, r9d 0008c 44 8b 85 48 16 00 00 mov r8d, DWORD PTR olen$[rbp] 00093 48 8b 95 40 16 00 00 mov rdx, QWORD PTR obuffer$[rbp] 0009a 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] 0009e e8 00 00 00 00 call stbi__do_zlib 000a3 85 c0 test eax, eax 000a5 74 12 je SHORT $LN2@stbi_zlib_ ; 4620 : return (int)(a.zout - a.zout_start); 000a7 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32] 000ab 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24] 000af 48 2b c8 sub rcx, rax 000b2 48 8b c1 mov rax, rcx 000b5 eb 07 jmp SHORT $LN1@stbi_zlib_ 000b7 eb 05 jmp SHORT $LN3@stbi_zlib_ $LN2@stbi_zlib_: ; 4621 : else ; 4622 : return -1; 000b9 b8 ff ff ff ff mov eax, -1 $LN3@stbi_zlib_: $LN1@stbi_zlib_: ; 4623 : } 000be 48 8b f8 mov rdi, rax 000c1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 000c5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_noheader_buffer$rtcFrameData 000cc e8 00 00 00 00 call _RTC_CheckStackVars 000d1 48 8b c7 mov rax, rdi 000d4 48 8b 8d 18 16 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000db 48 33 cd xor rcx, rbp 000de e8 00 00 00 00 call __security_check_cookie 000e3 48 8d a5 28 16 00 00 lea rsp, QWORD PTR [rbp+5672] 000ea 5f pop rdi 000eb 5d pop rbp 000ec c3 ret 0 stbi_zlib_decode_noheader_buffer ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_zlib_decode_noheader_malloc _TEXT SEGMENT a$ = 16 p$ = 4136 __$ArrayPad$ = 5688 buffer$ = 5728 len$ = 5736 outlen$ = 5744 stbi_zlib_decode_noheader_malloc PROC ; COMDAT ; 4597 : { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000e 55 push rbp 0000f 57 push rdi 00010 b8 78 16 00 00 mov eax, 5752 ; 00001678H 00015 e8 00 00 00 00 call __chkstk 0001a 48 2b e0 sub rsp, rax 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 12 04 00 00 mov ecx, 1042 ; 00000412H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 98 16 00 00 mov rcx, QWORD PTR [rsp+5784] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 38 16 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 4598 : stbi__zbuf a; ; 4599 : char *p = (char *)stbi__malloc(16384); 00059 b9 00 40 00 00 mov ecx, 16384 ; 00004000H 0005e e8 00 00 00 00 call stbi__malloc 00063 48 89 85 28 10 00 00 mov QWORD PTR p$[rbp], rax ; 4600 : if (p == NULL) 0006a 48 83 bd 28 10 00 00 00 cmp QWORD PTR p$[rbp], 0 00072 75 07 jne SHORT $LN2@stbi_zlib_ ; 4601 : return NULL; 00074 33 c0 xor eax, eax 00076 e9 81 00 00 00 jmp $LN1@stbi_zlib_ $LN2@stbi_zlib_: ; 4602 : a.zbuffer = (stbi_uc *)buffer; 0007b 48 8b 85 60 16 00 00 mov rax, QWORD PTR buffer$[rbp] 00082 48 89 45 10 mov QWORD PTR a$[rbp], rax ; 4603 : a.zbuffer_end = (stbi_uc *)buffer + len; 00086 48 63 85 68 16 00 00 movsxd rax, DWORD PTR len$[rbp] 0008d 48 8b 8d 60 16 00 00 mov rcx, QWORD PTR buffer$[rbp] 00094 48 03 c8 add rcx, rax 00097 48 8b c1 mov rax, rcx 0009a 48 89 45 18 mov QWORD PTR a$[rbp+8], rax ; 4604 : if (stbi__do_zlib(&a, p, 16384, 1, 0)) { 0009e c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 000a6 41 b9 01 00 00 00 mov r9d, 1 000ac 41 b8 00 40 00 00 mov r8d, 16384 ; 00004000H 000b2 48 8b 95 28 10 00 00 mov rdx, QWORD PTR p$[rbp] 000b9 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] 000bd e8 00 00 00 00 call stbi__do_zlib 000c2 85 c0 test eax, eax 000c4 74 29 je SHORT $LN3@stbi_zlib_ ; 4605 : if (outlen) 000c6 48 83 bd 70 16 00 00 00 cmp QWORD PTR outlen$[rbp], 0 000ce 74 17 je SHORT $LN5@stbi_zlib_ ; 4606 : *outlen = (int)(a.zout - a.zout_start); 000d0 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32] 000d4 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24] 000d8 48 2b c8 sub rcx, rax 000db 48 8b c1 mov rax, rcx 000de 48 8b 8d 70 16 00 00 mov rcx, QWORD PTR outlen$[rbp] 000e5 89 01 mov DWORD PTR [rcx], eax $LN5@stbi_zlib_: ; 4607 : return a.zout_start; 000e7 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32] 000eb eb 0f jmp SHORT $LN1@stbi_zlib_ ; 4608 : } else { 000ed eb 0d jmp SHORT $LN4@stbi_zlib_ $LN3@stbi_zlib_: ; 4609 : STBI_FREE(a.zout_start); 000ef 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32] 000f3 ff 15 00 00 00 00 call QWORD PTR __imp_free 000f9 90 npad 1 ; 4610 : return NULL; 000fa 33 c0 xor eax, eax $LN4@stbi_zlib_: $LN1@stbi_zlib_: ; 4611 : } ; 4612 : } 000fc 48 8b f8 mov rdi, rax 000ff 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00103 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_noheader_malloc$rtcFrameData 0010a e8 00 00 00 00 call _RTC_CheckStackVars 0010f 48 8b c7 mov rax, rdi 00112 48 8b 8d 38 16 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00119 48 33 cd xor rcx, rbp 0011c e8 00 00 00 00 call __security_check_cookie 00121 48 8d a5 48 16 00 00 lea rsp, QWORD PTR [rbp+5704] 00128 5f pop rdi 00129 5d pop rbp 0012a c3 ret 0 stbi_zlib_decode_noheader_malloc ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_zlib_decode_buffer _TEXT SEGMENT a$ = 16 __$ArrayPad$ = 5656 obuffer$ = 5696 olen$ = 5704 ibuffer$ = 5712 ilen$ = 5720 stbi_zlib_decode_buffer PROC ; COMDAT ; 4586 : { $LN5: 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 b8 58 16 00 00 mov eax, 5720 ; 00001658H 0001a e8 00 00 00 00 call __chkstk 0001f 48 2b e0 sub rsp, rax 00022 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00027 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0002c b9 0a 04 00 00 mov ecx, 1034 ; 0000040aH 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00036 f3 ab rep stosd 00038 48 8b 8c 24 78 16 00 00 mov rcx, QWORD PTR [rsp+5752] 00040 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00047 48 33 c5 xor rax, rbp 0004a 48 89 85 18 16 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00051 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0005d 90 npad 1 ; 4587 : stbi__zbuf a; ; 4588 : a.zbuffer = (stbi_uc *)ibuffer; 0005e 48 8b 85 50 16 00 00 mov rax, QWORD PTR ibuffer$[rbp] 00065 48 89 45 10 mov QWORD PTR a$[rbp], rax ; 4589 : a.zbuffer_end = (stbi_uc *)ibuffer + ilen; 00069 48 63 85 58 16 00 00 movsxd rax, DWORD PTR ilen$[rbp] 00070 48 8b 8d 50 16 00 00 mov rcx, QWORD PTR ibuffer$[rbp] 00077 48 03 c8 add rcx, rax 0007a 48 8b c1 mov rax, rcx 0007d 48 89 45 18 mov QWORD PTR a$[rbp+8], rax ; 4590 : if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) 00081 c7 44 24 20 01 00 00 00 mov DWORD PTR [rsp+32], 1 00089 45 33 c9 xor r9d, r9d 0008c 44 8b 85 48 16 00 00 mov r8d, DWORD PTR olen$[rbp] 00093 48 8b 95 40 16 00 00 mov rdx, QWORD PTR obuffer$[rbp] 0009a 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] 0009e e8 00 00 00 00 call stbi__do_zlib 000a3 85 c0 test eax, eax 000a5 74 12 je SHORT $LN2@stbi_zlib_ ; 4591 : return (int)(a.zout - a.zout_start); 000a7 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32] 000ab 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24] 000af 48 2b c8 sub rcx, rax 000b2 48 8b c1 mov rax, rcx 000b5 eb 07 jmp SHORT $LN1@stbi_zlib_ 000b7 eb 05 jmp SHORT $LN3@stbi_zlib_ $LN2@stbi_zlib_: ; 4592 : else ; 4593 : return -1; 000b9 b8 ff ff ff ff mov eax, -1 $LN3@stbi_zlib_: $LN1@stbi_zlib_: ; 4594 : } 000be 48 8b f8 mov rdi, rax 000c1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 000c5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_buffer$rtcFrameData 000cc e8 00 00 00 00 call _RTC_CheckStackVars 000d1 48 8b c7 mov rax, rdi 000d4 48 8b 8d 18 16 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000db 48 33 cd xor rcx, rbp 000de e8 00 00 00 00 call __security_check_cookie 000e3 48 8d a5 28 16 00 00 lea rsp, QWORD PTR [rbp+5672] 000ea 5f pop rdi 000eb 5d pop rbp 000ec c3 ret 0 stbi_zlib_decode_buffer ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_zlib_decode_malloc _TEXT SEGMENT buffer$ = 224 len$ = 232 outlen$ = 240 stbi_zlib_decode_malloc PROC ; COMDAT ; 4561 : { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 89 54 24 10 mov DWORD PTR [rsp+16], edx 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000e 55 push rbp 0000f 57 push rdi 00010 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00028 90 npad 1 ; 4562 : return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); 00029 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR outlen$[rbp] 00030 41 b8 00 40 00 00 mov r8d, 16384 ; 00004000H 00036 8b 95 e8 00 00 00 mov edx, DWORD PTR len$[rbp] 0003c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR buffer$[rbp] 00043 e8 00 00 00 00 call stbi_zlib_decode_malloc_guesssize ; 4563 : } 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0004f 5f pop rdi 00050 5d pop rbp 00051 c3 ret 0 stbi_zlib_decode_malloc ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_zlib_decode_malloc_guesssize_headerflag _TEXT SEGMENT a$ = 16 p$ = 4136 __$ArrayPad$ = 5688 buffer$ = 5728 len$ = 5736 initial_size$ = 5744 outlen$ = 5752 parse_header$ = 5760 stbi_zlib_decode_malloc_guesssize_headerflag PROC ; COMDAT ; 4568 : { $LN7: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 b8 78 16 00 00 mov eax, 5752 ; 00001678H 0001a e8 00 00 00 00 call __chkstk 0001f 48 2b e0 sub rsp, rax 00022 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00027 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0002c b9 12 04 00 00 mov ecx, 1042 ; 00000412H 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00036 f3 ab rep stosd 00038 48 8b 8c 24 98 16 00 00 mov rcx, QWORD PTR [rsp+5784] 00040 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00047 48 33 c5 xor rax, rbp 0004a 48 89 85 38 16 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00051 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0005d 90 npad 1 ; 4569 : stbi__zbuf a; ; 4570 : char *p = (char *)stbi__malloc(initial_size); 0005e 48 63 85 70 16 00 00 movsxd rax, DWORD PTR initial_size$[rbp] 00065 48 8b c8 mov rcx, rax 00068 e8 00 00 00 00 call stbi__malloc 0006d 48 89 85 28 10 00 00 mov QWORD PTR p$[rbp], rax ; 4571 : if (p == NULL) 00074 48 83 bd 28 10 00 00 00 cmp QWORD PTR p$[rbp], 0 0007c 75 07 jne SHORT $LN2@stbi_zlib_ ; 4572 : return NULL; 0007e 33 c0 xor eax, eax 00080 e9 84 00 00 00 jmp $LN1@stbi_zlib_ $LN2@stbi_zlib_: ; 4573 : a.zbuffer = (stbi_uc *)buffer; 00085 48 8b 85 60 16 00 00 mov rax, QWORD PTR buffer$[rbp] 0008c 48 89 45 10 mov QWORD PTR a$[rbp], rax ; 4574 : a.zbuffer_end = (stbi_uc *)buffer + len; 00090 48 63 85 68 16 00 00 movsxd rax, DWORD PTR len$[rbp] 00097 48 8b 8d 60 16 00 00 mov rcx, QWORD PTR buffer$[rbp] 0009e 48 03 c8 add rcx, rax 000a1 48 8b c1 mov rax, rcx 000a4 48 89 45 18 mov QWORD PTR a$[rbp+8], rax ; 4575 : if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { 000a8 8b 85 80 16 00 00 mov eax, DWORD PTR parse_header$[rbp] 000ae 89 44 24 20 mov DWORD PTR [rsp+32], eax 000b2 41 b9 01 00 00 00 mov r9d, 1 000b8 44 8b 85 70 16 00 00 mov r8d, DWORD PTR initial_size$[rbp] 000bf 48 8b 95 28 10 00 00 mov rdx, QWORD PTR p$[rbp] 000c6 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] 000ca e8 00 00 00 00 call stbi__do_zlib 000cf 85 c0 test eax, eax 000d1 74 29 je SHORT $LN3@stbi_zlib_ ; 4576 : if (outlen) 000d3 48 83 bd 78 16 00 00 00 cmp QWORD PTR outlen$[rbp], 0 000db 74 17 je SHORT $LN5@stbi_zlib_ ; 4577 : *outlen = (int)(a.zout - a.zout_start); 000dd 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32] 000e1 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24] 000e5 48 2b c8 sub rcx, rax 000e8 48 8b c1 mov rax, rcx 000eb 48 8b 8d 78 16 00 00 mov rcx, QWORD PTR outlen$[rbp] 000f2 89 01 mov DWORD PTR [rcx], eax $LN5@stbi_zlib_: ; 4578 : return a.zout_start; 000f4 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32] 000f8 eb 0f jmp SHORT $LN1@stbi_zlib_ ; 4579 : } else { 000fa eb 0d jmp SHORT $LN4@stbi_zlib_ $LN3@stbi_zlib_: ; 4580 : STBI_FREE(a.zout_start); 000fc 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32] 00100 ff 15 00 00 00 00 call QWORD PTR __imp_free 00106 90 npad 1 ; 4581 : return NULL; 00107 33 c0 xor eax, eax $LN4@stbi_zlib_: $LN1@stbi_zlib_: ; 4582 : } ; 4583 : } 00109 48 8b f8 mov rdi, rax 0010c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00110 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_malloc_guesssize_headerflag$rtcFrameData 00117 e8 00 00 00 00 call _RTC_CheckStackVars 0011c 48 8b c7 mov rax, rdi 0011f 48 8b 8d 38 16 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00126 48 33 cd xor rcx, rbp 00129 e8 00 00 00 00 call __security_check_cookie 0012e 48 8d a5 48 16 00 00 lea rsp, QWORD PTR [rbp+5704] 00135 5f pop rdi 00136 5d pop rbp 00137 c3 ret 0 stbi_zlib_decode_malloc_guesssize_headerflag ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_zlib_decode_malloc_guesssize _TEXT SEGMENT a$ = 16 p$ = 4136 __$ArrayPad$ = 5688 buffer$ = 5728 len$ = 5736 initial_size$ = 5744 outlen$ = 5752 stbi_zlib_decode_malloc_guesssize PROC ; COMDAT ; 4543 : { $LN7: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 b8 78 16 00 00 mov eax, 5752 ; 00001678H 0001a e8 00 00 00 00 call __chkstk 0001f 48 2b e0 sub rsp, rax 00022 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00027 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0002c b9 12 04 00 00 mov ecx, 1042 ; 00000412H 00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00036 f3 ab rep stosd 00038 48 8b 8c 24 98 16 00 00 mov rcx, QWORD PTR [rsp+5784] 00040 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00047 48 33 c5 xor rax, rbp 0004a 48 89 85 38 16 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00051 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0005d 90 npad 1 ; 4544 : stbi__zbuf a; ; 4545 : char *p = (char *)stbi__malloc(initial_size); 0005e 48 63 85 70 16 00 00 movsxd rax, DWORD PTR initial_size$[rbp] 00065 48 8b c8 mov rcx, rax 00068 e8 00 00 00 00 call stbi__malloc 0006d 48 89 85 28 10 00 00 mov QWORD PTR p$[rbp], rax ; 4546 : if (p == NULL) 00074 48 83 bd 28 10 00 00 00 cmp QWORD PTR p$[rbp], 0 0007c 75 07 jne SHORT $LN2@stbi_zlib_ ; 4547 : return NULL; 0007e 33 c0 xor eax, eax 00080 e9 82 00 00 00 jmp $LN1@stbi_zlib_ $LN2@stbi_zlib_: ; 4548 : a.zbuffer = (stbi_uc *)buffer; 00085 48 8b 85 60 16 00 00 mov rax, QWORD PTR buffer$[rbp] 0008c 48 89 45 10 mov QWORD PTR a$[rbp], rax ; 4549 : a.zbuffer_end = (stbi_uc *)buffer + len; 00090 48 63 85 68 16 00 00 movsxd rax, DWORD PTR len$[rbp] 00097 48 8b 8d 60 16 00 00 mov rcx, QWORD PTR buffer$[rbp] 0009e 48 03 c8 add rcx, rax 000a1 48 8b c1 mov rax, rcx 000a4 48 89 45 18 mov QWORD PTR a$[rbp+8], rax ; 4550 : if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { 000a8 c7 44 24 20 01 00 00 00 mov DWORD PTR [rsp+32], 1 000b0 41 b9 01 00 00 00 mov r9d, 1 000b6 44 8b 85 70 16 00 00 mov r8d, DWORD PTR initial_size$[rbp] 000bd 48 8b 95 28 10 00 00 mov rdx, QWORD PTR p$[rbp] 000c4 48 8d 4d 10 lea rcx, QWORD PTR a$[rbp] 000c8 e8 00 00 00 00 call stbi__do_zlib 000cd 85 c0 test eax, eax 000cf 74 29 je SHORT $LN3@stbi_zlib_ ; 4551 : if (outlen) 000d1 48 83 bd 78 16 00 00 00 cmp QWORD PTR outlen$[rbp], 0 000d9 74 17 je SHORT $LN5@stbi_zlib_ ; 4552 : *outlen = (int)(a.zout - a.zout_start); 000db 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32] 000df 48 8b 4d 28 mov rcx, QWORD PTR a$[rbp+24] 000e3 48 2b c8 sub rcx, rax 000e6 48 8b c1 mov rax, rcx 000e9 48 8b 8d 78 16 00 00 mov rcx, QWORD PTR outlen$[rbp] 000f0 89 01 mov DWORD PTR [rcx], eax $LN5@stbi_zlib_: ; 4553 : return a.zout_start; 000f2 48 8b 45 30 mov rax, QWORD PTR a$[rbp+32] 000f6 eb 0f jmp SHORT $LN1@stbi_zlib_ ; 4554 : } else { 000f8 eb 0d jmp SHORT $LN4@stbi_zlib_ $LN3@stbi_zlib_: ; 4555 : STBI_FREE(a.zout_start); 000fa 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32] 000fe ff 15 00 00 00 00 call QWORD PTR __imp_free 00104 90 npad 1 ; 4556 : return NULL; 00105 33 c0 xor eax, eax $LN4@stbi_zlib_: $LN1@stbi_zlib_: ; 4557 : } ; 4558 : } 00107 48 8b f8 mov rdi, rax 0010a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 0010e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_zlib_decode_malloc_guesssize$rtcFrameData 00115 e8 00 00 00 00 call _RTC_CheckStackVars 0011a 48 8b c7 mov rax, rdi 0011d 48 8b 8d 38 16 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00124 48 33 cd xor rcx, rbp 00127 e8 00 00 00 00 call __security_check_cookie 0012c 48 8d a5 48 16 00 00 lea rsp, QWORD PTR [rbp+5704] 00133 5f pop rdi 00134 5d pop rbp 00135 c3 ret 0 stbi_zlib_decode_malloc_guesssize ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_set_flip_vertically_on_load_thread _TEXT SEGMENT flag_true_if_should_flip$ = 224 stbi_set_flip_vertically_on_load_thread PROC ; COMDAT ; 599 : { $LN3: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 600 : stbi__vertically_flip_on_load_local = flag_true_if_should_flip; 0001f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local 00024 8b c0 mov eax, eax 00026 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0002c 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00035 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00039 8b 95 e0 00 00 00 mov edx, DWORD PTR flag_true_if_should_flip$[rbp] 0003f 89 14 08 mov DWORD PTR [rax+rcx], edx ; 601 : stbi__vertically_flip_on_load_set = 1; 00042 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set 00047 8b c0 mov eax, eax 00049 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0004f 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00058 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 0005c c7 04 08 01 00 00 00 mov DWORD PTR [rax+rcx], 1 ; 602 : } 00063 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0006a 5f pop rdi 0006b 5d pop rbp 0006c c3 ret 0 stbi_set_flip_vertically_on_load_thread ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_convert_iphone_png_to_rgb_thread _TEXT SEGMENT flag_true_if_should_convert$ = 224 stbi_convert_iphone_png_to_rgb_thread PROC ; COMDAT ; 5176 : { $LN3: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 5177 : stbi__de_iphone_flag_local = flag_true_if_should_convert; 0001f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_local 00024 8b c0 mov eax, eax 00026 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0002c 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00035 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00039 8b 95 e0 00 00 00 mov edx, DWORD PTR flag_true_if_should_convert$[rbp] 0003f 89 14 08 mov DWORD PTR [rax+rcx], edx ; 5178 : stbi__de_iphone_flag_set = 1; 00042 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_set 00047 8b c0 mov eax, eax 00049 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0004f 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00058 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 0005c c7 04 08 01 00 00 00 mov DWORD PTR [rax+rcx], 1 ; 5179 : } 00063 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0006a 5f pop rdi 0006b 5d pop rbp 0006c c3 ret 0 stbi_convert_iphone_png_to_rgb_thread ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_set_unpremultiply_on_load_thread _TEXT SEGMENT flag_true_if_should_unpremultiply$ = 224 stbi_set_unpremultiply_on_load_thread PROC ; COMDAT ; 5170 : { $LN3: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 5171 : stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; 0001f b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__unpremultiply_on_load_local 00024 8b c0 mov eax, eax 00026 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0002c 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00035 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00039 8b 95 e0 00 00 00 mov edx, DWORD PTR flag_true_if_should_unpremultiply$[rbp] 0003f 89 14 08 mov DWORD PTR [rax+rcx], edx ; 5172 : stbi__unpremultiply_on_load_set = 1; 00042 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__unpremultiply_on_load_set 00047 8b c0 mov eax, eax 00049 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 0004f 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00058 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 0005c c7 04 08 01 00 00 00 mov DWORD PTR [rax+rcx], 1 ; 5173 : } 00063 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0006a 5f pop rdi 0006b 5d pop rbp 0006c c3 ret 0 stbi_set_unpremultiply_on_load_thread ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_set_flip_vertically_on_load _TEXT SEGMENT flag_true_if_should_flip$ = 224 stbi_set_flip_vertically_on_load PROC ; COMDAT ; 589 : { $LN3: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 590 : stbi__vertically_flip_on_load_global = flag_true_if_should_flip; 0001f 8b 85 e0 00 00 00 mov eax, DWORD PTR flag_true_if_should_flip$[rbp] 00025 89 05 00 00 00 00 mov DWORD PTR stbi__vertically_flip_on_load_global, eax ; 591 : } 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00032 5f pop rdi 00033 5d pop rbp 00034 c3 ret 0 stbi_set_flip_vertically_on_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_convert_iphone_png_to_rgb _TEXT SEGMENT flag_true_if_should_convert$ = 224 stbi_convert_iphone_png_to_rgb PROC ; COMDAT ; 5158 : { $LN3: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 5159 : stbi__de_iphone_flag_global = flag_true_if_should_convert; 0001f 8b 85 e0 00 00 00 mov eax, DWORD PTR flag_true_if_should_convert$[rbp] 00025 89 05 00 00 00 00 mov DWORD PTR stbi__de_iphone_flag_global, eax ; 5160 : } 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00032 5f pop rdi 00033 5d pop rbp 00034 c3 ret 0 stbi_convert_iphone_png_to_rgb ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_set_unpremultiply_on_load _TEXT SEGMENT flag_true_if_should_unpremultiply$ = 224 stbi_set_unpremultiply_on_load PROC ; COMDAT ; 5153 : { $LN3: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx 00004 55 push rbp 00005 57 push rdi 00006 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00012 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001e 90 npad 1 ; 5154 : stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; 0001f 8b 85 e0 00 00 00 mov eax, DWORD PTR flag_true_if_should_unpremultiply$[rbp] 00025 89 05 00 00 00 00 mov DWORD PTR stbi__unpremultiply_on_load_global, eax ; 5155 : } 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00032 5f pop rdi 00033 5d pop rbp 00034 c3 ret 0 stbi_set_unpremultiply_on_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_is_16_bit_from_file _TEXT SEGMENT r$ = 4 s$ = 48 pos$ = 292 __$ArrayPad$ = 504 f$ = 544 stbi_is_16_bit_from_file PROC ; COMDAT ; 8212 : { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 02 00 00 sub rsp, 552 ; 00000228H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00018 b9 52 00 00 00 mov ecx, 82 ; 00000052H 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00022 f3 ab rep stosd 00024 48 8b 8c 24 48 02 00 00 mov rcx, QWORD PTR [rsp+584] 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00033 48 33 c5 xor rax, rbp 00036 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00049 90 npad 1 ; 8213 : int r; ; 8214 : stbi__context s; ; 8215 : long pos = ftell(f); 0004a 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR f$[rbp] 00051 ff 15 00 00 00 00 call QWORD PTR __imp_ftell 00057 89 85 24 01 00 00 mov DWORD PTR pos$[rbp], eax ; 8216 : stbi__start_file(&s, f); 0005d 48 8b 95 20 02 00 00 mov rdx, QWORD PTR f$[rbp] 00064 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 00068 e8 00 00 00 00 call stbi__start_file 0006d 90 npad 1 ; 8217 : r = stbi__is_16_main(&s); 0006e 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 00072 e8 00 00 00 00 call stbi__is_16_main 00077 89 45 04 mov DWORD PTR r$[rbp], eax ; 8218 : fseek(f, pos, SEEK_SET); 0007a 45 33 c0 xor r8d, r8d 0007d 8b 95 24 01 00 00 mov edx, DWORD PTR pos$[rbp] 00083 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR f$[rbp] 0008a ff 15 00 00 00 00 call QWORD PTR __imp_fseek 00090 90 npad 1 ; 8219 : return r; 00091 8b 45 04 mov eax, DWORD PTR r$[rbp] ; 8220 : } 00094 8b f8 mov edi, eax 00096 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0009a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_is_16_bit_from_file$rtcFrameData 000a1 e8 00 00 00 00 call _RTC_CheckStackVars 000a6 8b c7 mov eax, edi 000a8 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000af 48 33 cd xor rcx, rbp 000b2 e8 00 00 00 00 call __security_check_cookie 000b7 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] 000be 5f pop rdi 000bf 5d pop rbp 000c0 c3 ret 0 stbi_is_16_bit_from_file ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_is_16_bit _TEXT SEGMENT f$ = 8 result$ = 36 filename$ = 288 stbi_is_16_bit PROC ; COMDAT ; 8201 : { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 8202 : FILE *f = stbi__fopen(filename, "rb"); 00020 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ 00027 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR filename$[rbp] 0002e e8 00 00 00 00 call stbi__fopen 00033 48 89 45 08 mov QWORD PTR f$[rbp], rax ; 8203 : int result; ; 8204 : if (!f) 00037 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 0003c 75 0e jne SHORT $LN2@stbi_is_16 ; 8205 : return stbi__err("can't fopen", "Unable to open file"); 0003e 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ 00045 e8 00 00 00 00 call stbi__err 0004a eb 1a jmp SHORT $LN1@stbi_is_16 $LN2@stbi_is_16: ; 8206 : result = stbi_is_16_bit_from_file(f); 0004c 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 00050 e8 00 00 00 00 call stbi_is_16_bit_from_file 00055 89 45 24 mov DWORD PTR result$[rbp], eax ; 8207 : fclose(f); 00058 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 0005c ff 15 00 00 00 00 call QWORD PTR __imp_fclose 00062 90 npad 1 ; 8208 : return result; 00063 8b 45 24 mov eax, DWORD PTR result$[rbp] $LN1@stbi_is_16: ; 8209 : } 00066 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 0006d 5f pop rdi 0006e 5d pop rbp 0006f c3 ret 0 stbi_is_16_bit ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_info_from_file _TEXT SEGMENT r$ = 4 s$ = 48 pos$ = 292 __$ArrayPad$ = 504 f$ = 544 x$ = 552 y$ = 560 comp$ = 568 stbi_info_from_file PROC ; COMDAT ; 8190 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 02 00 00 sub rsp, 552 ; 00000228H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 52 00 00 00 mov ecx, 82 ; 00000052H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 48 02 00 00 mov rcx, QWORD PTR [rsp+584] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 8191 : int r; ; 8192 : stbi__context s; ; 8193 : long pos = ftell(f); 00059 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR f$[rbp] 00060 ff 15 00 00 00 00 call QWORD PTR __imp_ftell 00066 89 85 24 01 00 00 mov DWORD PTR pos$[rbp], eax ; 8194 : stbi__start_file(&s, f); 0006c 48 8b 95 20 02 00 00 mov rdx, QWORD PTR f$[rbp] 00073 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 00077 e8 00 00 00 00 call stbi__start_file 0007c 90 npad 1 ; 8195 : r = stbi__info_main(&s, x, y, comp); 0007d 4c 8b 8d 38 02 00 00 mov r9, QWORD PTR comp$[rbp] 00084 4c 8b 85 30 02 00 00 mov r8, QWORD PTR y$[rbp] 0008b 48 8b 95 28 02 00 00 mov rdx, QWORD PTR x$[rbp] 00092 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 00096 e8 00 00 00 00 call stbi__info_main 0009b 89 45 04 mov DWORD PTR r$[rbp], eax ; 8196 : fseek(f, pos, SEEK_SET); 0009e 45 33 c0 xor r8d, r8d 000a1 8b 95 24 01 00 00 mov edx, DWORD PTR pos$[rbp] 000a7 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR f$[rbp] 000ae ff 15 00 00 00 00 call QWORD PTR __imp_fseek 000b4 90 npad 1 ; 8197 : return r; 000b5 8b 45 04 mov eax, DWORD PTR r$[rbp] ; 8198 : } 000b8 8b f8 mov edi, eax 000ba 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 000be 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_info_from_file$rtcFrameData 000c5 e8 00 00 00 00 call _RTC_CheckStackVars 000ca 8b c7 mov eax, edi 000cc 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000d3 48 33 cd xor rcx, rbp 000d6 e8 00 00 00 00 call __security_check_cookie 000db 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] 000e2 5f pop rdi 000e3 5d pop rbp 000e4 c3 ret 0 stbi_info_from_file ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_info _TEXT SEGMENT f$ = 8 result$ = 36 filename$ = 288 x$ = 296 y$ = 304 comp$ = 312 stbi_info PROC ; COMDAT ; 8179 : { $LN4: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 8180 : FILE *f = stbi__fopen(filename, "rb"); 0002f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR filename$[rbp] 0003d e8 00 00 00 00 call stbi__fopen 00042 48 89 45 08 mov QWORD PTR f$[rbp], rax ; 8181 : int result; ; 8182 : if (!f) 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 0004b 75 0e jne SHORT $LN2@stbi_info ; 8183 : return stbi__err("can't fopen", "Unable to open file"); 0004d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ 00054 e8 00 00 00 00 call stbi__err 00059 eb 2f jmp SHORT $LN1@stbi_info $LN2@stbi_info: ; 8184 : result = stbi_info_from_file(f, x, y, comp); 0005b 4c 8b 8d 38 01 00 00 mov r9, QWORD PTR comp$[rbp] 00062 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 00069 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 00070 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 00074 e8 00 00 00 00 call stbi_info_from_file 00079 89 45 24 mov DWORD PTR result$[rbp], eax ; 8185 : fclose(f); 0007c 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 00080 ff 15 00 00 00 00 call QWORD PTR __imp_fclose 00086 90 npad 1 ; 8186 : return result; 00087 8b 45 24 mov eax, DWORD PTR result$[rbp] $LN1@stbi_info: ; 8187 : } 0008a 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 00091 5f pop rdi 00092 5d pop rbp 00093 c3 ret 0 stbi_info ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_is_16_bit_from_callbacks _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 c$ = 480 user$ = 488 stbi_is_16_bit_from_callbacks PROC ; COMDAT ; 8246 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001d b9 42 00 00 00 mov ecx, 66 ; 00000042H 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0004e 90 npad 1 ; 8247 : stbi__context s; ; 8248 : stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user); 0004f 4c 8b 85 e8 01 00 00 mov r8, QWORD PTR user$[rbp] 00056 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR c$[rbp] 0005d 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00061 e8 00 00 00 00 call stbi__start_callbacks 00066 90 npad 1 ; 8249 : return stbi__is_16_main(&s); 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006b e8 00 00 00 00 call stbi__is_16_main ; 8250 : } 00070 48 8b f8 mov rdi, rax 00073 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00077 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_is_16_bit_from_callbacks$rtcFrameData 0007e e8 00 00 00 00 call _RTC_CheckStackVars 00083 48 8b c7 mov rax, rdi 00086 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0008d 48 33 cd xor rcx, rbp 00090 e8 00 00 00 00 call __security_check_cookie 00095 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 0009c 5f pop rdi 0009d 5d pop rbp 0009e c3 ret 0 stbi_is_16_bit_from_callbacks ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_is_16_bit_from_memory _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 buffer$ = 480 len$ = 488 stbi_is_16_bit_from_memory PROC ; COMDAT ; 8239 : { $LN3: 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001c b9 42 00 00 00 mov ecx, 66 ; 00000042H 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00026 f3 ab rep stosd 00028 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00037 48 33 c5 xor rax, rbp 0003a 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00041 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0004d 90 npad 1 ; 8240 : stbi__context s; ; 8241 : stbi__start_mem(&s, buffer, len); 0004e 44 8b 85 e8 01 00 00 mov r8d, DWORD PTR len$[rbp] 00055 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR buffer$[rbp] 0005c 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00060 e8 00 00 00 00 call stbi__start_mem 00065 90 npad 1 ; 8242 : return stbi__is_16_main(&s); 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006a e8 00 00 00 00 call stbi__is_16_main ; 8243 : } 0006f 48 8b f8 mov rdi, rax 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00076 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_is_16_bit_from_memory$rtcFrameData 0007d e8 00 00 00 00 call _RTC_CheckStackVars 00082 48 8b c7 mov rax, rdi 00085 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0008c 48 33 cd xor rcx, rbp 0008f e8 00 00 00 00 call __security_check_cookie 00094 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 0009b 5f pop rdi 0009c 5d pop rbp 0009d c3 ret 0 stbi_is_16_bit_from_memory ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_info_from_callbacks _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 c$ = 480 user$ = 488 x$ = 496 y$ = 504 comp$ = 512 stbi_info_from_callbacks PROC ; COMDAT ; 8232 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 8233 : stbi__context s; ; 8234 : stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user); 00059 4c 8b 85 e8 01 00 00 mov r8, QWORD PTR user$[rbp] 00060 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR c$[rbp] 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006b e8 00 00 00 00 call stbi__start_callbacks 00070 90 npad 1 ; 8235 : return stbi__info_main(&s, x, y, comp); 00071 4c 8b 8d 00 02 00 00 mov r9, QWORD PTR comp$[rbp] 00078 4c 8b 85 f8 01 00 00 mov r8, QWORD PTR y$[rbp] 0007f 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR x$[rbp] 00086 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0008a e8 00 00 00 00 call stbi__info_main ; 8236 : } 0008f 48 8b f8 mov rdi, rax 00092 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00096 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_info_from_callbacks$rtcFrameData 0009d e8 00 00 00 00 call _RTC_CheckStackVars 000a2 48 8b c7 mov rax, rdi 000a5 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000ac 48 33 cd xor rcx, rbp 000af e8 00 00 00 00 call __security_check_cookie 000b4 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000bb 5f pop rdi 000bc 5d pop rbp 000bd c3 ret 0 stbi_info_from_callbacks ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_info_from_memory _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 buffer$ = 480 len$ = 488 x$ = 496 y$ = 504 comp$ = 512 stbi_info_from_memory PROC ; COMDAT ; 8224 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00021 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00026 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00030 f3 ab rep stosd 00032 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] 0003a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00041 48 33 c5 xor rax, rbp 00044 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00057 90 npad 1 ; 8225 : stbi__context s; ; 8226 : stbi__start_mem(&s, buffer, len); 00058 44 8b 85 e8 01 00 00 mov r8d, DWORD PTR len$[rbp] 0005f 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR buffer$[rbp] 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006a e8 00 00 00 00 call stbi__start_mem 0006f 90 npad 1 ; 8227 : return stbi__info_main(&s, x, y, comp); 00070 4c 8b 8d 00 02 00 00 mov r9, QWORD PTR comp$[rbp] 00077 4c 8b 85 f8 01 00 00 mov r8, QWORD PTR y$[rbp] 0007e 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR x$[rbp] 00085 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00089 e8 00 00 00 00 call stbi__info_main ; 8228 : } 0008e 48 8b f8 mov rdi, rax 00091 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00095 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_info_from_memory$rtcFrameData 0009c e8 00 00 00 00 call _RTC_CheckStackVars 000a1 48 8b c7 mov rax, rdi 000a4 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000ab 48 33 cd xor rcx, rbp 000ae e8 00 00 00 00 call __security_check_cookie 000b3 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000ba 5f pop rdi 000bb 5d pop rbp 000bc c3 ret 0 stbi_info_from_memory ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_image_free _TEXT SEGMENT retval_from_stbi_load$ = 224 stbi_image_free PROC ; COMDAT ; 574 : { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 575 : STBI_FREE(retval_from_stbi_load); 00020 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR retval_from_stbi_load$[rbp] 00027 ff 15 00 00 00 00 call QWORD PTR __imp_free 0002d 90 npad 1 ; 576 : } 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00035 5f pop rdi 00036 5d pop rbp 00037 c3 ret 0 stbi_image_free ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_failure_reason _TEXT SEGMENT stbi_failure_reason PROC ; COMDAT ; 430 : { $LN3: 00000 40 55 push rbp 00002 57 push rdi 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0000f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001b 90 npad 1 ; 431 : return stbi__g_failure_reason; 0001c b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__g_failure_reason 00021 8b c0 mov eax, eax 00023 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 00029 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 00032 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 00036 48 8b 04 08 mov rax, QWORD PTR [rax+rcx] ; 432 : } 0003a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00041 5f pop rdi 00042 5d pop rbp 00043 c3 ret 0 stbi_failure_reason ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_is_hdr_from_file _TEXT SEGMENT pos$ = 4 res$ = 36 s$ = 80 __$ArrayPad$ = 504 f$ = 544 stbi_is_hdr_from_file PROC ; COMDAT ; 1064 : { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 02 00 00 sub rsp, 552 ; 00000228H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00018 b9 52 00 00 00 mov ecx, 82 ; 00000052H 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00022 f3 ab rep stosd 00024 48 8b 8c 24 48 02 00 00 mov rcx, QWORD PTR [rsp+584] 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00033 48 33 c5 xor rax, rbp 00036 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00049 90 npad 1 ; 1065 : #ifndef STBI_NO_HDR ; 1066 : long pos = ftell(f); 0004a 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR f$[rbp] 00051 ff 15 00 00 00 00 call QWORD PTR __imp_ftell 00057 89 45 04 mov DWORD PTR pos$[rbp], eax ; 1067 : int res; ; 1068 : stbi__context s; ; 1069 : stbi__start_file(&s, f); 0005a 48 8b 95 20 02 00 00 mov rdx, QWORD PTR f$[rbp] 00061 48 8d 4d 50 lea rcx, QWORD PTR s$[rbp] 00065 e8 00 00 00 00 call stbi__start_file 0006a 90 npad 1 ; 1070 : res = stbi__hdr_test(&s); 0006b 48 8d 4d 50 lea rcx, QWORD PTR s$[rbp] 0006f e8 00 00 00 00 call stbi__hdr_test 00074 89 45 24 mov DWORD PTR res$[rbp], eax ; 1071 : fseek(f, pos, SEEK_SET); 00077 45 33 c0 xor r8d, r8d 0007a 8b 55 04 mov edx, DWORD PTR pos$[rbp] 0007d 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR f$[rbp] 00084 ff 15 00 00 00 00 call QWORD PTR __imp_fseek 0008a 90 npad 1 ; 1072 : return res; 0008b 8b 45 24 mov eax, DWORD PTR res$[rbp] ; 1073 : #else ; 1074 : STBI_NOTUSED(f); ; 1075 : return 0; ; 1076 : #endif ; 1077 : } 0008e 8b f8 mov edi, eax 00090 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00094 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_is_hdr_from_file$rtcFrameData 0009b e8 00 00 00 00 call _RTC_CheckStackVars 000a0 8b c7 mov eax, edi 000a2 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000a9 48 33 cd xor rcx, rbp 000ac e8 00 00 00 00 call __security_check_cookie 000b1 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] 000b8 5f pop rdi 000b9 5d pop rbp 000ba c3 ret 0 stbi_is_hdr_from_file ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_is_hdr _TEXT SEGMENT f$ = 8 result$ = 36 filename$ = 288 stbi_is_hdr PROC ; COMDAT ; 1053 : { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f 90 npad 1 ; 1054 : FILE *f = stbi__fopen(filename, "rb"); 00020 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ 00027 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR filename$[rbp] 0002e e8 00 00 00 00 call stbi__fopen 00033 48 89 45 08 mov QWORD PTR f$[rbp], rax ; 1055 : int result = 0; 00037 c7 45 24 00 00 00 00 mov DWORD PTR result$[rbp], 0 ; 1056 : if (f) { 0003e 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 00043 74 17 je SHORT $LN2@stbi_is_hd ; 1057 : result = stbi_is_hdr_from_file(f); 00045 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 00049 e8 00 00 00 00 call stbi_is_hdr_from_file 0004e 89 45 24 mov DWORD PTR result$[rbp], eax ; 1058 : fclose(f); 00051 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 00055 ff 15 00 00 00 00 call QWORD PTR __imp_fclose 0005b 90 npad 1 $LN2@stbi_is_hd: ; 1059 : } ; 1060 : return result; 0005c 8b 45 24 mov eax, DWORD PTR result$[rbp] ; 1061 : } 0005f 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 00066 5f pop rdi 00067 5d pop rbp 00068 c3 ret 0 stbi_is_hdr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_is_hdr_from_memory _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 buffer$ = 480 len$ = 488 stbi_is_hdr_from_memory PROC ; COMDAT ; 1039 : { $LN3: 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00009 55 push rbp 0000a 57 push rdi 0000b 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001c b9 42 00 00 00 mov ecx, 66 ; 00000042H 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00026 f3 ab rep stosd 00028 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00037 48 33 c5 xor rax, rbp 0003a 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00041 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0004d 90 npad 1 ; 1040 : #ifndef STBI_NO_HDR ; 1041 : stbi__context s; ; 1042 : stbi__start_mem(&s, buffer, len); 0004e 44 8b 85 e8 01 00 00 mov r8d, DWORD PTR len$[rbp] 00055 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR buffer$[rbp] 0005c 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00060 e8 00 00 00 00 call stbi__start_mem 00065 90 npad 1 ; 1043 : return stbi__hdr_test(&s); 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006a e8 00 00 00 00 call stbi__hdr_test ; 1044 : #else ; 1045 : STBI_NOTUSED(buffer); ; 1046 : STBI_NOTUSED(len); ; 1047 : return 0; ; 1048 : #endif ; 1049 : } 0006f 48 8b f8 mov rdi, rax 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00076 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_is_hdr_from_memory$rtcFrameData 0007d e8 00 00 00 00 call _RTC_CheckStackVars 00082 48 8b c7 mov rax, rdi 00085 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0008c 48 33 cd xor rcx, rbp 0008f e8 00 00 00 00 call __security_check_cookie 00094 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 0009b 5f pop rdi 0009c 5d pop rbp 0009d c3 ret 0 stbi_is_hdr_from_memory ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_is_hdr_from_callbacks _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 clbk$ = 480 user$ = 488 stbi_is_hdr_from_callbacks PROC ; COMDAT ; 1081 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001d b9 42 00 00 00 mov ecx, 66 ; 00000042H 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0004e 90 npad 1 ; 1082 : #ifndef STBI_NO_HDR ; 1083 : stbi__context s; ; 1084 : stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); 0004f 4c 8b 85 e8 01 00 00 mov r8, QWORD PTR user$[rbp] 00056 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR clbk$[rbp] 0005d 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00061 e8 00 00 00 00 call stbi__start_callbacks 00066 90 npad 1 ; 1085 : return stbi__hdr_test(&s); 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006b e8 00 00 00 00 call stbi__hdr_test ; 1086 : #else ; 1087 : STBI_NOTUSED(clbk); ; 1088 : STBI_NOTUSED(user); ; 1089 : return 0; ; 1090 : #endif ; 1091 : } 00070 48 8b f8 mov rdi, rax 00073 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00077 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_is_hdr_from_callbacks$rtcFrameData 0007e e8 00 00 00 00 call _RTC_CheckStackVars 00083 48 8b c7 mov rax, rdi 00086 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0008d 48 33 cd xor rcx, rbp 00090 e8 00 00 00 00 call __security_check_cookie 00095 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 0009c 5f pop rdi 0009d 5d pop rbp 0009e c3 ret 0 stbi_is_hdr_from_callbacks ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_ldr_to_hdr_scale _TEXT SEGMENT scale$ = 224 stbi_ldr_to_hdr_scale PROC ; COMDAT ; 1101 : { $LN3: 00000 f3 0f 11 44 24 08 movss DWORD PTR [rsp+8], xmm0 00006 55 push rbp 00007 57 push rdi 00008 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00014 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00020 90 npad 1 ; 1102 : stbi__l2h_scale = scale; 00021 f3 0f 10 85 e0 00 00 00 movss xmm0, DWORD PTR scale$[rbp] 00029 f3 0f 11 05 00 00 00 00 movss DWORD PTR stbi__l2h_scale, xmm0 ; 1103 : } 00031 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00038 5f pop rdi 00039 5d pop rbp 0003a c3 ret 0 stbi_ldr_to_hdr_scale ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_ldr_to_hdr_gamma _TEXT SEGMENT gamma$ = 224 stbi_ldr_to_hdr_gamma PROC ; COMDAT ; 1097 : { $LN3: 00000 f3 0f 11 44 24 08 movss DWORD PTR [rsp+8], xmm0 00006 55 push rbp 00007 57 push rdi 00008 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00014 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00020 90 npad 1 ; 1098 : stbi__l2h_gamma = gamma; 00021 f3 0f 10 85 e0 00 00 00 movss xmm0, DWORD PTR gamma$[rbp] 00029 f3 0f 11 05 00 00 00 00 movss DWORD PTR stbi__l2h_gamma, xmm0 ; 1099 : } 00031 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00038 5f pop rdi 00039 5d pop rbp 0003a c3 ret 0 stbi_ldr_to_hdr_gamma ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_hdr_to_ldr_scale _TEXT SEGMENT scale$ = 224 stbi_hdr_to_ldr_scale PROC ; COMDAT ; 1113 : { $LN3: 00000 f3 0f 11 44 24 08 movss DWORD PTR [rsp+8], xmm0 00006 55 push rbp 00007 57 push rdi 00008 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00014 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00020 90 npad 1 ; 1114 : stbi__h2l_scale_i = 1 / scale; 00021 f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 00029 f3 0f 5e 85 e0 00 00 00 divss xmm0, DWORD PTR scale$[rbp] 00031 f3 0f 11 05 00 00 00 00 movss DWORD PTR stbi__h2l_scale_i, xmm0 ; 1115 : } 00039 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00040 5f pop rdi 00041 5d pop rbp 00042 c3 ret 0 stbi_hdr_to_ldr_scale ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_hdr_to_ldr_gamma _TEXT SEGMENT gamma$ = 224 stbi_hdr_to_ldr_gamma PROC ; COMDAT ; 1109 : { $LN3: 00000 f3 0f 11 44 24 08 movss DWORD PTR [rsp+8], xmm0 00006 55 push rbp 00007 57 push rdi 00008 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00014 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00020 90 npad 1 ; 1110 : stbi__h2l_gamma_i = 1 / gamma; 00021 f3 0f 10 05 00 00 00 00 movss xmm0, DWORD PTR __real@3f800000 00029 f3 0f 5e 85 e0 00 00 00 divss xmm0, DWORD PTR gamma$[rbp] 00031 f3 0f 11 05 00 00 00 00 movss DWORD PTR stbi__h2l_gamma_i, xmm0 ; 1111 : } 00039 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00040 5f pop rdi 00041 5d pop rbp 00042 c3 ret 0 stbi_hdr_to_ldr_gamma ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_loadf_from_file _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 f$ = 480 x$ = 488 y$ = 496 comp$ = 504 req_comp$ = 512 stbi_loadf_from_file PROC ; COMDAT ; 1025 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec f8 01 00 00 sub rsp, 504 ; 000001f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 18 02 00 00 mov rcx, QWORD PTR [rsp+536] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 1026 : stbi__context s; ; 1027 : stbi__start_file(&s, f); 00059 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR f$[rbp] 00060 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00064 e8 00 00 00 00 call stbi__start_file 00069 90 npad 1 ; 1028 : return stbi__loadf_main(&s, x, y, comp, req_comp); 0006a 8b 85 00 02 00 00 mov eax, DWORD PTR req_comp$[rbp] 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax 00074 4c 8b 8d f8 01 00 00 mov r9, QWORD PTR comp$[rbp] 0007b 4c 8b 85 f0 01 00 00 mov r8, QWORD PTR y$[rbp] 00082 48 8b 95 e8 01 00 00 mov rdx, QWORD PTR x$[rbp] 00089 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0008d e8 00 00 00 00 call stbi__loadf_main ; 1029 : } 00092 48 8b f8 mov rdi, rax 00095 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00099 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_loadf_from_file$rtcFrameData 000a0 e8 00 00 00 00 call _RTC_CheckStackVars 000a5 48 8b c7 mov rax, rdi 000a8 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000af 48 33 cd xor rcx, rbp 000b2 e8 00 00 00 00 call __security_check_cookie 000b7 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000be 5f pop rdi 000bf 5d pop rbp 000c0 c3 ret 0 stbi_loadf_from_file ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_loadf _TEXT SEGMENT result$ = 8 f$ = 40 tv71 = 248 filename$ = 288 x$ = 296 y$ = 304 comp$ = 312 req_comp$ = 320 stbi_loadf PROC ; COMDAT ; 1014 : { $LN6: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 1015 : float *result; ; 1016 : FILE *f = stbi__fopen(filename, "rb"); 0002f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR filename$[rbp] 0003d e8 00 00 00 00 call stbi__fopen 00042 48 89 45 28 mov QWORD PTR f$[rbp], rax ; 1017 : if (!f) 00046 48 83 7d 28 00 cmp QWORD PTR f$[rbp], 0 0004b 75 31 jne SHORT $LN2@stbi_loadf ; 1018 : return stbi__errpf("can't fopen", "Unable to open file"); 0004d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ 00054 e8 00 00 00 00 call stbi__err 00059 85 c0 test eax, eax 0005b 74 0d je SHORT $LN4@stbi_loadf 0005d 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 00068 eb 0b jmp SHORT $LN5@stbi_loadf $LN4@stbi_loadf: 0006a 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 $LN5@stbi_loadf: 00075 48 8b 85 f8 00 00 00 mov rax, QWORD PTR tv71[rbp] 0007c eb 3b jmp SHORT $LN1@stbi_loadf $LN2@stbi_loadf: ; 1019 : result = stbi_loadf_from_file(f, x, y, comp, req_comp); 0007e 8b 85 40 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00084 89 44 24 20 mov DWORD PTR [rsp+32], eax 00088 4c 8b 8d 38 01 00 00 mov r9, QWORD PTR comp$[rbp] 0008f 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 00096 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 0009d 48 8b 4d 28 mov rcx, QWORD PTR f$[rbp] 000a1 e8 00 00 00 00 call stbi_loadf_from_file 000a6 48 89 45 08 mov QWORD PTR result$[rbp], rax ; 1020 : fclose(f); 000aa 48 8b 4d 28 mov rcx, QWORD PTR f$[rbp] 000ae ff 15 00 00 00 00 call QWORD PTR __imp_fclose 000b4 90 npad 1 ; 1021 : return result; 000b5 48 8b 45 08 mov rax, QWORD PTR result$[rbp] $LN1@stbi_loadf: ; 1022 : } 000b9 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000c0 5f pop rdi 000c1 5d pop rbp 000c2 c3 ret 0 stbi_loadf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_loadf_from_callbacks _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 clbk$ = 480 user$ = 488 x$ = 496 y$ = 504 comp$ = 512 req_comp$ = 520 stbi_loadf_from_callbacks PROC ; COMDAT ; 1006 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec f8 01 00 00 sub rsp, 504 ; 000001f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 18 02 00 00 mov rcx, QWORD PTR [rsp+536] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 1007 : stbi__context s; ; 1008 : stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); 00059 4c 8b 85 e8 01 00 00 mov r8, QWORD PTR user$[rbp] 00060 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR clbk$[rbp] 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006b e8 00 00 00 00 call stbi__start_callbacks 00070 90 npad 1 ; 1009 : return stbi__loadf_main(&s, x, y, comp, req_comp); 00071 8b 85 08 02 00 00 mov eax, DWORD PTR req_comp$[rbp] 00077 89 44 24 20 mov DWORD PTR [rsp+32], eax 0007b 4c 8b 8d 00 02 00 00 mov r9, QWORD PTR comp$[rbp] 00082 4c 8b 85 f8 01 00 00 mov r8, QWORD PTR y$[rbp] 00089 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR x$[rbp] 00090 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00094 e8 00 00 00 00 call stbi__loadf_main ; 1010 : } 00099 48 8b f8 mov rdi, rax 0009c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 000a0 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_loadf_from_callbacks$rtcFrameData 000a7 e8 00 00 00 00 call _RTC_CheckStackVars 000ac 48 8b c7 mov rax, rdi 000af 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000b6 48 33 cd xor rcx, rbp 000b9 e8 00 00 00 00 call __security_check_cookie 000be 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000c5 5f pop rdi 000c6 5d pop rbp 000c7 c3 ret 0 stbi_loadf_from_callbacks ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_loadf_from_memory _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 buffer$ = 480 len$ = 488 x$ = 496 y$ = 504 comp$ = 512 req_comp$ = 520 stbi_loadf_from_memory PROC ; COMDAT ; 998 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec f8 01 00 00 sub rsp, 504 ; 000001f8H 0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00021 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00026 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00030 f3 ab rep stosd 00032 48 8b 8c 24 18 02 00 00 mov rcx, QWORD PTR [rsp+536] 0003a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00041 48 33 c5 xor rax, rbp 00044 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00057 90 npad 1 ; 999 : stbi__context s; ; 1000 : stbi__start_mem(&s, buffer, len); 00058 44 8b 85 e8 01 00 00 mov r8d, DWORD PTR len$[rbp] 0005f 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR buffer$[rbp] 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006a e8 00 00 00 00 call stbi__start_mem 0006f 90 npad 1 ; 1001 : return stbi__loadf_main(&s, x, y, comp, req_comp); 00070 8b 85 08 02 00 00 mov eax, DWORD PTR req_comp$[rbp] 00076 89 44 24 20 mov DWORD PTR [rsp+32], eax 0007a 4c 8b 8d 00 02 00 00 mov r9, QWORD PTR comp$[rbp] 00081 4c 8b 85 f8 01 00 00 mov r8, QWORD PTR y$[rbp] 00088 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR x$[rbp] 0008f 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00093 e8 00 00 00 00 call stbi__loadf_main ; 1002 : } 00098 48 8b f8 mov rdi, rax 0009b 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 0009f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_loadf_from_memory$rtcFrameData 000a6 e8 00 00 00 00 call _RTC_CheckStackVars 000ab 48 8b c7 mov rax, rdi 000ae 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000b5 48 33 cd xor rcx, rbp 000b8 e8 00 00 00 00 call __security_check_cookie 000bd 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000c4 5f pop rdi 000c5 5d pop rbp 000c6 c3 ret 0 stbi_loadf_from_memory ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_from_file_16 _TEXT SEGMENT result$ = 8 s$ = 48 __$ArrayPad$ = 472 f$ = 512 x$ = 520 y$ = 528 comp$ = 536 req_comp$ = 544 stbi_load_from_file_16 PROC ; COMDAT ; 903 : { $LN4: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 18 02 00 00 sub rsp, 536 ; 00000218H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 38 02 00 00 mov rcx, QWORD PTR [rsp+568] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 d8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 904 : stbi__uint16 *result; ; 905 : stbi__context s; ; 906 : stbi__start_file(&s, f); 00059 48 8b 95 00 02 00 00 mov rdx, QWORD PTR f$[rbp] 00060 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 00064 e8 00 00 00 00 call stbi__start_file 00069 90 npad 1 ; 907 : result = stbi__load_and_postprocess_16bit(&s, x, y, comp, req_comp); 0006a 8b 85 20 02 00 00 mov eax, DWORD PTR req_comp$[rbp] 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax 00074 4c 8b 8d 18 02 00 00 mov r9, QWORD PTR comp$[rbp] 0007b 4c 8b 85 10 02 00 00 mov r8, QWORD PTR y$[rbp] 00082 48 8b 95 08 02 00 00 mov rdx, QWORD PTR x$[rbp] 00089 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 0008d e8 00 00 00 00 call stbi__load_and_postprocess_16bit 00092 48 89 45 08 mov QWORD PTR result$[rbp], rax ; 908 : if (result) { 00096 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0 0009b 74 2c je SHORT $LN2@stbi_load_ ; 909 : // need to 'unget' all the characters in the IO buffer ; 910 : fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR); 0009d 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp+192] 000a4 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR s$[rbp+200] 000ab 48 2b c8 sub rcx, rax 000ae 48 8b c1 mov rax, rcx 000b1 f7 d8 neg eax 000b3 41 b8 01 00 00 00 mov r8d, 1 000b9 8b d0 mov edx, eax 000bb 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR f$[rbp] 000c2 ff 15 00 00 00 00 call QWORD PTR __imp_fseek 000c8 90 npad 1 $LN2@stbi_load_: ; 911 : } ; 912 : return result; 000c9 48 8b 45 08 mov rax, QWORD PTR result$[rbp] ; 913 : } 000cd 48 8b f8 mov rdi, rax 000d0 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 000d4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_load_from_file_16$rtcFrameData 000db e8 00 00 00 00 call _RTC_CheckStackVars 000e0 48 8b c7 mov rax, rdi 000e3 48 8b 8d d8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000ea 48 33 cd xor rcx, rbp 000ed e8 00 00 00 00 call __security_check_cookie 000f2 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] 000f9 5f pop rdi 000fa 5d pop rbp 000fb c3 ret 0 stbi_load_from_file_16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_16 _TEXT SEGMENT f$ = 8 result$ = 40 tv71 = 248 filename$ = 288 x$ = 296 y$ = 304 comp$ = 312 req_comp$ = 320 stbi_load_16 PROC ; COMDAT ; 916 : { $LN6: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 917 : FILE *f = stbi__fopen(filename, "rb"); 0002f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR filename$[rbp] 0003d e8 00 00 00 00 call stbi__fopen 00042 48 89 45 08 mov QWORD PTR f$[rbp], rax ; 918 : stbi__uint16 *result; ; 919 : if (!f) 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 0004b 75 31 jne SHORT $LN2@stbi_load_ ; 920 : return (stbi_us *)stbi__errpuc("can't fopen", "Unable to open file"); 0004d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ 00054 e8 00 00 00 00 call stbi__err 00059 85 c0 test eax, eax 0005b 74 0d je SHORT $LN4@stbi_load_ 0005d 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 00068 eb 0b jmp SHORT $LN5@stbi_load_ $LN4@stbi_load_: 0006a 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 $LN5@stbi_load_: 00075 48 8b 85 f8 00 00 00 mov rax, QWORD PTR tv71[rbp] 0007c eb 3b jmp SHORT $LN1@stbi_load_ $LN2@stbi_load_: ; 921 : result = stbi_load_from_file_16(f, x, y, comp, req_comp); 0007e 8b 85 40 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00084 89 44 24 20 mov DWORD PTR [rsp+32], eax 00088 4c 8b 8d 38 01 00 00 mov r9, QWORD PTR comp$[rbp] 0008f 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 00096 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 0009d 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 000a1 e8 00 00 00 00 call stbi_load_from_file_16 000a6 48 89 45 28 mov QWORD PTR result$[rbp], rax ; 922 : fclose(f); 000aa 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 000ae ff 15 00 00 00 00 call QWORD PTR __imp_fclose 000b4 90 npad 1 ; 923 : return result; 000b5 48 8b 45 28 mov rax, QWORD PTR result$[rbp] $LN1@stbi_load_: ; 924 : } 000b9 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000c0 5f pop rdi 000c1 5d pop rbp 000c2 c3 ret 0 stbi_load_16 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_16_from_callbacks _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 clbk$ = 480 user$ = 488 x$ = 496 y$ = 504 channels_in_file$ = 512 desired_channels$ = 520 stbi_load_16_from_callbacks PROC ; COMDAT ; 938 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec f8 01 00 00 sub rsp, 504 ; 000001f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 18 02 00 00 mov rcx, QWORD PTR [rsp+536] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 939 : stbi__context s; ; 940 : stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); 00059 4c 8b 85 e8 01 00 00 mov r8, QWORD PTR user$[rbp] 00060 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR clbk$[rbp] 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006b e8 00 00 00 00 call stbi__start_callbacks 00070 90 npad 1 ; 941 : return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels); 00071 8b 85 08 02 00 00 mov eax, DWORD PTR desired_channels$[rbp] 00077 89 44 24 20 mov DWORD PTR [rsp+32], eax 0007b 4c 8b 8d 00 02 00 00 mov r9, QWORD PTR channels_in_file$[rbp] 00082 4c 8b 85 f8 01 00 00 mov r8, QWORD PTR y$[rbp] 00089 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR x$[rbp] 00090 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00094 e8 00 00 00 00 call stbi__load_and_postprocess_16bit ; 942 : } 00099 48 8b f8 mov rdi, rax 0009c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 000a0 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_load_16_from_callbacks$rtcFrameData 000a7 e8 00 00 00 00 call _RTC_CheckStackVars 000ac 48 8b c7 mov rax, rdi 000af 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000b6 48 33 cd xor rcx, rbp 000b9 e8 00 00 00 00 call __security_check_cookie 000be 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000c5 5f pop rdi 000c6 5d pop rbp 000c7 c3 ret 0 stbi_load_16_from_callbacks ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_16_from_memory _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 buffer$ = 480 len$ = 488 x$ = 496 y$ = 504 channels_in_file$ = 512 desired_channels$ = 520 stbi_load_16_from_memory PROC ; COMDAT ; 930 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec f8 01 00 00 sub rsp, 504 ; 000001f8H 0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00021 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00026 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00030 f3 ab rep stosd 00032 48 8b 8c 24 18 02 00 00 mov rcx, QWORD PTR [rsp+536] 0003a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00041 48 33 c5 xor rax, rbp 00044 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00057 90 npad 1 ; 931 : stbi__context s; ; 932 : stbi__start_mem(&s, buffer, len); 00058 44 8b 85 e8 01 00 00 mov r8d, DWORD PTR len$[rbp] 0005f 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR buffer$[rbp] 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006a e8 00 00 00 00 call stbi__start_mem 0006f 90 npad 1 ; 933 : return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels); 00070 8b 85 08 02 00 00 mov eax, DWORD PTR desired_channels$[rbp] 00076 89 44 24 20 mov DWORD PTR [rsp+32], eax 0007a 4c 8b 8d 00 02 00 00 mov r9, QWORD PTR channels_in_file$[rbp] 00081 4c 8b 85 f8 01 00 00 mov r8, QWORD PTR y$[rbp] 00088 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR x$[rbp] 0008f 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00093 e8 00 00 00 00 call stbi__load_and_postprocess_16bit ; 934 : } 00098 48 8b f8 mov rdi, rax 0009b 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 0009f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_load_16_from_memory$rtcFrameData 000a6 e8 00 00 00 00 call _RTC_CheckStackVars 000ab 48 8b c7 mov rax, rdi 000ae 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000b5 48 33 cd xor rcx, rbp 000b8 e8 00 00 00 00 call __security_check_cookie 000bd 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000c4 5f pop rdi 000c5 5d pop rbp 000c6 c3 ret 0 stbi_load_16_from_memory ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_gif_from_memory _TEXT SEGMENT result$ = 8 s$ = 48 tv88 = 468 __$ArrayPad$ = 472 buffer$ = 512 len$ = 520 delays$ = 528 x$ = 536 y$ = 544 z$ = 552 comp$ = 560 req_comp$ = 568 stbi_load_gif_from_memory PROC ; COMDAT ; 963 : { $LN6: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec 28 02 00 00 sub rsp, 552 ; 00000228H 0001c 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] 00021 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] 00026 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00030 f3 ab rep stosd 00032 48 8b 8c 24 48 02 00 00 mov rcx, QWORD PTR [rsp+584] 0003a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00041 48 33 c5 xor rax, rbp 00044 48 89 85 d8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00057 90 npad 1 ; 964 : unsigned char *result; ; 965 : stbi__context s; ; 966 : stbi__start_mem(&s, buffer, len); 00058 44 8b 85 08 02 00 00 mov r8d, DWORD PTR len$[rbp] 0005f 48 8b 95 00 02 00 00 mov rdx, QWORD PTR buffer$[rbp] 00066 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 0006a e8 00 00 00 00 call stbi__start_mem 0006f 90 npad 1 ; 967 : ; 968 : result = (unsigned char *)stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); 00070 8b 85 38 02 00 00 mov eax, DWORD PTR req_comp$[rbp] 00076 89 44 24 30 mov DWORD PTR [rsp+48], eax 0007a 48 8b 85 30 02 00 00 mov rax, QWORD PTR comp$[rbp] 00081 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 00086 48 8b 85 28 02 00 00 mov rax, QWORD PTR z$[rbp] 0008d 48 89 44 24 20 mov QWORD PTR [rsp+32], rax 00092 4c 8b 8d 20 02 00 00 mov r9, QWORD PTR y$[rbp] 00099 4c 8b 85 18 02 00 00 mov r8, QWORD PTR x$[rbp] 000a0 48 8b 95 10 02 00 00 mov rdx, QWORD PTR delays$[rbp] 000a7 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 000ab e8 00 00 00 00 call stbi__load_gif_main 000b0 48 89 45 08 mov QWORD PTR result$[rbp], rax ; 969 : if (stbi__vertically_flip_on_load) { 000b4 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_set 000b9 8b c0 mov eax, eax 000bb 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 000c1 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 000ca 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 000ce 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0 000d2 74 25 je SHORT $LN4@stbi_load_ 000d4 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__vertically_flip_on_load_local 000d9 8b c0 mov eax, eax 000db 8b 0d 00 00 00 00 mov ecx, DWORD PTR _tls_index 000e1 65 48 8b 14 25 58 00 00 00 mov rdx, QWORD PTR gs:88 000ea 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8] 000ee 8b 04 08 mov eax, DWORD PTR [rax+rcx] 000f1 89 85 d4 01 00 00 mov DWORD PTR tv88[rbp], eax 000f7 eb 0c jmp SHORT $LN5@stbi_load_ $LN4@stbi_load_: 000f9 8b 05 00 00 00 00 mov eax, DWORD PTR stbi__vertically_flip_on_load_global 000ff 89 85 d4 01 00 00 mov DWORD PTR tv88[rbp], eax $LN5@stbi_load_: 00105 83 bd d4 01 00 00 00 cmp DWORD PTR tv88[rbp], 0 0010c 74 34 je SHORT $LN2@stbi_load_ ; 970 : stbi__vertical_flip_slices(result, *x, *y, *z, *comp); 0010e 48 8b 85 30 02 00 00 mov rax, QWORD PTR comp$[rbp] 00115 8b 00 mov eax, DWORD PTR [rax] 00117 89 44 24 20 mov DWORD PTR [rsp+32], eax 0011b 48 8b 85 28 02 00 00 mov rax, QWORD PTR z$[rbp] 00122 44 8b 08 mov r9d, DWORD PTR [rax] 00125 48 8b 85 20 02 00 00 mov rax, QWORD PTR y$[rbp] 0012c 44 8b 00 mov r8d, DWORD PTR [rax] 0012f 48 8b 85 18 02 00 00 mov rax, QWORD PTR x$[rbp] 00136 8b 10 mov edx, DWORD PTR [rax] 00138 48 8b 4d 08 mov rcx, QWORD PTR result$[rbp] 0013c e8 00 00 00 00 call stbi__vertical_flip_slices 00141 90 npad 1 $LN2@stbi_load_: ; 971 : } ; 972 : ; 973 : return result; 00142 48 8b 45 08 mov rax, QWORD PTR result$[rbp] ; 974 : } 00146 48 8b f8 mov rdi, rax 00149 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] 0014d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_load_gif_from_memory$rtcFrameData 00154 e8 00 00 00 00 call _RTC_CheckStackVars 00159 48 8b c7 mov rax, rdi 0015c 48 8b 8d d8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00163 48 33 cd xor rcx, rbp 00166 e8 00 00 00 00 call __security_check_cookie 0016b 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] 00172 5f pop rdi 00173 5d pop rbp 00174 c3 ret 0 stbi_load_gif_from_memory ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_from_file _TEXT SEGMENT result$ = 8 s$ = 48 __$ArrayPad$ = 472 f$ = 512 x$ = 520 y$ = 528 comp$ = 536 req_comp$ = 544 stbi_load_from_file PROC ; COMDAT ; 890 : { $LN4: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 18 02 00 00 sub rsp, 536 ; 00000218H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 38 02 00 00 mov rcx, QWORD PTR [rsp+568] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 d8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 891 : unsigned char *result; ; 892 : stbi__context s; ; 893 : stbi__start_file(&s, f); 00059 48 8b 95 00 02 00 00 mov rdx, QWORD PTR f$[rbp] 00060 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 00064 e8 00 00 00 00 call stbi__start_file 00069 90 npad 1 ; 894 : result = stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); 0006a 8b 85 20 02 00 00 mov eax, DWORD PTR req_comp$[rbp] 00070 89 44 24 20 mov DWORD PTR [rsp+32], eax 00074 4c 8b 8d 18 02 00 00 mov r9, QWORD PTR comp$[rbp] 0007b 4c 8b 85 10 02 00 00 mov r8, QWORD PTR y$[rbp] 00082 48 8b 95 08 02 00 00 mov rdx, QWORD PTR x$[rbp] 00089 48 8d 4d 30 lea rcx, QWORD PTR s$[rbp] 0008d e8 00 00 00 00 call stbi__load_and_postprocess_8bit 00092 48 89 45 08 mov QWORD PTR result$[rbp], rax ; 895 : if (result) { 00096 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0 0009b 74 2c je SHORT $LN2@stbi_load_ ; 896 : // need to 'unget' all the characters in the IO buffer ; 897 : fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR); 0009d 48 8b 85 f0 00 00 00 mov rax, QWORD PTR s$[rbp+192] 000a4 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR s$[rbp+200] 000ab 48 2b c8 sub rcx, rax 000ae 48 8b c1 mov rax, rcx 000b1 f7 d8 neg eax 000b3 41 b8 01 00 00 00 mov r8d, 1 000b9 8b d0 mov edx, eax 000bb 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR f$[rbp] 000c2 ff 15 00 00 00 00 call QWORD PTR __imp_fseek 000c8 90 npad 1 $LN2@stbi_load_: ; 898 : } ; 899 : return result; 000c9 48 8b 45 08 mov rax, QWORD PTR result$[rbp] ; 900 : } 000cd 48 8b f8 mov rdi, rax 000d0 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 000d4 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_load_from_file$rtcFrameData 000db e8 00 00 00 00 call _RTC_CheckStackVars 000e0 48 8b c7 mov rax, rdi 000e3 48 8b 8d d8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000ea 48 33 cd xor rcx, rbp 000ed e8 00 00 00 00 call __security_check_cookie 000f2 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] 000f9 5f pop rdi 000fa 5d pop rbp 000fb c3 ret 0 stbi_load_from_file ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_to_target _TEXT SEGMENT f$ = 8 result$ = 40 filename$ = 288 x$ = 296 y$ = 304 target$ = 312 comp$ = 320 req_comp$ = 328 stbi_load_to_target PROC ; COMDAT ; 878 : { $LN4: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 879 : FILE *f = stbi__fopen(filename, "rb"); 0002f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR filename$[rbp] 0003d e8 00 00 00 00 call stbi__fopen 00042 48 89 45 08 mov QWORD PTR f$[rbp], rax ; 880 : unsigned char *result; ; 881 : if (!f) { 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 0004b 75 12 jne SHORT $LN2@stbi_load_ ; 882 : *target = "can't fopen, Unable to open file"; 0004d 48 8b 85 38 01 00 00 mov rax, QWORD PTR target$[rbp] 00054 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0CB@DDANHPKI@can?8t?5fopen?0?5Unable?5to?5open?5fil@ 0005b 88 08 mov BYTE PTR [rax], cl ; 883 : return; 0005d eb 37 jmp SHORT $LN1@stbi_load_ $LN2@stbi_load_: ; 884 : } ; 885 : result = stbi_load_from_file(f, x, y, comp, req_comp); 0005f 8b 85 48 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00065 89 44 24 20 mov DWORD PTR [rsp+32], eax 00069 4c 8b 8d 40 01 00 00 mov r9, QWORD PTR comp$[rbp] 00070 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 00077 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 0007e 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 00082 e8 00 00 00 00 call stbi_load_from_file 00087 48 89 45 28 mov QWORD PTR result$[rbp], rax ; 886 : fclose(f); 0008b 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 0008f ff 15 00 00 00 00 call QWORD PTR __imp_fclose 00095 90 npad 1 $LN1@stbi_load_: ; 887 : } 00096 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 0009d 5f pop rdi 0009e 5d pop rbp 0009f c3 ret 0 stbi_load_to_target ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load _TEXT SEGMENT f$ = 8 result$ = 40 tv71 = 248 filename$ = 288 x$ = 296 y$ = 304 comp$ = 312 req_comp$ = 320 stbi_load PROC ; COMDAT ; 866 : { $LN6: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0002e 90 npad 1 ; 867 : FILE *f = stbi__fopen(filename, "rb"); 0002f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_02JDPG@rb@ 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR filename$[rbp] 0003d e8 00 00 00 00 call stbi__fopen 00042 48 89 45 08 mov QWORD PTR f$[rbp], rax ; 868 : unsigned char *result; ; 869 : if (!f) 00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0 0004b 75 31 jne SHORT $LN2@stbi_load ; 870 : return stbi__errpuc("can't fopen", "Unable to open file"); 0004d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0M@JPDHFAGK@can?8t?5fopen@ 00054 e8 00 00 00 00 call stbi__err 00059 85 c0 test eax, eax 0005b 74 0d je SHORT $LN4@stbi_load 0005d 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 00068 eb 0b jmp SHORT $LN5@stbi_load $LN4@stbi_load: 0006a 48 c7 85 f8 00 00 00 00 00 00 00 mov QWORD PTR tv71[rbp], 0 $LN5@stbi_load: 00075 48 8b 85 f8 00 00 00 mov rax, QWORD PTR tv71[rbp] 0007c eb 3b jmp SHORT $LN1@stbi_load $LN2@stbi_load: ; 871 : result = stbi_load_from_file(f, x, y, comp, req_comp); 0007e 8b 85 40 01 00 00 mov eax, DWORD PTR req_comp$[rbp] 00084 89 44 24 20 mov DWORD PTR [rsp+32], eax 00088 4c 8b 8d 38 01 00 00 mov r9, QWORD PTR comp$[rbp] 0008f 4c 8b 85 30 01 00 00 mov r8, QWORD PTR y$[rbp] 00096 48 8b 95 28 01 00 00 mov rdx, QWORD PTR x$[rbp] 0009d 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 000a1 e8 00 00 00 00 call stbi_load_from_file 000a6 48 89 45 28 mov QWORD PTR result$[rbp], rax ; 872 : fclose(f); 000aa 48 8b 4d 08 mov rcx, QWORD PTR f$[rbp] 000ae ff 15 00 00 00 00 call QWORD PTR __imp_fclose 000b4 90 npad 1 ; 873 : return result; 000b5 48 8b 45 28 mov rax, QWORD PTR result$[rbp] $LN1@stbi_load: ; 874 : } 000b9 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 000c0 5f pop rdi 000c1 5d pop rbp 000c2 c3 ret 0 stbi_load ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_from_callbacks _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 clbk$ = 480 user$ = 488 x$ = 496 y$ = 504 comp$ = 512 req_comp$ = 520 stbi_load_from_callbacks PROC ; COMDAT ; 954 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec f8 01 00 00 sub rsp, 504 ; 000001f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00022 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00027 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 18 02 00 00 mov rcx, QWORD PTR [rsp+536] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00058 90 npad 1 ; 955 : stbi__context s; ; 956 : stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); 00059 4c 8b 85 e8 01 00 00 mov r8, QWORD PTR user$[rbp] 00060 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR clbk$[rbp] 00067 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006b e8 00 00 00 00 call stbi__start_callbacks 00070 90 npad 1 ; 957 : return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); 00071 8b 85 08 02 00 00 mov eax, DWORD PTR req_comp$[rbp] 00077 89 44 24 20 mov DWORD PTR [rsp+32], eax 0007b 4c 8b 8d 00 02 00 00 mov r9, QWORD PTR comp$[rbp] 00082 4c 8b 85 f8 01 00 00 mov r8, QWORD PTR y$[rbp] 00089 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR x$[rbp] 00090 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00094 e8 00 00 00 00 call stbi__load_and_postprocess_8bit ; 958 : } 00099 48 8b f8 mov rdi, rax 0009c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 000a0 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_load_from_callbacks$rtcFrameData 000a7 e8 00 00 00 00 call _RTC_CheckStackVars 000ac 48 8b c7 mov rax, rdi 000af 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000b6 48 33 cd xor rcx, rbp 000b9 e8 00 00 00 00 call __security_check_cookie 000be 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000c5 5f pop rdi 000c6 5d pop rbp 000c7 c3 ret 0 stbi_load_from_callbacks ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\platform-dev\StgSharp.Native\sn-src\stb_image.c ; COMDAT stbi_load_from_memory _TEXT SEGMENT s$ = 16 __$ArrayPad$ = 440 buffer$ = 480 len$ = 488 x$ = 496 y$ = 504 comp$ = 512 req_comp$ = 520 stbi_load_from_memory PROC ; COMDAT ; 946 : { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 89 54 24 10 mov DWORD PTR [rsp+16], edx 0000e 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00013 55 push rbp 00014 57 push rdi 00015 48 81 ec f8 01 00 00 sub rsp, 504 ; 000001f8H 0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00021 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 00026 b9 42 00 00 00 mov ecx, 66 ; 00000042H 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00030 f3 ab rep stosd 00032 48 8b 8c 24 18 02 00 00 mov rcx, QWORD PTR [rsp+536] 0003a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00041 48 33 c5 xor rax, rbp 00044 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__1ACDCF28_stb_image@c 00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00057 90 npad 1 ; 947 : stbi__context s; ; 948 : stbi__start_mem(&s, buffer, len); 00058 44 8b 85 e8 01 00 00 mov r8d, DWORD PTR len$[rbp] 0005f 48 8b 95 e0 01 00 00 mov rdx, QWORD PTR buffer$[rbp] 00066 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 0006a e8 00 00 00 00 call stbi__start_mem 0006f 90 npad 1 ; 949 : return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); 00070 8b 85 08 02 00 00 mov eax, DWORD PTR req_comp$[rbp] 00076 89 44 24 20 mov DWORD PTR [rsp+32], eax 0007a 4c 8b 8d 00 02 00 00 mov r9, QWORD PTR comp$[rbp] 00081 4c 8b 85 f8 01 00 00 mov r8, QWORD PTR y$[rbp] 00088 48 8b 95 f0 01 00 00 mov rdx, QWORD PTR x$[rbp] 0008f 48 8d 4d 10 lea rcx, QWORD PTR s$[rbp] 00093 e8 00 00 00 00 call stbi__load_and_postprocess_8bit ; 950 : } 00098 48 8b f8 mov rdi, rax 0009b 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 0009f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:stbi_load_from_memory$rtcFrameData 000a6 e8 00 00 00 00 call _RTC_CheckStackVars 000ab 48 8b c7 mov rax, rdi 000ae 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000b5 48 33 cd xor rcx, rbp 000b8 e8 00 00 00 00 call __security_check_cookie 000bd 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000c4 5f pop rdi 000c5 5d pop rbp 000c6 c3 ret 0 stbi_load_from_memory ENDP _TEXT ENDS END