61744 lines
1.7 MiB
Plaintext
61744 lines
1.7 MiB
Plaintext
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35220.0
|
|
|
|
include listing.inc
|
|
|
|
INCLUDELIB MSVCRTD
|
|
INCLUDELIB OLDNAMES
|
|
|
|
_DATA SEGMENT
|
|
COMM infolog:BYTE:0200H
|
|
_DATA ENDS
|
|
msvcjmc SEGMENT
|
|
__5C8CA4D3_mmintrin@h DB 01H
|
|
__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
|
|
__211DB995_corecrt_malloc@h DB 01H
|
|
__7CD62D9E_malloc@h DB 01H
|
|
__9DCE0DC8_xmmintrin@h DB 01H
|
|
__4C2AD0C7_winpackagefamily@h DB 01H
|
|
__9DED9ED1_winapifamily@h DB 01H
|
|
__12FEDF4E_sdkddkver@h DB 01H
|
|
__9BAEE128_excpt@h DB 01H
|
|
__B7B53233_stdarg@h DB 01H
|
|
__6B04FCB3_specstrings_undef@h DB 01H
|
|
__F4027AF7_specstrings_strict@h DB 01H
|
|
__B90340D4_sdv_driverspecs@h DB 01H
|
|
__BFFF5AD3_driverspecs@h DB 01H
|
|
__32847078_specstrings@h DB 01H
|
|
__108B2620_corecrt_wctype@h DB 01H
|
|
__6CD6613D_ctype@h DB 01H
|
|
__30902A1F_kernelspecs@h DB 01H
|
|
__376FD5CA_basetsd@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
|
|
__9BEDF4DE_guiddef@h DB 01H
|
|
__51BFD2FE_pshpack4@h DB 01H
|
|
__31652CEA_poppack@h DB 01H
|
|
__5532AE4C_pshpack2@h DB 01H
|
|
__58A52B9A_pshpack8@h DB 01H
|
|
__57741015_pshpack1@h DB 01H
|
|
__CDE68C90_apiset@h DB 01H
|
|
__0BF06E8D_ktmtypes@h DB 01H
|
|
__40C200C0_winnt@h DB 01H
|
|
__9336F789_minwindef@h DB 01H
|
|
__55136115_windef@h DB 01H
|
|
__32205BF0_apisetcconv@h DB 01H
|
|
__B48FDEA0_minwinbase@h DB 01H
|
|
__3551B028_apiquery2@h DB 01H
|
|
__65BE04AA_processenv@h DB 01H
|
|
__4767CA46_fileapi@h DB 01H
|
|
__282E6C4B_fileapifromapp@h DB 01H
|
|
__393AF12C_debugapi@h DB 01H
|
|
__EBC502B8_utilapiset@h DB 01H
|
|
__1EAD8C69_handleapi@h DB 01H
|
|
__D8EF9B29_errhandlingapi@h DB 01H
|
|
__97FC1204_fibersapi@h DB 01H
|
|
__27448220_namedpipeapi@h DB 01H
|
|
__6EA33B2A_profileapi@h DB 01H
|
|
__EAC6F673_heapapi@h DB 01H
|
|
__D64EEA5A_ioapiset@h DB 01H
|
|
__144BD4B6_synchapi@h DB 01H
|
|
__03B1C640_interlockedapi@h DB 01H
|
|
__DC64CB38_processthreadsapi@h DB 01H
|
|
__D719B518_sysinfoapi@h DB 01H
|
|
__410385B1_memoryapi@h DB 01H
|
|
__C1AD45EF_enclaveapi@h DB 01H
|
|
__F4C3AA32_threadpoollegacyapiset@h DB 01H
|
|
__AC5A7A9F_threadpoolapiset@h DB 01H
|
|
__F5254B21_jobapi@h DB 01H
|
|
__BCEA6EE8_jobapi2@h DB 01H
|
|
__D18ACE72_wow64apiset@h DB 01H
|
|
__669B0D4A_libloaderapi@h DB 01H
|
|
__645F7034_securitybaseapi@h DB 01H
|
|
__67E58557_namespaceapi@h DB 01H
|
|
__599D9D3A_systemtopologyapi@h DB 01H
|
|
__2337E373_processtopologyapi@h DB 01H
|
|
__02BFF239_securityappcontainer@h DB 01H
|
|
__9C196272_realtimeapiset@h DB 01H
|
|
__5AB313A4_winerror@h DB 01H
|
|
__B7E7187B_timezoneapi@h DB 01H
|
|
__6DE9EB6F_winbase@h DB 01H
|
|
__56B2AFF2_wingdi@h DB 01H
|
|
__BA1161A9_tvout@h DB 01H
|
|
__0501A018_winuser@h DB 01H
|
|
__EF12FA99_datetimeapi@h DB 01H
|
|
__8FA7C3CA_winnls@h DB 01H
|
|
__390F0C47_stringapiset@h DB 01H
|
|
__28605B0A_wincontypes@h DB 01H
|
|
__BFBDE86D_consoleapi@h DB 01H
|
|
__C3CAFBF0_consoleapi2@h DB 01H
|
|
__C20891C7_consoleapi3@h DB 01H
|
|
__717C98B6_wincon@h DB 01H
|
|
__2884C177_verrsrc@h DB 01H
|
|
__A3FD3A34_winver@h DB 01H
|
|
__6F8AD9F1_reason@h DB 01H
|
|
__4C90FD6F_winreg@h DB 01H
|
|
__68AFEBAD_wnnc@h DB 01H
|
|
__5A7AB086_winnetwk@h DB 01H
|
|
__2FE8A10C_stralign@h DB 01H
|
|
__34558472_winsvc@h DB 01H
|
|
__058845F1_mcx@h DB 01H
|
|
__7F16006B_ime_cmodes@h DB 01H
|
|
__0A3AF599_imm@h DB 01H
|
|
__9349FE86_windows@h DB 01H
|
|
__639A050C_sn_internal@h DB 01H
|
|
__836A8CFC_stdint@h DB 01H
|
|
__714FE6D7_sn_target@h DB 01H
|
|
__60B45B40_corecrt_stdio_config@h DB 01H
|
|
__CFA3741E_corecrt_wstdio@h DB 01H
|
|
__B3FE3303_stdio@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
|
|
__1D9A7FA2_corecrt_math@h DB 01H
|
|
__2E93F1C0_math@h DB 01H
|
|
__9FB25DBE_assert@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
|
|
__F562FA57_stb_image@h DB 01H
|
|
__C95DC661_khrplatform@h DB 01H
|
|
__6C577136_gl@h DB 01H
|
|
__EE638A2C_wgl@h DB 01H
|
|
__8EF9E35C_glfw3@h DB 01H
|
|
__4E664295_glfw_function@h DB 01H
|
|
__64C0EF11_StgSharpNative@h DB 01H
|
|
__73BBCC60_sn_native@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_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 glCheckShaderStat
|
|
PUBLIC initGL
|
|
PUBLIC linkShaderProgram
|
|
PUBLIC loadImageData
|
|
PUBLIC loadGlfuncDefault
|
|
PUBLIC unloadImageData
|
|
PUBLIC readLog
|
|
PUBLIC __JustMyCode_Default
|
|
PUBLIC ??_C@_0BD@CBEDEJPH@unknown?5image?5type@ ; `string'
|
|
PUBLIC ??_C@_08NOGIMCHF@outofmem@ ; `string'
|
|
PUBLIC ??_C@_1GK@GEMLNHEN@?$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@_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@_0P@CLDJCNKP@unexpected?5end@ ; `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@_1BG@FLOPDKAN@?$AAi?$AAm?$AAg?$AA_?$AAn?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA3@ ; `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@_1BG@OEFMLIPO@?$AAd?$AAe?$AAp?$AAt?$AAh?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA1@ ; `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@_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@_0O@MKGNGALN@invalid?5width@ ; `string'
|
|
PUBLIC ??_C@_0BC@CNFMOKHC@max?5value?5?$DO?565535@ ; `string'
|
|
PUBLIC ??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ ; `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 __report_rangecheckfailure:PROC
|
|
EXTRN __imp_free:PROC
|
|
EXTRN __imp_malloc:PROC
|
|
EXTRN __imp_realloc:PROC
|
|
EXTRN memcpy:PROC
|
|
EXTRN memset:PROC
|
|
EXTRN __imp_strcpy_s:PROC
|
|
EXTRN strcmp:PROC
|
|
EXTRN __imp_strncmp:PROC
|
|
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 abs:PROC
|
|
EXTRN _lrotl:PROC
|
|
EXTRN __imp_strtol:PROC
|
|
EXTRN pow:PROC
|
|
EXTRN __imp_ldexp:PROC
|
|
EXTRN __imp__wassert:PROC
|
|
EXTRN glfwWindowHint:PROC
|
|
EXTRN glfwGetProcAddress: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_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+306
|
|
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+988
|
|
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+591
|
|
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+162
|
|
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+295
|
|
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+804
|
|
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+357
|
|
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+262
|
|
DD imagerel $unwind$stbi__paeth
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$stbi__create_png_alpha_expand8 DD imagerel stbi__create_png_alpha_expand8
|
|
DD imagerel stbi__create_png_alpha_expand8+374
|
|
DD imagerel $unwind$stbi__create_png_alpha_expand8
|
|
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+3488
|
|
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+3816
|
|
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 pdata
|
|
pdata SEGMENT
|
|
$pdata$glCheckShaderStat DD imagerel $LN4
|
|
DD imagerel $LN4+232
|
|
DD imagerel $unwind$glCheckShaderStat
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$initGL DD imagerel $LN3
|
|
DD imagerel $LN3+111
|
|
DD imagerel $unwind$initGL
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$linkShaderProgram DD imagerel $LN5
|
|
DD imagerel $LN5+227
|
|
DD imagerel $unwind$linkShaderProgram
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$loadImageData DD imagerel $LN4
|
|
DD imagerel $LN4+143
|
|
DD imagerel $unwind$loadImageData
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$loadGlfuncDefault DD imagerel $LN7
|
|
DD imagerel $LN7+160
|
|
DD imagerel $unwind$loadGlfuncDefault
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$unloadImageData DD imagerel $LN3
|
|
DD imagerel $LN3+60
|
|
DD imagerel $unwind$unloadImageData
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$readLog DD imagerel $LN5
|
|
DD imagerel $LN5+103
|
|
DD imagerel $unwind$readLog
|
|
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@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@
|
|
CONST SEGMENT
|
|
??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@ DB 'Failed to load Op'
|
|
DB 'enGL api:', 00H ; `string'
|
|
CONST 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@_0O@MKGNGALN@invalid?5width@
|
|
CONST SEGMENT
|
|
??_C@_0O@MKGNGALN@invalid?5width@ DB 'invalid width', 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@_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@_1BG@OEFMLIPO@?$AAd?$AAe?$AAp?$AAt?$AAh?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA1@
|
|
CONST SEGMENT
|
|
??_C@_1BG@OEFMLIPO@?$AAd?$AAe?$AAp?$AAt?$AAh?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA1@ DB 'd'
|
|
DB 00H, 'e', 00H, 'p', 00H, 't', 00H, 'h', 00H, ' ', 00H, '=', 00H
|
|
DB '=', 00H, ' ', 00H, '1', 00H, 00H, 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@_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@_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@_0P@CLDJCNKP@unexpected?5end@
|
|
CONST SEGMENT
|
|
??_C@_0P@CLDJCNKP@unexpected?5end@ DB 'unexpected end', 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@_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@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@
|
|
CONST SEGMENT
|
|
??_C@_1GK@GEMLNHEN@?$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, 'l', 00H
|
|
DB 'i', 00H, 'b', 00H, '\', 00H, 's', 00H, 't', 00H, 'b', 00H, 'i'
|
|
DB 00H, '\', 00H, 's', 00H, 't', 00H, 'b', 00H, '_', 00H, 'i', 00H
|
|
DB 'm', 00H, 'a', 00H, 'g', 00H, 'e', 00H, '.', 00H, 'h', 00H, 00H
|
|
DB 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 01H
|
|
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$readLog DD 025050f01H
|
|
DD 010a230fH
|
|
DD 070030021H
|
|
DD 05002H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$unloadImageData DD 025051301H
|
|
DD 010e2313H
|
|
DD 07007001dH
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$loadGlfuncDefault DD 025051301H
|
|
DD 010e2313H
|
|
DD 070070025H
|
|
DD 05006H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$loadImageData DD 035051d01H
|
|
DD 0118331dH
|
|
DD 07011001fH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 03aH
|
|
DB 0caH
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$linkShaderProgram DD 025054119H
|
|
DD 01122317H
|
|
DD 0700b0021H
|
|
DD 0500aH
|
|
DD imagerel __GSHandlerCheck
|
|
DD 0f8H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
linkShaderProgram$rtcName$0 DB 073H
|
|
DB 075H
|
|
DB 063H
|
|
DB 063H
|
|
DB 065H
|
|
DB 073H
|
|
DB 073H
|
|
DB 00H
|
|
ORG $+8
|
|
linkShaderProgram$rtcVarDesc DD 024H
|
|
DD 04H
|
|
DQ FLAT:linkShaderProgram$rtcName$0
|
|
ORG $+48
|
|
linkShaderProgram$rtcFrameData DD 01H
|
|
DD 00H
|
|
DQ FLAT:linkShaderProgram$rtcVarDesc
|
|
CONST ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$initGL DD 025051601H
|
|
DD 01112316H
|
|
DD 0700a001dH
|
|
DD 05009H
|
|
xdata ENDS
|
|
; COMDAT voltbl
|
|
voltbl SEGMENT
|
|
_volmd DB 045H
|
|
DB 0cfH
|
|
voltbl ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$glCheckShaderStat DD 025054c19H
|
|
DD 011d2322H
|
|
DD 070160021H
|
|
DD 05015H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 0f8H
|
|
xdata ENDS
|
|
; COMDAT CONST
|
|
CONST SEGMENT
|
|
glCheckShaderStat$rtcName$0 DB 073H
|
|
DB 074H
|
|
DB 061H
|
|
DB 074H
|
|
DB 00H
|
|
ORG $+11
|
|
glCheckShaderStat$rtcVarDesc DD 024H
|
|
DD 04H
|
|
DQ FLAT:glCheckShaderStat$rtcName$0
|
|
ORG $+48
|
|
glCheckShaderStat$rtcFrameData DD 01H
|
|
DD 00H
|
|
DQ FLAT:glCheckShaderStat$rtcVarDesc
|
|
CONST 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 0ecfH
|
|
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 07016009dH
|
|
DD 05015H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$stbi__create_png_alpha_expand8 DD 025052201H
|
|
DD 011d2322H
|
|
DD 070160021H
|
|
DD 05015H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$stbi__paeth DD 025051b01H
|
|
DD 0116231bH
|
|
DD 0700f0031H
|
|
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 025051601H
|
|
DD 01112316H
|
|
DD 0700a001fH
|
|
DD 05009H
|
|
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 0701502cdH
|
|
DD 05014H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 01658H
|
|
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 01008H
|
|
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 0701002d1H
|
|
DD 0500fH
|
|
DD imagerel __GSHandlerCheck
|
|
DD 01678H
|
|
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 01008H
|
|
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 0701502cdH
|
|
DD 05014H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 01658H
|
|
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 01008H
|
|
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 0701502d1H
|
|
DD 05014H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 01678H
|
|
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 01008H
|
|
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 0701502d1H
|
|
DD 05014H
|
|
DD imagerel __GSHandlerCheck
|
|
DD 01678H
|
|
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 01008H
|
|
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 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\sn_native.c
|
|
; COMDAT readLog
|
|
_TEXT SEGMENT
|
|
$T1 = 200
|
|
readLog PROC ; COMDAT
|
|
|
|
; 74 : {
|
|
|
|
$LN5:
|
|
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:__73BBCC60_sn_native@c
|
|
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001b 90 npad 1
|
|
|
|
; 75 : infolog[511] = '\0';
|
|
|
|
0001c b8 01 00 00 00 mov eax, 1
|
|
00021 48 69 c0 ff 01
|
|
00 00 imul rax, rax, 511 ; 000001ffH
|
|
00028 48 89 85 c8 00
|
|
00 00 mov QWORD PTR $T1[rbp], rax
|
|
0002f 48 81 bd c8 00
|
|
00 00 00 02 00
|
|
00 cmp QWORD PTR $T1[rbp], 512 ; 00000200H
|
|
0003a 73 02 jae SHORT $LN3@readLog
|
|
0003c eb 06 jmp SHORT $LN4@readLog
|
|
$LN3@readLog:
|
|
0003e e8 00 00 00 00 call __report_rangecheckfailure
|
|
00043 90 npad 1
|
|
$LN4@readLog:
|
|
00044 48 8d 05 00 00
|
|
00 00 lea rax, OFFSET FLAT:infolog
|
|
0004b 48 8b 8d c8 00
|
|
00 00 mov rcx, QWORD PTR $T1[rbp]
|
|
00052 c6 04 08 00 mov BYTE PTR [rax+rcx], 0
|
|
|
|
; 76 : return infolog;
|
|
|
|
00056 48 8d 05 00 00
|
|
00 00 lea rax, OFFSET FLAT:infolog
|
|
$LN2@readLog:
|
|
|
|
; 77 : }
|
|
|
|
0005d 48 8d a5 e8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+232]
|
|
00064 5f pop rdi
|
|
00065 5d pop rbp
|
|
00066 c3 ret 0
|
|
readLog ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c
|
|
; COMDAT unloadImageData
|
|
_TEXT SEGMENT
|
|
out$ = 224
|
|
unloadImageData PROC ; COMDAT
|
|
|
|
; 69 : {
|
|
|
|
$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:__73BBCC60_sn_native@c
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 70 : free(out->pixelPtr);
|
|
|
|
00020 48 8b 85 e0 00
|
|
00 00 mov rax, QWORD PTR out$[rbp]
|
|
00027 48 8b 48 10 mov rcx, QWORD PTR [rax+16]
|
|
0002b ff 15 00 00 00
|
|
00 call QWORD PTR __imp_free
|
|
00031 90 npad 1
|
|
|
|
; 71 : }
|
|
|
|
00032 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
00039 5f pop rdi
|
|
0003a 5d pop rbp
|
|
0003b c3 ret 0
|
|
unloadImageData ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c
|
|
; COMDAT loadGlfuncDefault
|
|
_TEXT SEGMENT
|
|
ret$ = 8
|
|
i$1 = 40
|
|
procName$ = 288
|
|
loadGlfuncDefault PROC ; COMDAT
|
|
|
|
; 34 : {
|
|
|
|
$LN7:
|
|
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:__73BBCC60_sn_native@c
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 35 : void *ret = glfwGetProcAddress(procName);
|
|
|
|
00020 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR procName$[rbp]
|
|
00027 e8 00 00 00 00 call glfwGetProcAddress
|
|
0002c 48 89 45 08 mov QWORD PTR ret$[rbp], rax
|
|
|
|
; 36 : // printf("%llu\n", (uint64_t)ret);
|
|
; 37 : if (ret == NULL) {
|
|
|
|
00030 48 83 7d 08 00 cmp QWORD PTR ret$[rbp], 0
|
|
00035 75 5b jne SHORT $LN5@loadGlfunc
|
|
|
|
; 38 : strcpy_s(infolog, 30, "Failed to load OpenGL api:");
|
|
|
|
00037 4c 8d 05 00 00
|
|
00 00 lea r8, OFFSET FLAT:??_C@_0BL@MOJGOJJP@Failed?5to?5load?5OpenGL?5api?3@
|
|
0003e ba 1e 00 00 00 mov edx, 30
|
|
00043 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:infolog
|
|
0004a ff 15 00 00 00
|
|
00 call QWORD PTR __imp_strcpy_s
|
|
00050 90 npad 1
|
|
|
|
; 39 : for (size_t i = 0; i < sizeof(procName); i++) {
|
|
|
|
00051 48 c7 45 28 00
|
|
00 00 00 mov QWORD PTR i$1[rbp], 0
|
|
00059 eb 0b jmp SHORT $LN4@loadGlfunc
|
|
$LN2@loadGlfunc:
|
|
0005b 48 8b 45 28 mov rax, QWORD PTR i$1[rbp]
|
|
0005f 48 ff c0 inc rax
|
|
00062 48 89 45 28 mov QWORD PTR i$1[rbp], rax
|
|
$LN4@loadGlfunc:
|
|
00066 48 83 7d 28 08 cmp QWORD PTR i$1[rbp], 8
|
|
0006b 73 25 jae SHORT $LN3@loadGlfunc
|
|
|
|
; 40 : infolog[30 + i] = procName[i];
|
|
|
|
0006d 48 8d 05 00 00
|
|
00 00 lea rax, OFFSET FLAT:infolog
|
|
00074 48 8b 4d 28 mov rcx, QWORD PTR i$1[rbp]
|
|
00078 48 8b 95 20 01
|
|
00 00 mov rdx, QWORD PTR procName$[rbp]
|
|
0007f 48 03 d1 add rdx, rcx
|
|
00082 48 8b ca mov rcx, rdx
|
|
00085 48 8b 55 28 mov rdx, QWORD PTR i$1[rbp]
|
|
00089 0f b6 09 movzx ecx, BYTE PTR [rcx]
|
|
0008c 88 4c 10 1e mov BYTE PTR [rax+rdx+30], cl
|
|
|
|
; 41 : }
|
|
|
|
00090 eb c9 jmp SHORT $LN2@loadGlfunc
|
|
$LN3@loadGlfunc:
|
|
$LN5@loadGlfunc:
|
|
|
|
; 42 : //printf("%s\n", infolog);
|
|
; 43 : }
|
|
; 44 : return (GLFWglproc)ret;
|
|
|
|
00092 48 8b 45 08 mov rax, QWORD PTR ret$[rbp]
|
|
|
|
; 45 : }
|
|
|
|
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
|
|
loadGlfuncDefault ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c
|
|
; COMDAT loadImageData
|
|
_TEXT SEGMENT
|
|
location$ = 224
|
|
out$ = 232
|
|
loader$ = 240
|
|
loadImageData PROC ; COMDAT
|
|
|
|
; 62 : {
|
|
|
|
$LN4:
|
|
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 30 lea rbp, QWORD PTR [rsp+48]
|
|
0001d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 63 : if (loader == NULL) {
|
|
|
|
0002a 48 83 bd f0 00
|
|
00 00 00 cmp QWORD PTR loader$[rbp], 0
|
|
00032 75 0e jne SHORT $LN2@loadImageD
|
|
|
|
; 64 : loader = stbi_load;
|
|
|
|
00034 48 8d 05 00 00
|
|
00 00 lea rax, OFFSET FLAT:stbi_load
|
|
0003b 48 89 85 f0 00
|
|
00 00 mov QWORD PTR loader$[rbp], rax
|
|
$LN2@loadImageD:
|
|
|
|
; 65 : }
|
|
; 66 : out->pixelPtr = loader(location, &(out->width), &(out->height), &(out->channel), 0);
|
|
|
|
00042 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR out$[rbp]
|
|
00049 48 83 c0 08 add rax, 8
|
|
0004d 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR out$[rbp]
|
|
00054 48 83 c1 04 add rcx, 4
|
|
00058 48 8b 95 e8 00
|
|
00 00 mov rdx, QWORD PTR out$[rbp]
|
|
0005f c7 44 24 20 00
|
|
00 00 00 mov DWORD PTR [rsp+32], 0
|
|
00067 4c 8b c8 mov r9, rax
|
|
0006a 4c 8b c1 mov r8, rcx
|
|
0006d 48 8b 8d e0 00
|
|
00 00 mov rcx, QWORD PTR location$[rbp]
|
|
00074 ff 95 f0 00 00
|
|
00 call QWORD PTR loader$[rbp]
|
|
0007a 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR out$[rbp]
|
|
00081 48 89 41 10 mov QWORD PTR [rcx+16], rax
|
|
|
|
; 67 : }
|
|
|
|
00085 48 8d a5 c8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
0008c 5f pop rdi
|
|
0008d 5d pop rbp
|
|
0008e c3 ret 0
|
|
loadImageData ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c
|
|
; COMDAT linkShaderProgram
|
|
_TEXT SEGMENT
|
|
success$ = 4
|
|
__$ArrayPad$ = 216
|
|
context$ = 256
|
|
shaderProgram$ = 264
|
|
linkShaderProgram PROC ; COMDAT
|
|
|
|
; 48 : {
|
|
|
|
$LN5:
|
|
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 7c 24 20 lea rdi, QWORD PTR [rsp+32]
|
|
0001c b9 0a 00 00 00 mov ecx, 10
|
|
00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00026 f3 ab rep stosd
|
|
00028 48 8b 8c 24 28
|
|
01 00 00 mov rcx, QWORD PTR [rsp+296]
|
|
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 00
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
00041 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c
|
|
00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0004d 90 npad 1
|
|
|
|
; 49 : context->LinkProgram(shaderProgram);
|
|
|
|
0004e 8b 8d 08 01 00
|
|
00 mov ecx, DWORD PTR shaderProgram$[rbp]
|
|
00054 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR context$[rbp]
|
|
0005b ff 90 70 0a 00
|
|
00 call QWORD PTR [rax+2672]
|
|
00061 90 npad 1
|
|
|
|
; 50 :
|
|
; 51 : int success;
|
|
; 52 : context->GetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
|
|
|
|
00062 4c 8d 45 04 lea r8, QWORD PTR success$[rbp]
|
|
00066 ba 82 8b 00 00 mov edx, 35714 ; 00008b82H
|
|
0006b 8b 8d 08 01 00
|
|
00 mov ecx, DWORD PTR shaderProgram$[rbp]
|
|
00071 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR context$[rbp]
|
|
00078 ff 90 90 07 00
|
|
00 call QWORD PTR [rax+1936]
|
|
0007e 90 npad 1
|
|
|
|
; 53 : if (!success) {
|
|
|
|
0007f 83 7d 04 00 cmp DWORD PTR success$[rbp], 0
|
|
00083 75 29 jne SHORT $LN2@linkShader
|
|
|
|
; 54 : context->GetProgramInfoLog(shaderProgram, 512, NULL, infolog);
|
|
|
|
00085 4c 8d 0d 00 00
|
|
00 00 lea r9, OFFSET FLAT:infolog
|
|
0008c 45 33 c0 xor r8d, r8d
|
|
0008f ba 00 02 00 00 mov edx, 512 ; 00000200H
|
|
00094 8b 8d 08 01 00
|
|
00 mov ecx, DWORD PTR shaderProgram$[rbp]
|
|
0009a 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR context$[rbp]
|
|
000a1 ff 90 40 07 00
|
|
00 call QWORD PTR [rax+1856]
|
|
000a7 90 npad 1
|
|
|
|
; 55 : return 0;
|
|
|
|
000a8 33 c0 xor eax, eax
|
|
000aa eb 08 jmp SHORT $LN1@linkShader
|
|
|
|
; 56 : } else {
|
|
|
|
000ac eb 06 jmp SHORT $LN3@linkShader
|
|
$LN2@linkShader:
|
|
|
|
; 57 : return shaderProgram;
|
|
|
|
000ae 8b 85 08 01 00
|
|
00 mov eax, DWORD PTR shaderProgram$[rbp]
|
|
$LN3@linkShader:
|
|
$LN1@linkShader:
|
|
|
|
; 58 : }
|
|
; 59 : }
|
|
|
|
000b4 48 8b f8 mov rdi, rax
|
|
000b7 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
000bb 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:linkShaderProgram$rtcFrameData
|
|
000c2 e8 00 00 00 00 call _RTC_CheckStackVars
|
|
000c7 48 8b c7 mov rax, rdi
|
|
000ca 48 8b 8d d8 00
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
000d1 48 33 cd xor rcx, rbp
|
|
000d4 e8 00 00 00 00 call __security_check_cookie
|
|
000d9 48 8d a5 e8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+232]
|
|
000e0 5f pop rdi
|
|
000e1 5d pop rbp
|
|
000e2 c3 ret 0
|
|
linkShaderProgram ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c
|
|
; COMDAT initGL
|
|
_TEXT SEGMENT
|
|
majorVersion$ = 224
|
|
minorVersion$ = 232
|
|
initGL PROC ; COMDAT
|
|
|
|
; 26 : {
|
|
|
|
$LN3:
|
|
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:__73BBCC60_sn_native@c
|
|
0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00022 90 npad 1
|
|
|
|
; 27 : glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, majorVersion);
|
|
|
|
00023 8b 95 e0 00 00
|
|
00 mov edx, DWORD PTR majorVersion$[rbp]
|
|
00029 b9 02 20 02 00 mov ecx, 139266 ; 00022002H
|
|
0002e e8 00 00 00 00 call glfwWindowHint
|
|
00033 90 npad 1
|
|
|
|
; 28 : glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minorVersion);
|
|
|
|
00034 8b 95 e8 00 00
|
|
00 mov edx, DWORD PTR minorVersion$[rbp]
|
|
0003a b9 03 20 02 00 mov ecx, 139267 ; 00022003H
|
|
0003f e8 00 00 00 00 call glfwWindowHint
|
|
00044 90 npad 1
|
|
|
|
; 29 : glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
|
|
|
00045 ba 01 20 03 00 mov edx, 204801 ; 00032001H
|
|
0004a b9 08 20 02 00 mov ecx, 139272 ; 00022008H
|
|
0004f e8 00 00 00 00 call glfwWindowHint
|
|
00054 90 npad 1
|
|
|
|
; 30 : glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);
|
|
|
|
00055 ba 01 00 00 00 mov edx, 1
|
|
0005a b9 03 00 02 00 mov ecx, 131075 ; 00020003H
|
|
0005f e8 00 00 00 00 call glfwWindowHint
|
|
00064 90 npad 1
|
|
|
|
; 31 : }
|
|
|
|
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
|
|
initGL ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\sn-src\sn_native.c
|
|
; COMDAT glCheckShaderStat
|
|
_TEXT SEGMENT
|
|
stat$ = 4
|
|
__$ArrayPad$ = 216
|
|
context$ = 256
|
|
shaderHandle$ = 264
|
|
key$ = 272
|
|
logRef$ = 280
|
|
glCheckShaderStat PROC ; COMDAT
|
|
|
|
; 15 : {
|
|
|
|
$LN4:
|
|
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 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 7c 24 20 lea rdi, QWORD PTR [rsp+32]
|
|
00027 b9 0a 00 00 00 mov ecx, 10
|
|
0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00031 f3 ab rep stosd
|
|
00033 48 8b 8c 24 28
|
|
01 00 00 mov rcx, QWORD PTR [rsp+296]
|
|
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 00
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
0004c 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__73BBCC60_sn_native@c
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 16 : int stat = 0;
|
|
|
|
00059 c7 45 04 00 00
|
|
00 00 mov DWORD PTR stat$[rbp], 0
|
|
|
|
; 17 : context->GetShaderiv(shaderHandle, key, &stat);
|
|
|
|
00060 4c 8d 45 04 lea r8, QWORD PTR stat$[rbp]
|
|
00064 8b 95 10 01 00
|
|
00 mov edx, DWORD PTR key$[rbp]
|
|
0006a 8b 8d 08 01 00
|
|
00 mov ecx, DWORD PTR shaderHandle$[rbp]
|
|
00070 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR context$[rbp]
|
|
00077 ff 90 28 08 00
|
|
00 call QWORD PTR [rax+2088]
|
|
0007d 90 npad 1
|
|
|
|
; 18 : if (!stat) {
|
|
|
|
0007e 83 7d 04 00 cmp DWORD PTR stat$[rbp], 0
|
|
00082 75 23 jne SHORT $LN2@glCheckSha
|
|
|
|
; 19 : context->GetShaderInfoLog(shaderHandle, 512, NULL, infolog);
|
|
|
|
00084 4c 8d 0d 00 00
|
|
00 00 lea r9, OFFSET FLAT:infolog
|
|
0008b 45 33 c0 xor r8d, r8d
|
|
0008e ba 00 02 00 00 mov edx, 512 ; 00000200H
|
|
00093 8b 8d 08 01 00
|
|
00 mov ecx, DWORD PTR shaderHandle$[rbp]
|
|
00099 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR context$[rbp]
|
|
000a0 ff 90 10 08 00
|
|
00 call QWORD PTR [rax+2064]
|
|
000a6 90 npad 1
|
|
$LN2@glCheckSha:
|
|
|
|
; 20 : }
|
|
; 21 : *logRef = infolog;
|
|
|
|
000a7 48 8b 85 18 01
|
|
00 00 mov rax, QWORD PTR logRef$[rbp]
|
|
000ae 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:infolog
|
|
000b5 48 89 08 mov QWORD PTR [rax], rcx
|
|
|
|
; 22 : return stat;
|
|
|
|
000b8 8b 45 04 mov eax, DWORD PTR stat$[rbp]
|
|
|
|
; 23 : }
|
|
|
|
000bb 8b f8 mov edi, eax
|
|
000bd 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
000c1 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:glCheckShaderStat$rtcFrameData
|
|
000c8 e8 00 00 00 00 call _RTC_CheckStackVars
|
|
000cd 8b c7 mov eax, edi
|
|
000cf 48 8b 8d d8 00
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
000d6 48 33 cd xor rcx, rbp
|
|
000d9 e8 00 00 00 00 call __security_check_cookie
|
|
000de 48 8d a5 e8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+232]
|
|
000e5 5f pop rdi
|
|
000e6 5d pop rbp
|
|
000e7 c3 ret 0
|
|
glCheckShaderStat ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__is_16_main
|
|
_TEXT SEGMENT
|
|
s$ = 224
|
|
stbi__is_16_main PROC ; COMDAT
|
|
|
|
; 8610 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 8611 : #ifndef STBI_NO_PNG
|
|
; 8612 : 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
|
|
|
|
; 8613 : return 1;
|
|
|
|
00030 b8 01 00 00 00 mov eax, 1
|
|
00035 eb 30 jmp SHORT $LN1@stbi__is_1
|
|
$LN2@stbi__is_1:
|
|
|
|
; 8614 : #endif
|
|
; 8615 :
|
|
; 8616 : #ifndef STBI_NO_PSD
|
|
; 8617 : 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
|
|
|
|
; 8618 : return 1;
|
|
|
|
00047 b8 01 00 00 00 mov eax, 1
|
|
0004c eb 19 jmp SHORT $LN1@stbi__is_1
|
|
$LN3@stbi__is_1:
|
|
|
|
; 8619 : #endif
|
|
; 8620 :
|
|
; 8621 : #ifndef STBI_NO_PNM
|
|
; 8622 : 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
|
|
|
|
; 8623 : return 1;
|
|
|
|
0005e b8 01 00 00 00 mov eax, 1
|
|
00063 eb 02 jmp SHORT $LN1@stbi__is_1
|
|
$LN4@stbi__is_1:
|
|
|
|
; 8624 : #endif
|
|
; 8625 : return 0;
|
|
|
|
00065 33 c0 xor eax, eax
|
|
$LN1@stbi__is_1:
|
|
|
|
; 8626 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__info_main
|
|
_TEXT SEGMENT
|
|
s$ = 224
|
|
x$ = 232
|
|
y$ = 240
|
|
comp$ = 248
|
|
stbi__info_main PROC ; COMDAT
|
|
|
|
; 8560 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 8561 : #ifndef STBI_NO_JPEG
|
|
; 8562 : 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
|
|
|
|
; 8563 : return 1;
|
|
|
|
00054 b8 01 00 00 00 mov eax, 1
|
|
00059 e9 7b 01 00 00 jmp $LN1@stbi__info
|
|
$LN2@stbi__info:
|
|
|
|
; 8564 : #endif
|
|
; 8565 :
|
|
; 8566 : #ifndef STBI_NO_PNG
|
|
; 8567 : 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
|
|
|
|
; 8568 : return 1;
|
|
|
|
00083 b8 01 00 00 00 mov eax, 1
|
|
00088 e9 4c 01 00 00 jmp $LN1@stbi__info
|
|
$LN3@stbi__info:
|
|
|
|
; 8569 : #endif
|
|
; 8570 :
|
|
; 8571 : #ifndef STBI_NO_GIF
|
|
; 8572 : 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
|
|
|
|
; 8573 : return 1;
|
|
|
|
000b2 b8 01 00 00 00 mov eax, 1
|
|
000b7 e9 1d 01 00 00 jmp $LN1@stbi__info
|
|
$LN4@stbi__info:
|
|
|
|
; 8574 : #endif
|
|
; 8575 :
|
|
; 8576 : #ifndef STBI_NO_BMP
|
|
; 8577 : 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
|
|
|
|
; 8578 : return 1;
|
|
|
|
000e1 b8 01 00 00 00 mov eax, 1
|
|
000e6 e9 ee 00 00 00 jmp $LN1@stbi__info
|
|
$LN5@stbi__info:
|
|
|
|
; 8579 : #endif
|
|
; 8580 :
|
|
; 8581 : #ifndef STBI_NO_PSD
|
|
; 8582 : 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
|
|
|
|
; 8583 : return 1;
|
|
|
|
00110 b8 01 00 00 00 mov eax, 1
|
|
00115 e9 bf 00 00 00 jmp $LN1@stbi__info
|
|
$LN6@stbi__info:
|
|
|
|
; 8584 : #endif
|
|
; 8585 :
|
|
; 8586 : #ifndef STBI_NO_PIC
|
|
; 8587 : 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
|
|
|
|
; 8588 : return 1;
|
|
|
|
0013f b8 01 00 00 00 mov eax, 1
|
|
00144 e9 90 00 00 00 jmp $LN1@stbi__info
|
|
$LN7@stbi__info:
|
|
|
|
; 8589 : #endif
|
|
; 8590 :
|
|
; 8591 : #ifndef STBI_NO_PNM
|
|
; 8592 : 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
|
|
|
|
; 8593 : return 1;
|
|
|
|
0016e b8 01 00 00 00 mov eax, 1
|
|
00173 eb 64 jmp SHORT $LN1@stbi__info
|
|
$LN8@stbi__info:
|
|
|
|
; 8594 : #endif
|
|
; 8595 :
|
|
; 8596 : #ifndef STBI_NO_HDR
|
|
; 8597 : 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
|
|
|
|
; 8598 : return 1;
|
|
|
|
0019a b8 01 00 00 00 mov eax, 1
|
|
0019f eb 38 jmp SHORT $LN1@stbi__info
|
|
$LN9@stbi__info:
|
|
|
|
; 8599 : #endif
|
|
; 8600 :
|
|
; 8601 : // test tga last because it's a crappy test!
|
|
; 8602 : #ifndef STBI_NO_TGA
|
|
; 8603 : 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
|
|
|
|
; 8604 : return 1;
|
|
|
|
001c6 b8 01 00 00 00 mov eax, 1
|
|
001cb eb 0c jmp SHORT $LN1@stbi__info
|
|
$LN10@stbi__info:
|
|
|
|
; 8605 : #endif
|
|
; 8606 : 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:
|
|
|
|
; 8607 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pnm_getinteger
|
|
_TEXT SEGMENT
|
|
value$ = 4
|
|
s$ = 256
|
|
c$ = 264
|
|
stbi__pnm_getinteger PROC ; COMDAT
|
|
|
|
; 8489 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 8490 : int value = 0;
|
|
|
|
00025 c7 45 04 00 00
|
|
00 00 mov DWORD PTR value$[rbp], 0
|
|
$LN2@stbi__pnm_:
|
|
|
|
; 8491 :
|
|
; 8492 : 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_
|
|
|
|
; 8493 : 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
|
|
|
|
; 8494 : *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
|
|
|
|
; 8495 : 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_:
|
|
|
|
; 8496 : 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_:
|
|
|
|
; 8497 : "integer parse overflow",
|
|
; 8498 : "Parsing an integer in the PPM header overflowed a 32-bit int");
|
|
; 8499 : }
|
|
|
|
000a8 eb 82 jmp SHORT $LN2@stbi__pnm_
|
|
$LN3@stbi__pnm_:
|
|
|
|
; 8500 :
|
|
; 8501 : return value;
|
|
|
|
000aa 8b 45 04 mov eax, DWORD PTR value$[rbp]
|
|
$LN1@stbi__pnm_:
|
|
|
|
; 8502 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pnm_isdigit
|
|
_TEXT SEGMENT
|
|
tv68 = 192
|
|
c$ = 240
|
|
stbi__pnm_isdigit PROC ; COMDAT
|
|
|
|
; 8484 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 8485 : 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]
|
|
|
|
; 8486 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pnm_skip_whitespace
|
|
_TEXT SEGMENT
|
|
s$ = 224
|
|
c$ = 232
|
|
stbi__pnm_skip_whitespace PROC ; COMDAT
|
|
|
|
; 8470 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
$LN2@stbi__pnm_:
|
|
$LN5@stbi__pnm_:
|
|
|
|
; 8471 : for (;;) {
|
|
; 8472 : 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_
|
|
|
|
; 8473 : *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_:
|
|
|
|
; 8474 :
|
|
; 8475 : 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_:
|
|
|
|
; 8476 : break;
|
|
|
|
0007e eb 4a jmp SHORT $LN3@stbi__pnm_
|
|
$LN9@stbi__pnm_:
|
|
$LN7@stbi__pnm_:
|
|
|
|
; 8477 :
|
|
; 8478 : 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_
|
|
|
|
; 8479 : *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_:
|
|
|
|
; 8480 : }
|
|
|
|
000c5 e9 5b ff ff ff jmp $LN2@stbi__pnm_
|
|
$LN3@stbi__pnm_:
|
|
|
|
; 8481 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pnm_isspace
|
|
_TEXT SEGMENT
|
|
tv76 = 192
|
|
c$ = 240
|
|
stbi__pnm_isspace PROC ; COMDAT
|
|
|
|
; 8465 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 8466 : 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]
|
|
|
|
; 8467 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__hdr_convert
|
|
_TEXT SEGMENT
|
|
f1$1 = 4
|
|
tv152 = 212
|
|
output$ = 256
|
|
input$ = 264
|
|
req_comp$ = 272
|
|
stbi__hdr_convert PROC ; COMDAT
|
|
|
|
; 7996 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 7997 : 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_
|
|
|
|
; 7998 : float f1;
|
|
; 7999 : // Exponent
|
|
; 8000 : 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
|
|
|
|
; 8001 : 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_
|
|
|
|
; 8002 : 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_:
|
|
|
|
; 8003 : else {
|
|
; 8004 : 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
|
|
|
|
; 8005 : 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
|
|
|
|
; 8006 : 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_:
|
|
|
|
; 8007 : }
|
|
; 8008 : 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_
|
|
|
|
; 8009 : 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_:
|
|
|
|
; 8010 : 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_
|
|
|
|
; 8011 : 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_:
|
|
|
|
; 8012 : } else {
|
|
|
|
001ce e9 d5 00 00 00 jmp $LN5@stbi__hdr_
|
|
$LN4@stbi__hdr_:
|
|
|
|
; 8013 : 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_:
|
|
|
|
; 8014 : case 4:
|
|
; 8015 : 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_:
|
|
|
|
; 8016 : case 3:
|
|
; 8017 : 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
|
|
|
|
; 8018 : break;
|
|
|
|
00271 eb 35 jmp SHORT $LN2@stbi__hdr_
|
|
$LN12@stbi__hdr_:
|
|
|
|
; 8019 : case 2:
|
|
; 8020 : 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_:
|
|
|
|
; 8021 : case 1:
|
|
; 8022 : 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_:
|
|
|
|
; 8023 : break;
|
|
; 8024 : }
|
|
; 8025 : }
|
|
; 8026 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__hdr_gettoken
|
|
_TEXT SEGMENT
|
|
len$ = 4
|
|
c$ = 36
|
|
z$ = 288
|
|
buffer$ = 296
|
|
stbi__hdr_gettoken PROC ; COMDAT
|
|
|
|
; 7974 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 7975 : int len = 0;
|
|
|
|
00025 c7 45 04 00 00
|
|
00 00 mov DWORD PTR len$[rbp], 0
|
|
|
|
; 7976 : char c = '\0';
|
|
|
|
0002c c6 45 24 00 mov BYTE PTR c$[rbp], 0
|
|
|
|
; 7977 :
|
|
; 7978 : 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_:
|
|
|
|
; 7979 :
|
|
; 7980 : 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_
|
|
|
|
; 7981 : 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
|
|
|
|
; 7982 : 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_:
|
|
|
|
; 7983 : // flush to end of line
|
|
; 7984 : 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_
|
|
|
|
; 7985 : ;
|
|
|
|
0009f eb da jmp SHORT $LN4@stbi__hdr_
|
|
$LN5@stbi__hdr_:
|
|
|
|
; 7986 : break;
|
|
|
|
000a1 eb 11 jmp SHORT $LN3@stbi__hdr_
|
|
$LN6@stbi__hdr_:
|
|
|
|
; 7987 : }
|
|
; 7988 : 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
|
|
|
|
; 7989 : }
|
|
|
|
000b2 eb 8b jmp SHORT $LN2@stbi__hdr_
|
|
$LN3@stbi__hdr_:
|
|
|
|
; 7990 :
|
|
; 7991 : 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
|
|
|
|
; 7992 : return buffer;
|
|
|
|
000c3 48 8b 85 28 01
|
|
00 00 mov rax, QWORD PTR buffer$[rbp]
|
|
|
|
; 7993 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__hdr_test_core
|
|
_TEXT SEGMENT
|
|
i$ = 4
|
|
s$ = 256
|
|
signature$ = 264
|
|
stbi__hdr_test_core PROC ; COMDAT
|
|
|
|
; 7952 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 7953 : int i;
|
|
; 7954 : 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_
|
|
|
|
; 7955 : 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_
|
|
|
|
; 7956 : 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_:
|
|
|
|
; 7957 : 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
|
|
|
|
; 7958 : return 1;
|
|
|
|
0007e b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__hdr_:
|
|
|
|
; 7959 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__load_gif_main_outofmem
|
|
_TEXT SEGMENT
|
|
tv78 = 192
|
|
g$ = 240
|
|
out$ = 248
|
|
delays$ = 256
|
|
stbi__load_gif_main_outofmem PROC ; COMDAT
|
|
|
|
; 7805 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 7806 : 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
|
|
|
|
; 7807 : 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
|
|
|
|
; 7808 : 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
|
|
|
|
; 7809 :
|
|
; 7810 : 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
|
|
|
|
; 7811 : 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:
|
|
|
|
; 7812 : 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
|
|
|
|
; 7813 : 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:
|
|
|
|
; 7814 : 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]
|
|
|
|
; 7815 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 7622 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 7623 : int dispose;
|
|
; 7624 : int first_frame;
|
|
; 7625 : int pi;
|
|
; 7626 : int pcount;
|
|
; 7627 : STBI_NOTUSED(req_comp);
|
|
; 7628 :
|
|
; 7629 : // on first frame, any non-written pixels get the background colour (non-transparent)
|
|
; 7630 : first_frame = 0;
|
|
|
|
0002f c7 45 24 00 00
|
|
00 00 mov DWORD PTR first_frame$[rbp], 0
|
|
|
|
; 7631 : 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_
|
|
|
|
; 7632 : 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_
|
|
|
|
; 7633 : 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_:
|
|
|
|
; 7634 : 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_
|
|
|
|
; 7635 : 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_:
|
|
|
|
; 7636 : 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
|
|
|
|
; 7637 : 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
|
|
|
|
; 7638 : 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
|
|
|
|
; 7639 : 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
|
|
|
|
; 7640 : 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_:
|
|
|
|
; 7641 : 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_:
|
|
|
|
; 7642 :
|
|
; 7643 : // image is treated as "transparent" at the start - ie, nothing overwrites the current background;
|
|
; 7644 : // background colour is only used for pixels that are not rendered first frame, after that "background"
|
|
; 7645 : // color refers to the color that was there the previous frame.
|
|
; 7646 : 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
|
|
|
|
; 7647 : 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
|
|
|
|
; 7648 : 4 * pcount); // state of the background (starts transparent)
|
|
; 7649 : memset(g->history, 0x00, pcount); // pixels that were affected previous frame
|
|
|
|
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
|
|
|
|
; 7650 : first_frame = 1;
|
|
|
|
001e1 c7 45 24 01 00
|
|
00 00 mov DWORD PTR first_frame$[rbp], 1
|
|
|
|
; 7651 : } else {
|
|
|
|
001e8 e9 6b 01 00 00 jmp $LN19@stbi__gif_
|
|
$LN18@stbi__gif_:
|
|
|
|
; 7652 : // second frame - how do we dispose of the previous one?
|
|
; 7653 : 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
|
|
|
|
; 7654 : 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
|
|
|
|
; 7655 :
|
|
; 7656 : 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_
|
|
|
|
; 7657 : dispose =
|
|
|
|
00227 c7 45 04 02 00
|
|
00 00 mov DWORD PTR dispose$[rbp], 2
|
|
$LN24@stbi__gif_:
|
|
|
|
; 7658 : 2; // if I don't have an image to revert back to, default to the old background
|
|
; 7659 : }
|
|
; 7660 :
|
|
; 7661 : 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_
|
|
|
|
; 7662 : 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_
|
|
|
|
; 7663 : 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_
|
|
|
|
; 7664 : 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_:
|
|
|
|
; 7665 : }
|
|
; 7666 : }
|
|
|
|
002a2 eb 99 jmp SHORT $LN2@stbi__gif_
|
|
$LN3@stbi__gif_:
|
|
|
|
; 7667 : } 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_
|
|
|
|
; 7668 : // restore what was changed last frame to background before that frame;
|
|
; 7669 : 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_
|
|
|
|
; 7670 : 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_
|
|
|
|
; 7671 : 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_:
|
|
|
|
; 7672 : }
|
|
; 7673 : }
|
|
|
|
0031e eb 95 jmp SHORT $LN5@stbi__gif_
|
|
$LN6@stbi__gif_:
|
|
$LN28@stbi__gif_:
|
|
$LN26@stbi__gif_:
|
|
|
|
; 7674 : } else {
|
|
; 7675 : // This is a non-disposal case eithe way, so just
|
|
; 7676 : // leave the pixels as is, and they will become the new background
|
|
; 7677 : // 1: do not dispose
|
|
; 7678 : // 0: not specified.
|
|
; 7679 : }
|
|
; 7680 :
|
|
; 7681 : // background is what out is after the undoing of the previou frame;
|
|
; 7682 : 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_:
|
|
|
|
; 7683 : }
|
|
; 7684 :
|
|
; 7685 : // clear my history;
|
|
; 7686 : memset(g->history, 0x00, g->w * g->h); // pixels that were affected previous frame
|
|
|
|
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_:
|
|
|
|
; 7687 :
|
|
; 7688 : for (;;) {
|
|
; 7689 : 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
|
|
|
|
; 7690 : 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_:
|
|
|
|
; 7691 : case 0x2C: /* Image Descriptor */
|
|
; 7692 : {
|
|
; 7693 : stbi__int32 x, y, w, h;
|
|
; 7694 : stbi_uc *o;
|
|
; 7695 :
|
|
; 7696 : 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
|
|
|
|
; 7697 : 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
|
|
|
|
; 7698 : 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
|
|
|
|
; 7699 : 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
|
|
|
|
; 7700 : 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_:
|
|
|
|
; 7701 : 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_:
|
|
|
|
; 7702 :
|
|
; 7703 : 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
|
|
|
|
; 7704 : 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
|
|
|
|
; 7705 : 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
|
|
|
|
; 7706 : 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
|
|
|
|
; 7707 : 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
|
|
|
|
; 7708 : 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
|
|
|
|
; 7709 : 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
|
|
|
|
; 7710 :
|
|
; 7711 : // if the width of the specified rectangle is 0, that means
|
|
; 7712 : // we may not see *any* pixels or the image is malformed;
|
|
; 7713 : // to make sure this is caught, move the current y down to
|
|
; 7714 : // max_y (which is what out_gif_code checks).
|
|
; 7715 : 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_
|
|
|
|
; 7716 : 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_:
|
|
|
|
; 7717 :
|
|
; 7718 : 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
|
|
|
|
; 7719 :
|
|
; 7720 : 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_
|
|
|
|
; 7721 : 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
|
|
|
|
; 7722 : 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
|
|
|
|
; 7723 : } else {
|
|
|
|
005da eb 2b jmp SHORT $LN36@stbi__gif_
|
|
$LN35@stbi__gif_:
|
|
|
|
; 7724 : 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
|
|
|
|
; 7725 : 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_:
|
|
|
|
; 7726 : }
|
|
; 7727 :
|
|
; 7728 : 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_
|
|
|
|
; 7729 : 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
|
|
|
|
; 7730 : g->eflags & 0x01 ? g->transparent : -1);
|
|
; 7731 : 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_:
|
|
|
|
; 7732 : } 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_
|
|
|
|
; 7733 : 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
|
|
|
|
; 7734 : } else
|
|
|
|
006e5 eb 34 jmp SHORT $LN40@stbi__gif_
|
|
$LN39@stbi__gif_:
|
|
|
|
; 7735 : 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_:
|
|
|
|
; 7736 :
|
|
; 7737 : 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
|
|
|
|
; 7738 : 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_
|
|
|
|
; 7739 : return NULL;
|
|
|
|
0073f 33 c0 xor eax, eax
|
|
00741 e9 90 02 00 00 jmp $LN1@stbi__gif_
|
|
$LN41@stbi__gif_:
|
|
|
|
; 7740 :
|
|
; 7741 : // if this was the first frame,
|
|
; 7742 : 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
|
|
|
|
; 7743 : 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_
|
|
|
|
; 7744 : // if first frame, any pixel not drawn to gets the background color
|
|
; 7745 : 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_
|
|
|
|
; 7746 : 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_
|
|
|
|
; 7747 : 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
|
|
|
|
; 7748 : 255; // just in case it was made transparent, undo that; It will be reset next frame if need be;
|
|
; 7749 : 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_:
|
|
|
|
; 7750 : }
|
|
; 7751 : }
|
|
|
|
00810 e9 6c ff ff ff jmp $LN13@stbi__gif_
|
|
$LN14@stbi__gif_:
|
|
$LN42@stbi__gif_:
|
|
|
|
; 7752 : }
|
|
; 7753 :
|
|
; 7754 : 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_:
|
|
|
|
; 7755 : }
|
|
; 7756 :
|
|
; 7757 : case 0x21: // Comment Extension.
|
|
; 7758 : {
|
|
; 7759 : int len;
|
|
; 7760 : 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
|
|
|
|
; 7761 : 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_
|
|
|
|
; 7762 : 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
|
|
|
|
; 7763 : 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_
|
|
|
|
; 7764 : 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
|
|
|
|
; 7765 : 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
|
|
|
|
; 7766 : 10 *
|
|
; 7767 : stbi__get16le(
|
|
; 7768 : s); // delay - 1/100th of a second, saving as 1/1000ths.
|
|
; 7769 :
|
|
; 7770 : // unset old transparent
|
|
; 7771 : 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_
|
|
|
|
; 7772 : 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_:
|
|
|
|
; 7773 : }
|
|
; 7774 : 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_
|
|
|
|
; 7775 : 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
|
|
|
|
; 7776 : 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_
|
|
|
|
; 7777 : 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_:
|
|
|
|
; 7778 : }
|
|
; 7779 : } else {
|
|
|
|
00929 eb 20 jmp SHORT $LN50@stbi__gif_
|
|
$LN49@stbi__gif_:
|
|
|
|
; 7780 : // don't need transparent
|
|
; 7781 : 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
|
|
|
|
; 7782 : 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_:
|
|
|
|
; 7783 : }
|
|
; 7784 : } else {
|
|
|
|
0094b eb 15 jmp SHORT $LN47@stbi__gif_
|
|
$LN46@stbi__gif_:
|
|
|
|
; 7785 : 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
|
|
|
|
; 7786 : break;
|
|
|
|
00960 eb 6f jmp SHORT $LN11@stbi__gif_
|
|
$LN47@stbi__gif_:
|
|
$LN45@stbi__gif_:
|
|
$LN16@stbi__gif_:
|
|
|
|
; 7787 : }
|
|
; 7788 : }
|
|
; 7789 : 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_
|
|
|
|
; 7790 : 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
|
|
|
|
; 7791 : }
|
|
|
|
00993 eb cd jmp SHORT $LN16@stbi__gif_
|
|
$LN17@stbi__gif_:
|
|
|
|
; 7792 : break;
|
|
|
|
00995 eb 3a jmp SHORT $LN11@stbi__gif_
|
|
$LN52@stbi__gif_:
|
|
|
|
; 7793 : }
|
|
; 7794 :
|
|
; 7795 : case 0x3B: // gif stream termination code
|
|
; 7796 : 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_:
|
|
|
|
; 7797 :
|
|
; 7798 : default:
|
|
; 7799 : 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_:
|
|
|
|
; 7800 : }
|
|
; 7801 : }
|
|
|
|
009d1 e9 ae f9 ff ff jmp $LN8@stbi__gif_
|
|
$LN1@stbi__gif_:
|
|
|
|
; 7802 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 7530 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 7531 : stbi_uc lzw_cs;
|
|
; 7532 : stbi__int32 len, init_code;
|
|
; 7533 : stbi__uint32 first;
|
|
; 7534 : stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear;
|
|
; 7535 : stbi__gif_lzw *p;
|
|
; 7536 :
|
|
; 7537 : 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
|
|
|
|
; 7538 : 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
|
|
|
|
; 7539 : return NULL;
|
|
|
|
0003d 33 c0 xor eax, eax
|
|
0003f e9 a2 04 00 00 jmp $LN1@stbi__proc
|
|
$LN10@stbi__proc:
|
|
|
|
; 7540 : 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
|
|
|
|
; 7541 : first = 1;
|
|
|
|
00064 c7 45 64 01 00
|
|
00 00 mov DWORD PTR first$[rbp], 1
|
|
|
|
; 7542 : 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
|
|
|
|
; 7543 : 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
|
|
|
|
; 7544 : bits = 0;
|
|
|
|
0009b c7 85 04 01 00
|
|
00 00 00 00 00 mov DWORD PTR bits$[rbp], 0
|
|
|
|
; 7545 : valid_bits = 0;
|
|
|
|
000a5 c7 85 24 01 00
|
|
00 00 00 00 00 mov DWORD PTR valid_bits$[rbp], 0
|
|
|
|
; 7546 : 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
|
|
|
|
; 7547 : 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
|
|
|
|
; 7548 : 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
|
|
|
|
; 7549 : 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
|
|
|
|
; 7550 : }
|
|
|
|
0010f eb a7 jmp SHORT $LN2@stbi__proc
|
|
$LN3@stbi__proc:
|
|
|
|
; 7551 :
|
|
; 7552 : // support no starting clear code
|
|
; 7553 : 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
|
|
|
|
; 7554 : oldcode = -1;
|
|
|
|
00120 c7 85 e4 00 00
|
|
00 ff ff ff ff mov DWORD PTR oldcode$[rbp], -1
|
|
|
|
; 7555 :
|
|
; 7556 : len = 0;
|
|
|
|
0012a c7 45 24 00 00
|
|
00 00 mov DWORD PTR len$[rbp], 0
|
|
$LN5@stbi__proc:
|
|
|
|
; 7557 : for (;;) {
|
|
; 7558 : 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
|
|
|
|
; 7559 : if (len == 0) {
|
|
|
|
0013f 83 7d 24 00 cmp DWORD PTR len$[rbp], 0
|
|
00143 75 28 jne SHORT $LN13@stbi__proc
|
|
|
|
; 7560 : 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
|
|
|
|
; 7561 : if (len == 0)
|
|
|
|
00157 83 7d 24 00 cmp DWORD PTR len$[rbp], 0
|
|
0015b 75 10 jne SHORT $LN14@stbi__proc
|
|
|
|
; 7562 : 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:
|
|
|
|
; 7563 : }
|
|
; 7564 : --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
|
|
|
|
; 7565 : 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
|
|
|
|
; 7566 : 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
|
|
|
|
; 7567 : } else {
|
|
|
|
001ab e9 31 03 00 00 jmp $LN12@stbi__proc
|
|
$LN11@stbi__proc:
|
|
|
|
; 7568 : 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
|
|
|
|
; 7569 : 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
|
|
|
|
; 7570 : 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
|
|
|
|
; 7571 : // @OPTIMIZE: is there some way we can accelerate the non-clear path?
|
|
; 7572 : 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
|
|
|
|
; 7573 : 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
|
|
|
|
; 7574 : 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
|
|
|
|
; 7575 : 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
|
|
|
|
; 7576 : oldcode = -1;
|
|
|
|
00240 c7 85 e4 00 00
|
|
00 ff ff ff ff mov DWORD PTR oldcode$[rbp], -1
|
|
|
|
; 7577 : 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:
|
|
|
|
; 7578 : } 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
|
|
|
|
; 7579 : 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:
|
|
|
|
; 7580 : 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
|
|
|
|
; 7581 : 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:
|
|
|
|
; 7582 : 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:
|
|
|
|
; 7583 : } 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
|
|
|
|
; 7584 : if (first) {
|
|
|
|
002c7 83 7d 64 00 cmp DWORD PTR first$[rbp], 0
|
|
002cb 74 34 je SHORT $LN21@stbi__proc
|
|
|
|
; 7585 : 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:
|
|
|
|
; 7586 : }
|
|
; 7587 :
|
|
; 7588 : 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
|
|
|
|
; 7589 : 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
|
|
|
|
; 7590 : 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
|
|
|
|
; 7591 : 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:
|
|
|
|
; 7592 : "Corrupt GIF");
|
|
; 7593 : }
|
|
; 7594 :
|
|
; 7595 : 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
|
|
|
|
; 7596 : 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
|
|
|
|
; 7597 : 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:
|
|
|
|
; 7598 : g->codes[code].first;
|
|
; 7599 : } 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
|
|
|
|
; 7600 : 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:
|
|
|
|
; 7601 : "Corrupt GIF");
|
|
; 7602 :
|
|
; 7603 : 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
|
|
|
|
; 7604 :
|
|
; 7605 : 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
|
|
|
|
; 7606 : 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
|
|
|
|
; 7607 : 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:
|
|
|
|
; 7608 : }
|
|
; 7609 :
|
|
; 7610 : 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
|
|
|
|
; 7611 : } else {
|
|
|
|
004ae eb 31 jmp SHORT $LN20@stbi__proc
|
|
$LN19@stbi__proc:
|
|
|
|
; 7612 : 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:
|
|
|
|
; 7613 : }
|
|
; 7614 : }
|
|
; 7615 : }
|
|
|
|
004e1 e9 4b fc ff ff jmp $LN5@stbi__proc
|
|
$LN1@stbi__proc:
|
|
|
|
; 7616 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 7492 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 7493 : stbi_uc *p, *c;
|
|
; 7494 : int idx;
|
|
; 7495 :
|
|
; 7496 : // recurse to decode the prefixes, since the linked-list is backwards,
|
|
; 7497 : // and working backwards through an interleaved image would be nasty
|
|
; 7498 : 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_
|
|
|
|
; 7499 : 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_:
|
|
|
|
; 7500 :
|
|
; 7501 : 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_
|
|
|
|
; 7502 : return;
|
|
|
|
0007e e9 64 02 00 00 jmp $LN1@stbi__out_
|
|
$LN5@stbi__out_:
|
|
|
|
; 7503 :
|
|
; 7504 : 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
|
|
|
|
; 7505 : 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
|
|
|
|
; 7506 : 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
|
|
|
|
; 7507 :
|
|
; 7508 : 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
|
|
|
|
; 7509 : 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_
|
|
|
|
; 7510 : 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
|
|
|
|
; 7511 : 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
|
|
|
|
; 7512 : 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
|
|
|
|
; 7513 : 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_:
|
|
|
|
; 7514 : }
|
|
; 7515 : 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
|
|
|
|
; 7516 :
|
|
; 7517 : 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_
|
|
|
|
; 7518 : 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
|
|
|
|
; 7519 : 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_:
|
|
|
|
; 7520 :
|
|
; 7521 : 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_
|
|
|
|
; 7522 : 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
|
|
|
|
; 7523 : 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
|
|
|
|
; 7524 : --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
|
|
|
|
; 7525 : }
|
|
|
|
002e2 e9 44 ff ff ff jmp $LN2@stbi__out_
|
|
$LN3@stbi__out_:
|
|
$LN7@stbi__out_:
|
|
$LN1@stbi__out_:
|
|
|
|
; 7526 : }
|
|
; 7527 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__gif_info_raw
|
|
_TEXT SEGMENT
|
|
g$ = 8
|
|
s$ = 256
|
|
x$ = 264
|
|
y$ = 272
|
|
comp$ = 280
|
|
stbi__gif_info_raw PROC ; COMDAT
|
|
|
|
; 7474 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 7475 : 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
|
|
|
|
; 7476 : if (!g)
|
|
|
|
0003d 48 83 7d 08 00 cmp QWORD PTR g$[rbp], 0
|
|
00042 75 11 jne SHORT $LN2@stbi__gif_
|
|
|
|
; 7477 : 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_:
|
|
|
|
; 7478 : 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_
|
|
|
|
; 7479 : 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
|
|
|
|
; 7480 : 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
|
|
|
|
; 7481 : return 0;
|
|
|
|
0008e 33 c0 xor eax, eax
|
|
00090 eb 43 jmp SHORT $LN1@stbi__gif_
|
|
$LN3@stbi__gif_:
|
|
|
|
; 7482 : }
|
|
; 7483 : 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_
|
|
|
|
; 7484 : *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_:
|
|
|
|
; 7485 : 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_
|
|
|
|
; 7486 : *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_:
|
|
|
|
; 7487 : 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
|
|
|
|
; 7488 : return 1;
|
|
|
|
000d0 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__gif_:
|
|
|
|
; 7489 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__gif_header
|
|
_TEXT SEGMENT
|
|
version$ = 4
|
|
tv225 = 212
|
|
s$ = 256
|
|
g$ = 264
|
|
comp$ = 272
|
|
is_info$ = 280
|
|
stbi__gif_header PROC ; COMDAT
|
|
|
|
; 7436 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 7437 : stbi_uc version;
|
|
; 7438 : 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_:
|
|
|
|
; 7439 : stbi__get8(s) != '8')
|
|
; 7440 : 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_:
|
|
|
|
; 7441 :
|
|
; 7442 : 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
|
|
|
|
; 7443 : 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_
|
|
|
|
; 7444 : 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_:
|
|
|
|
; 7445 : 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_
|
|
|
|
; 7446 : 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_:
|
|
|
|
; 7447 :
|
|
; 7448 : 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
|
|
|
|
; 7449 : 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
|
|
|
|
; 7450 : 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
|
|
|
|
; 7451 : 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
|
|
|
|
; 7452 : 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
|
|
|
|
; 7453 : 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
|
|
|
|
; 7454 : 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
|
|
|
|
; 7455 :
|
|
; 7456 : 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_
|
|
|
|
; 7457 : 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_:
|
|
|
|
; 7458 : 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_
|
|
|
|
; 7459 : 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_:
|
|
|
|
; 7460 :
|
|
; 7461 : 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_
|
|
|
|
; 7462 : *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_:
|
|
|
|
; 7463 :
|
|
; 7464 : 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_
|
|
|
|
; 7465 : return 1;
|
|
|
|
001f1 b8 01 00 00 00 mov eax, 1
|
|
001f6 eb 5f jmp SHORT $LN1@stbi__gif_
|
|
$LN9@stbi__gif_:
|
|
|
|
; 7466 :
|
|
; 7467 : 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_
|
|
|
|
; 7468 : 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_:
|
|
|
|
; 7469 :
|
|
; 7470 : return 1;
|
|
|
|
00252 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__gif_:
|
|
|
|
; 7471 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 7425 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 7426 : int i;
|
|
; 7427 : 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_
|
|
|
|
; 7428 : 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
|
|
|
|
; 7429 : 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
|
|
|
|
; 7430 : 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
|
|
|
|
; 7431 : 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
|
|
|
|
; 7432 : }
|
|
|
|
00107 e9 2c ff ff ff jmp $LN2@stbi__gif_
|
|
$LN3@stbi__gif_:
|
|
|
|
; 7433 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__gif_test_raw
|
|
_TEXT SEGMENT
|
|
sz$ = 4
|
|
s$ = 256
|
|
stbi__gif_test_raw PROC ; COMDAT
|
|
|
|
; 7403 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 7404 : int sz;
|
|
; 7405 : 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_:
|
|
|
|
; 7406 : stbi__get8(s) != '8')
|
|
; 7407 : return 0;
|
|
|
|
00070 33 c0 xor eax, eax
|
|
00072 eb 3f jmp SHORT $LN1@stbi__gif_
|
|
$LN2@stbi__gif_:
|
|
|
|
; 7408 : 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
|
|
|
|
; 7409 : 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_
|
|
|
|
; 7410 : return 0;
|
|
|
|
00092 33 c0 xor eax, eax
|
|
00094 eb 1d jmp SHORT $LN1@stbi__gif_
|
|
$LN4@stbi__gif_:
|
|
|
|
; 7411 : 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_
|
|
|
|
; 7412 : return 0;
|
|
|
|
000aa 33 c0 xor eax, eax
|
|
000ac eb 05 jmp SHORT $LN1@stbi__gif_
|
|
$LN5@stbi__gif_:
|
|
|
|
; 7413 : return 1;
|
|
|
|
000ae b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__gif_:
|
|
|
|
; 7414 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 7194 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00057 90 npad 1
|
|
|
|
; 7195 : 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_:
|
|
|
|
; 7196 : stbi__pic_packet packets[10];
|
|
; 7197 :
|
|
; 7198 : // this will (should...) cater for even some bizarre stuff like having data
|
|
; 7199 : // for the same channel in multiple packets.
|
|
; 7200 : do {
|
|
; 7201 : stbi__pic_packet *packet;
|
|
; 7202 :
|
|
; 7203 : 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_
|
|
|
|
; 7204 : 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_:
|
|
|
|
; 7205 :
|
|
; 7206 : 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
|
|
|
|
; 7207 :
|
|
; 7208 : 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
|
|
|
|
; 7209 : 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
|
|
|
|
; 7210 : 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
|
|
|
|
; 7211 : 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
|
|
|
|
; 7212 :
|
|
; 7213 : 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
|
|
|
|
; 7214 :
|
|
; 7215 : 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_
|
|
|
|
; 7216 : 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_:
|
|
|
|
; 7217 : 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_
|
|
|
|
; 7218 : 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_:
|
|
|
|
; 7219 : } while (chained);
|
|
|
|
001b2 83 7d 64 00 cmp DWORD PTR chained$[rbp], 0
|
|
001b6 0f 85 aa fe ff
|
|
ff jne $LN4@stbi__pic_
|
|
|
|
; 7220 :
|
|
; 7221 : *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
|
|
|
|
; 7222 :
|
|
; 7223 : 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_
|
|
|
|
; 7224 : int packet_idx;
|
|
; 7225 :
|
|
; 7226 : 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_
|
|
|
|
; 7227 : 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
|
|
|
|
; 7228 : 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
|
|
|
|
; 7229 :
|
|
; 7230 : 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_
|
|
|
|
; 7231 : default:
|
|
; 7232 : 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_:
|
|
|
|
; 7233 : "packet has bad compression type");
|
|
; 7234 :
|
|
; 7235 : case 0: { //uncompressed
|
|
; 7236 : int x;
|
|
; 7237 :
|
|
; 7238 : 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_
|
|
|
|
; 7239 : 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_
|
|
|
|
; 7240 : 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_:
|
|
|
|
; 7241 : break;
|
|
|
|
00341 e9 87 03 00 00 jmp $LN11@stbi__pic_
|
|
$LN35@stbi__pic_:
|
|
|
|
; 7242 : }
|
|
; 7243 :
|
|
; 7244 : case 1: //Pure RLE
|
|
; 7245 : {
|
|
; 7246 : 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_:
|
|
|
|
; 7247 :
|
|
; 7248 : 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_
|
|
|
|
; 7249 : stbi_uc count, value[4];
|
|
; 7250 :
|
|
; 7251 : 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
|
|
|
|
; 7252 : 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_
|
|
|
|
; 7253 : 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_:
|
|
|
|
; 7254 : "bad file",
|
|
; 7255 : "file too short (pure read count)");
|
|
; 7256 :
|
|
; 7257 : 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_
|
|
|
|
; 7258 : 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_:
|
|
|
|
; 7259 :
|
|
; 7260 : 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_
|
|
|
|
; 7261 : return 0;
|
|
|
|
003f6 33 c0 xor eax, eax
|
|
003f8 e9 e1 02 00 00 jmp $LN1@stbi__pic_
|
|
$LN38@stbi__pic_:
|
|
|
|
; 7262 :
|
|
; 7263 : 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_
|
|
|
|
; 7264 : 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_:
|
|
|
|
; 7265 : 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
|
|
|
|
; 7266 : }
|
|
|
|
00472 e9 db fe ff ff jmp $LN16@stbi__pic_
|
|
$LN17@stbi__pic_:
|
|
|
|
; 7267 : } break;
|
|
|
|
00477 e9 51 02 00 00 jmp $LN11@stbi__pic_
|
|
$LN39@stbi__pic_:
|
|
|
|
; 7268 :
|
|
; 7269 : case 2: { //Mixed RLE
|
|
; 7270 : 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_:
|
|
|
|
; 7271 : 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_
|
|
|
|
; 7272 : 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
|
|
|
|
; 7273 : 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_
|
|
|
|
; 7274 : 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_:
|
|
|
|
; 7275 : "bad file",
|
|
; 7276 : "file too short (mixed read count)");
|
|
; 7277 :
|
|
; 7278 : 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_
|
|
|
|
; 7279 : stbi_uc value[4];
|
|
; 7280 :
|
|
; 7281 : 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_
|
|
|
|
; 7282 : 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_:
|
|
|
|
; 7283 : else
|
|
; 7284 : 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_:
|
|
|
|
; 7285 : 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_
|
|
|
|
; 7286 : 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_:
|
|
|
|
; 7287 : "scanline overrun");
|
|
; 7288 :
|
|
; 7289 : 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_
|
|
|
|
; 7290 : return 0;
|
|
|
|
00594 33 c0 xor eax, eax
|
|
00596 e9 43 01 00 00 jmp $LN1@stbi__pic_
|
|
$LN46@stbi__pic_:
|
|
|
|
; 7291 :
|
|
; 7292 : 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_
|
|
|
|
; 7293 : 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_:
|
|
|
|
; 7294 : } else { // Raw
|
|
|
|
005f8 e9 b5 00 00 00 jmp $LN42@stbi__pic_
|
|
$LN41@stbi__pic_:
|
|
|
|
; 7295 : ++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
|
|
|
|
; 7296 : 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_
|
|
|
|
; 7297 : 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_:
|
|
|
|
; 7298 : "scanline overrun");
|
|
; 7299 :
|
|
; 7300 : 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_
|
|
|
|
; 7301 : 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_
|
|
|
|
; 7302 : dest))
|
|
; 7303 : 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_:
|
|
|
|
; 7304 : }
|
|
; 7305 : 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
|
|
|
|
; 7306 : }
|
|
|
|
006c8 e9 bb fd ff ff jmp $LN21@stbi__pic_
|
|
$LN22@stbi__pic_:
|
|
$LN11@stbi__pic_:
|
|
|
|
; 7307 : break;
|
|
; 7308 : }
|
|
; 7309 : }
|
|
; 7310 : }
|
|
|
|
006cd e9 45 fb ff ff jmp $LN8@stbi__pic_
|
|
$LN9@stbi__pic_:
|
|
|
|
; 7311 : }
|
|
|
|
006d2 e9 1d fb ff ff jmp $LN5@stbi__pic_
|
|
$LN6@stbi__pic_:
|
|
|
|
; 7312 :
|
|
; 7313 : return result;
|
|
|
|
006d7 48 8b 85 30 04
|
|
00 00 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi__pic_:
|
|
|
|
; 7314 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__copyval
|
|
_TEXT SEGMENT
|
|
mask$ = 4
|
|
i$ = 36
|
|
channel$ = 288
|
|
dest$ = 296
|
|
src$ = 304
|
|
stbi__copyval PROC ; COMDAT
|
|
|
|
; 7184 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00028 90 npad 1
|
|
|
|
; 7185 : int mask = 0x80, i;
|
|
|
|
00029 c7 45 04 80 00
|
|
00 00 mov DWORD PTR mask$[rbp], 128 ; 00000080H
|
|
|
|
; 7186 :
|
|
; 7187 : 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
|
|
|
|
; 7188 : 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
|
|
|
|
; 7189 : 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:
|
|
|
|
; 7190 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__readval
|
|
_TEXT SEGMENT
|
|
mask$ = 4
|
|
i$ = 36
|
|
tv75 = 248
|
|
s$ = 288
|
|
channel$ = 296
|
|
dest$ = 304
|
|
stbi__readval PROC ; COMDAT
|
|
|
|
; 7169 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00028 90 npad 1
|
|
|
|
; 7170 : int mask = 0x80, i;
|
|
|
|
00029 c7 45 04 80 00
|
|
00 00 mov DWORD PTR mask$[rbp], 128 ; 00000080H
|
|
|
|
; 7171 :
|
|
; 7172 : 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
|
|
|
|
; 7173 : 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
|
|
|
|
; 7174 : 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
|
|
|
|
; 7175 : 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:
|
|
|
|
; 7176 : 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:
|
|
|
|
; 7177 : }
|
|
; 7178 : }
|
|
|
|
000bb e9 79 ff ff ff jmp $LN2@stbi__read
|
|
$LN3@stbi__read:
|
|
|
|
; 7179 :
|
|
; 7180 : return dest;
|
|
|
|
000c0 48 8b 85 30 01
|
|
00 00 mov rax, QWORD PTR dest$[rbp]
|
|
$LN1@stbi__read:
|
|
|
|
; 7181 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pic_test_core
|
|
_TEXT SEGMENT
|
|
i$ = 4
|
|
s$ = 256
|
|
stbi__pic_test_core PROC ; COMDAT
|
|
|
|
; 7149 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 7150 : int i;
|
|
; 7151 :
|
|
; 7152 : 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_
|
|
|
|
; 7153 : return 0;
|
|
|
|
00037 33 c0 xor eax, eax
|
|
00039 eb 46 jmp SHORT $LN1@stbi__pic_
|
|
$LN5@stbi__pic_:
|
|
|
|
; 7154 :
|
|
; 7155 : 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_
|
|
|
|
; 7156 : 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_:
|
|
|
|
; 7157 :
|
|
; 7158 : 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_
|
|
|
|
; 7159 : return 0;
|
|
|
|
00078 33 c0 xor eax, eax
|
|
0007a eb 05 jmp SHORT $LN1@stbi__pic_
|
|
$LN6@stbi__pic_:
|
|
|
|
; 7160 :
|
|
; 7161 : return 1;
|
|
|
|
0007c b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__pic_:
|
|
|
|
; 7162 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pic_is4
|
|
_TEXT SEGMENT
|
|
i$ = 4
|
|
s$ = 256
|
|
str$ = 264
|
|
stbi__pic_is4 PROC ; COMDAT
|
|
|
|
; 7139 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 7140 : int i;
|
|
; 7141 : 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_
|
|
|
|
; 7142 : 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_
|
|
|
|
; 7143 : 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_:
|
|
|
|
; 7144 :
|
|
; 7145 : return 1;
|
|
|
|
00064 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__pic_:
|
|
|
|
; 7146 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 6881 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 6882 : int count, nleft, len;
|
|
; 6883 :
|
|
; 6884 : count = 0;
|
|
|
|
0002a c7 45 04 00 00
|
|
00 00 mov DWORD PTR count$[rbp], 0
|
|
$LN2@stbi__psd_:
|
|
|
|
; 6885 : 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_
|
|
|
|
; 6886 : 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
|
|
|
|
; 6887 : 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_:
|
|
|
|
; 6888 : // No-op.
|
|
; 6889 : } 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_
|
|
|
|
; 6890 : // Copy next len+1 bytes literally.
|
|
; 6891 : 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
|
|
|
|
; 6892 : 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_
|
|
|
|
; 6893 : return 0; // corrupt data
|
|
|
|
00084 33 c0 xor eax, eax
|
|
00086 e9 bb 00 00 00 jmp $LN1@stbi__psd_
|
|
$LN12@stbi__psd_:
|
|
|
|
; 6894 : 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_:
|
|
|
|
; 6895 : while (len) {
|
|
|
|
00098 83 7d 44 00 cmp DWORD PTR len$[rbp], 0
|
|
0009c 74 31 je SHORT $LN5@stbi__psd_
|
|
|
|
; 6896 : *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
|
|
|
|
; 6897 : 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
|
|
|
|
; 6898 : 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
|
|
|
|
; 6899 : }
|
|
|
|
000cd eb c9 jmp SHORT $LN4@stbi__psd_
|
|
$LN5@stbi__psd_:
|
|
|
|
; 6900 : } 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_
|
|
|
|
; 6901 : stbi_uc val;
|
|
; 6902 : // Next -len+1 bytes in the dest are replicated from next source byte.
|
|
; 6903 : // (Interpret len as a negative 8-bit int.)
|
|
; 6904 : 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
|
|
|
|
; 6905 : 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_
|
|
|
|
; 6906 : return 0; // corrupt data
|
|
|
|
000ed 33 c0 xor eax, eax
|
|
000ef eb 55 jmp SHORT $LN1@stbi__psd_
|
|
$LN14@stbi__psd_:
|
|
|
|
; 6907 : 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
|
|
|
|
; 6908 : 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_:
|
|
|
|
; 6909 : while (len) {
|
|
|
|
0010d 83 7d 44 00 cmp DWORD PTR len$[rbp], 0
|
|
00111 74 29 je SHORT $LN7@stbi__psd_
|
|
|
|
; 6910 : *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
|
|
|
|
; 6911 : 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
|
|
|
|
; 6912 : 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
|
|
|
|
; 6913 : }
|
|
|
|
0013a eb d1 jmp SHORT $LN6@stbi__psd_
|
|
$LN7@stbi__psd_:
|
|
$LN13@stbi__psd_:
|
|
$LN11@stbi__psd_:
|
|
$LN9@stbi__psd_:
|
|
|
|
; 6914 : }
|
|
; 6915 : }
|
|
|
|
0013c e9 f0 fe ff ff jmp $LN2@stbi__psd_
|
|
$LN3@stbi__psd_:
|
|
|
|
; 6916 :
|
|
; 6917 : return 1;
|
|
|
|
00141 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__psd_:
|
|
|
|
; 6918 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 6650 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 6651 : 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
|
|
|
|
; 6652 : stbi__uint16 fiveBitMask = 31;
|
|
|
|
00035 b8 1f 00 00 00 mov eax, 31
|
|
0003a 66 89 45 24 mov WORD PTR fiveBitMask$[rbp], ax
|
|
|
|
; 6653 : // we have 3 channels with 5bits each
|
|
; 6654 : 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
|
|
|
|
; 6655 : 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
|
|
|
|
; 6656 : 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
|
|
|
|
; 6657 : // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later
|
|
; 6658 : 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
|
|
|
|
; 6659 : 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
|
|
|
|
; 6660 : 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
|
|
|
|
; 6661 :
|
|
; 6662 : // some people claim that the most significant bit might be used for alpha
|
|
; 6663 : // (possibly if an alpha-bit is set in the "image descriptor byte")
|
|
; 6664 : // but that only made 16bit test images completely translucent..
|
|
; 6665 : // so let's treat all 15 and 16bit TGAs as RGB with no alpha.
|
|
; 6666 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 6516 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00027 90 npad 1
|
|
|
|
; 6517 : // only RGB or RGBA (incl. 16bit) or grey allowed
|
|
; 6518 : 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_
|
|
|
|
; 6519 : *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_:
|
|
|
|
; 6520 : 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_:
|
|
|
|
; 6521 : case 8:
|
|
; 6522 : return STBI_grey;
|
|
|
|
0007a b8 01 00 00 00 mov eax, 1
|
|
0007f eb 41 jmp SHORT $LN1@stbi__tga_
|
|
$LN6@stbi__tga_:
|
|
|
|
; 6523 : case 16:
|
|
; 6524 : 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_
|
|
|
|
; 6525 : 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_:
|
|
|
|
; 6526 : // fallthrough
|
|
; 6527 : case 15:
|
|
; 6528 : 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_
|
|
|
|
; 6529 : *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_:
|
|
|
|
; 6530 : 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_:
|
|
|
|
; 6531 : case 24: // fallthrough
|
|
; 6532 : case 32:
|
|
; 6533 : 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_:
|
|
|
|
; 6534 : default:
|
|
; 6535 : return 0;
|
|
|
|
000c0 33 c0 xor eax, eax
|
|
$LN1@stbi__tga_:
|
|
|
|
; 6536 : }
|
|
; 6537 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 6166 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 6167 : int hsz;
|
|
; 6168 : 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_:
|
|
|
|
; 6169 : 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_:
|
|
|
|
; 6170 : 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
|
|
|
|
; 6171 : 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
|
|
|
|
; 6172 : 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
|
|
|
|
; 6173 : 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
|
|
|
|
; 6174 : 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
|
|
|
|
; 6175 : 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
|
|
|
|
; 6176 : 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
|
|
|
|
; 6177 :
|
|
; 6178 : 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_
|
|
|
|
; 6179 : 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_:
|
|
|
|
; 6180 :
|
|
; 6181 : 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_
|
|
|
|
; 6182 : 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_:
|
|
|
|
; 6183 : if (hsz == 12) {
|
|
|
|
001b3 83 7d 04 0c cmp DWORD PTR hsz$[rbp], 12
|
|
001b7 75 2d jne SHORT $LN9@stbi__bmp_
|
|
|
|
; 6184 : 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
|
|
|
|
; 6185 : 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
|
|
|
|
; 6186 : } else {
|
|
|
|
001e4 eb 2b jmp SHORT $LN10@stbi__bmp_
|
|
$LN9@stbi__bmp_:
|
|
|
|
; 6187 : 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
|
|
|
|
; 6188 : 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_:
|
|
|
|
; 6189 : }
|
|
; 6190 : 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_
|
|
|
|
; 6191 : 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_:
|
|
|
|
; 6192 : 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
|
|
|
|
; 6193 : 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_
|
|
|
|
; 6194 : 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
|
|
|
|
; 6195 : 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_:
|
|
|
|
; 6196 : 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_:
|
|
|
|
; 6197 : if (compress >= 4)
|
|
|
|
002c4 83 7d 24 04 cmp DWORD PTR compress$1[rbp], 4
|
|
002c8 7c 34 jl SHORT $LN15@stbi__bmp_
|
|
|
|
; 6198 : 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_:
|
|
|
|
; 6199 : "BMP JPEG/PNG",
|
|
; 6200 : "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes
|
|
; 6201 : 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_
|
|
|
|
; 6202 : 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_:
|
|
|
|
; 6203 : "bad BMP"); // bitfields requires 16 or 32 bits/pixel
|
|
; 6204 : 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
|
|
|
|
; 6205 : 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
|
|
|
|
; 6206 : 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
|
|
|
|
; 6207 : 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
|
|
|
|
; 6208 : 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
|
|
|
|
; 6209 : 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_:
|
|
|
|
; 6210 : if (hsz == 56) {
|
|
|
|
003a1 83 7d 04 38 cmp DWORD PTR hsz$[rbp], 56 ; 00000038H
|
|
003a5 75 34 jne SHORT $LN20@stbi__bmp_
|
|
|
|
; 6211 : 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
|
|
|
|
; 6212 : 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
|
|
|
|
; 6213 : 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
|
|
|
|
; 6214 : 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_:
|
|
|
|
; 6215 : }
|
|
; 6216 : 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_:
|
|
|
|
; 6217 : if (compress == 0) {
|
|
|
|
003f7 83 7d 24 00 cmp DWORD PTR compress$1[rbp], 0
|
|
003fb 75 15 jne SHORT $LN23@stbi__bmp_
|
|
|
|
; 6218 : 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_:
|
|
|
|
; 6219 : } 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_
|
|
|
|
; 6220 : 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
|
|
|
|
; 6221 : 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
|
|
|
|
; 6222 : 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
|
|
|
|
; 6223 : 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
|
|
|
|
; 6224 : // not documented, but generated by photoshop and handled by mspaint
|
|
; 6225 : 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_
|
|
|
|
; 6226 : // ?!?!?
|
|
; 6227 : 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_:
|
|
|
|
; 6228 : }
|
|
; 6229 : } else
|
|
|
|
004d5 eb 34 jmp SHORT $LN26@stbi__bmp_
|
|
$LN25@stbi__bmp_:
|
|
|
|
; 6230 : 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_:
|
|
|
|
; 6231 : }
|
|
; 6232 : } else {
|
|
|
|
0050b e9 1b 01 00 00 jmp $LN18@stbi__bmp_
|
|
$LN17@stbi__bmp_:
|
|
|
|
; 6233 : // V4/V5 header
|
|
; 6234 : int i;
|
|
; 6235 : 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_
|
|
|
|
; 6236 : 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_:
|
|
|
|
; 6237 : 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
|
|
|
|
; 6238 : 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
|
|
|
|
; 6239 : 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
|
|
|
|
; 6240 : 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
|
|
|
|
; 6241 : if (compress !=
|
|
|
|
005a8 83 7d 24 03 cmp DWORD PTR compress$1[rbp], 3
|
|
005ac 74 10 je SHORT $LN29@stbi__bmp_
|
|
|
|
; 6242 : 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs
|
|
; 6243 : 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_:
|
|
|
|
; 6244 : 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
|
|
|
|
; 6245 : 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_
|
|
|
|
; 6246 : 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_:
|
|
|
|
; 6247 : if (hsz == 124) {
|
|
|
|
005f1 83 7d 04 7c cmp DWORD PTR hsz$[rbp], 124 ; 0000007cH
|
|
005f5 75 34 jne SHORT $LN30@stbi__bmp_
|
|
|
|
; 6248 : 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
|
|
|
|
; 6249 : 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
|
|
|
|
; 6250 : 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
|
|
|
|
; 6251 : 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_:
|
|
|
|
; 6252 : }
|
|
; 6253 : }
|
|
; 6254 : }
|
|
; 6255 : return (void *)1;
|
|
|
|
0062b b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__bmp_:
|
|
|
|
; 6256 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__bmp_set_mask_defaults
|
|
_TEXT SEGMENT
|
|
info$ = 224
|
|
compress$ = 232
|
|
stbi__bmp_set_mask_defaults PROC ; COMDAT
|
|
|
|
; 6139 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 6140 : // BI_BITFIELDS specifies masks explicitly, don't override
|
|
; 6141 : 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_
|
|
|
|
; 6142 : return 1;
|
|
|
|
0002d b8 01 00 00 00 mov eax, 1
|
|
00032 e9 dd 00 00 00 jmp $LN1@stbi__bmp_
|
|
$LN2@stbi__bmp_:
|
|
|
|
; 6143 :
|
|
; 6144 : 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_
|
|
|
|
; 6145 : 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_
|
|
|
|
; 6146 : 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
|
|
|
|
; 6147 : 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
|
|
|
|
; 6148 : 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_:
|
|
|
|
; 6149 : } 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_
|
|
|
|
; 6150 : 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
|
|
|
|
; 6151 : 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
|
|
|
|
; 6152 : 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
|
|
|
|
; 6153 : 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
|
|
|
|
; 6154 : 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
|
|
|
|
; 6155 : 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0
|
|
; 6156 : } else {
|
|
|
|
000d1 eb 38 jmp SHORT $LN7@stbi__bmp_
|
|
$LN6@stbi__bmp_:
|
|
|
|
; 6157 : // otherwise, use defaults, which is all-0
|
|
; 6158 : 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_:
|
|
|
|
; 6159 : }
|
|
; 6160 : return 1;
|
|
|
|
0010b b8 01 00 00 00 mov eax, 1
|
|
00110 eb 02 jmp SHORT $LN1@stbi__bmp_
|
|
$LN3@stbi__bmp_:
|
|
|
|
; 6161 : }
|
|
; 6162 : return 0; // error
|
|
|
|
00112 33 c0 xor eax, eax
|
|
$LN1@stbi__bmp_:
|
|
|
|
; 6163 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__shiftsigned
|
|
_TEXT SEGMENT
|
|
v$ = 224
|
|
shift$ = 232
|
|
bits$ = 240
|
|
stbi__shiftsigned PROC ; COMDAT
|
|
|
|
; 6107 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00027 90 npad 1
|
|
|
|
; 6108 : static unsigned int mul_table[9] = {
|
|
; 6109 : 0,
|
|
; 6110 : 0xff /*0b11111111*/,
|
|
; 6111 : 0x55 /*0b01010101*/,
|
|
; 6112 : 0x49 /*0b01001001*/,
|
|
; 6113 : 0x11 /*0b00010001*/,
|
|
; 6114 : 0x21 /*0b00100001*/,
|
|
; 6115 : 0x41 /*0b01000001*/,
|
|
; 6116 : 0x81 /*0b10000001*/,
|
|
; 6117 : 0x01 /*0b00000001*/,
|
|
; 6118 : };
|
|
; 6119 : static unsigned int shift_table[9] = {
|
|
; 6120 : 0, 0, 0, 1, 0, 2, 4, 6, 0,
|
|
; 6121 : };
|
|
; 6122 : 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
|
|
|
|
; 6123 : 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:
|
|
|
|
; 6124 : else
|
|
; 6125 : 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:
|
|
|
|
; 6126 : 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 ee 17 00
|
|
00 mov r8d, 6126 ; 000017eeH
|
|
00075 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 6127 : 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
|
|
|
|
; 6128 : 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 f0 17 00
|
|
00 mov r8d, 6128 ; 000017f0H
|
|
000bf 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 6129 : 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
|
|
|
|
; 6130 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__bitcount
|
|
_TEXT SEGMENT
|
|
a$ = 224
|
|
stbi__bitcount PROC ; COMDAT
|
|
|
|
; 6094 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 6095 : 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
|
|
|
|
; 6096 : 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
|
|
|
|
; 6097 : 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
|
|
|
|
; 6098 : 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
|
|
|
|
; 6099 : 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
|
|
|
|
; 6100 : 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
|
|
|
|
; 6101 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__high_bit
|
|
_TEXT SEGMENT
|
|
n$ = 4
|
|
z$ = 256
|
|
stbi__high_bit PROC ; COMDAT
|
|
|
|
; 6067 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 6068 : int n = 0;
|
|
|
|
0001f c7 45 04 00 00
|
|
00 00 mov DWORD PTR n$[rbp], 0
|
|
|
|
; 6069 : 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
|
|
|
|
; 6070 : return -1;
|
|
|
|
0002f b8 ff ff ff ff mov eax, -1
|
|
00034 e9 9e 00 00 00 jmp $LN1@stbi__high
|
|
$LN2@stbi__high:
|
|
|
|
; 6071 : 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
|
|
|
|
; 6072 : 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
|
|
|
|
; 6073 : 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:
|
|
|
|
; 6074 : }
|
|
; 6075 : 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
|
|
|
|
; 6076 : 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
|
|
|
|
; 6077 : 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:
|
|
|
|
; 6078 : }
|
|
; 6079 : 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
|
|
|
|
; 6080 : 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
|
|
|
|
; 6081 : 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:
|
|
|
|
; 6082 : }
|
|
; 6083 : 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
|
|
|
|
; 6084 : 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
|
|
|
|
; 6085 : 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:
|
|
|
|
; 6086 : }
|
|
; 6087 : 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
|
|
|
|
; 6088 : 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:
|
|
|
|
; 6089 : }
|
|
; 6090 : return n;
|
|
|
|
000d4 8b 45 04 mov eax, DWORD PTR n$[rbp]
|
|
$LN1@stbi__high:
|
|
|
|
; 6091 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__bmp_test_raw
|
|
_TEXT SEGMENT
|
|
r$ = 4
|
|
sz$ = 36
|
|
tv83 = 244
|
|
s$ = 288
|
|
stbi__bmp_test_raw PROC ; COMDAT
|
|
|
|
; 6042 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 6043 : int r;
|
|
; 6044 : int sz;
|
|
; 6045 : 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_
|
|
|
|
; 6046 : return 0;
|
|
|
|
00034 33 c0 xor eax, eax
|
|
00036 e9 9e 00 00 00 jmp $LN1@stbi__bmp_
|
|
$LN2@stbi__bmp_:
|
|
|
|
; 6047 : 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_
|
|
|
|
; 6048 : return 0;
|
|
|
|
0004f 33 c0 xor eax, eax
|
|
00051 e9 83 00 00 00 jmp $LN1@stbi__bmp_
|
|
$LN3@stbi__bmp_:
|
|
|
|
; 6049 : 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
|
|
|
|
; 6050 : 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
|
|
|
|
; 6051 : 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
|
|
|
|
; 6052 : 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
|
|
|
|
; 6053 : 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
|
|
|
|
; 6054 : 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
|
|
|
|
; 6055 : return r;
|
|
|
|
000d6 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
$LN1@stbi__bmp_:
|
|
|
|
; 6056 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__png_info_raw
|
|
_TEXT SEGMENT
|
|
p$ = 224
|
|
x$ = 232
|
|
y$ = 240
|
|
comp$ = 248
|
|
stbi__png_info_raw PROC ; COMDAT
|
|
|
|
; 6003 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 6004 : 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_
|
|
|
|
; 6005 : 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
|
|
|
|
; 6006 : return 0;
|
|
|
|
00057 33 c0 xor eax, eax
|
|
00059 eb 64 jmp SHORT $LN1@stbi__png_
|
|
$LN2@stbi__png_:
|
|
|
|
; 6007 : }
|
|
; 6008 : 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_
|
|
|
|
; 6009 : *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_:
|
|
|
|
; 6010 : 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_
|
|
|
|
; 6011 : *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_:
|
|
|
|
; 6012 : 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_
|
|
|
|
; 6013 : *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_:
|
|
|
|
; 6014 : return 1;
|
|
|
|
000ba b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__png_:
|
|
|
|
; 6015 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 5944 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 5945 : void *result = NULL;
|
|
|
|
0002f 48 c7 45 08 00
|
|
00 00 00 mov QWORD PTR result$[rbp], 0
|
|
|
|
; 5946 : 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:
|
|
|
|
; 5947 : 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:
|
|
|
|
; 5948 : 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
|
|
|
|
; 5949 : 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
|
|
|
|
; 5950 : 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:
|
|
|
|
; 5951 : 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
|
|
|
|
; 5952 : 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:
|
|
|
|
; 5953 : else
|
|
; 5954 : 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:
|
|
|
|
; 5955 : "PNG not supported: unsupported color depth");
|
|
; 5956 : 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
|
|
|
|
; 5957 : 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
|
|
|
|
; 5958 : 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
|
|
|
|
; 5959 : 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
|
|
|
|
; 5960 : 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:
|
|
|
|
; 5961 : p->s->img_out_n, req_comp,
|
|
; 5962 : p->s->img_x, p->s->img_y);
|
|
; 5963 : else
|
|
; 5964 : 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:
|
|
|
|
; 5965 : p->s->img_out_n, req_comp,
|
|
; 5966 : p->s->img_x, p->s->img_y);
|
|
; 5967 : 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
|
|
|
|
; 5968 : if (result == NULL)
|
|
|
|
001e9 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0
|
|
001ee 75 09 jne SHORT $LN12@stbi__do_p
|
|
|
|
; 5969 : 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:
|
|
|
|
; 5970 : }
|
|
; 5971 : *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
|
|
|
|
; 5972 : *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
|
|
|
|
; 5973 : 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
|
|
|
|
; 5974 : *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:
|
|
|
|
; 5975 : }
|
|
; 5976 : 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
|
|
|
|
; 5977 : 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
|
|
|
|
; 5978 : 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
|
|
|
|
; 5979 : 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
|
|
|
|
; 5980 : 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
|
|
|
|
; 5981 : 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
|
|
|
|
; 5982 :
|
|
; 5983 : return result;
|
|
|
|
002a7 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi__do_p:
|
|
|
|
; 5984 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
tv347 = 2484
|
|
tv396 = 2484
|
|
tv463 = 2484
|
|
tv197 = 2488
|
|
__$ArrayPad$ = 2496
|
|
z$ = 2544
|
|
scan$ = 2552
|
|
req_comp$ = 2560
|
|
stbi__parse_png_file PROC ; COMDAT
|
|
|
|
; 5690 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00052 90 npad 1
|
|
|
|
; 5691 : stbi_uc palette[1024], pal_img_n = 0;
|
|
|
|
00053 c6 85 24 04 00
|
|
00 00 mov BYTE PTR pal_img_n$[rbp], 0
|
|
|
|
; 5692 : 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
|
|
|
|
; 5693 : stbi__uint16 tc16[3];
|
|
; 5694 : 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
|
|
|
|
; 5695 : 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
|
|
|
|
; 5696 : 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
|
|
|
|
; 5697 :
|
|
; 5698 : 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
|
|
|
|
; 5699 : 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
|
|
|
|
; 5700 : 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
|
|
|
|
; 5701 :
|
|
; 5702 : 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
|
|
|
|
; 5703 : return 0;
|
|
|
|
00108 33 c0 xor eax, eax
|
|
0010a e9 aa 0d 00 00 jmp $LN1@stbi__pars
|
|
$LN21@stbi__pars:
|
|
|
|
; 5704 :
|
|
; 5705 : 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
|
|
|
|
; 5706 : return 1;
|
|
|
|
00118 b8 01 00 00 00 mov eax, 1
|
|
0011d e9 97 0d 00 00 jmp $LN1@stbi__pars
|
|
$LN22@stbi__pars:
|
|
$LN2@stbi__pars:
|
|
|
|
; 5707 :
|
|
; 5708 : for (;;) {
|
|
; 5709 : 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
|
|
|
|
; 5710 : 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 f2 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 b9 08 00
|
|
00 je $LN72@stbi__pars
|
|
00185 e9 4e 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 29 0c 00 00 jmp $LN93@stbi__pars
|
|
$LN23@stbi__pars:
|
|
|
|
; 5711 : case STBI__PNG_TYPE('C', 'g', 'B', 'I'):
|
|
; 5712 : is_iphone = 1;
|
|
|
|
001af c7 85 a4 05 00
|
|
00 01 00 00 00 mov DWORD PTR is_iphone$[rbp], 1
|
|
|
|
; 5713 : 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
|
|
|
|
; 5714 : break;
|
|
|
|
001cc e9 d6 0c 00 00 jmp $LN5@stbi__pars
|
|
$LN24@stbi__pars:
|
|
|
|
; 5715 : case STBI__PNG_TYPE('I', 'H', 'D', 'R'): {
|
|
; 5716 : int comp, filter;
|
|
; 5717 : if (!first)
|
|
|
|
001d1 83 bd 24 05 00
|
|
00 00 cmp DWORD PTR first$[rbp], 0
|
|
001d8 75 11 jne SHORT $LN25@stbi__pars
|
|
|
|
; 5718 : 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 ce 0c 00 00 jmp $LN1@stbi__pars
|
|
$LN25@stbi__pars:
|
|
|
|
; 5719 : first = 0;
|
|
|
|
001eb c7 85 24 05 00
|
|
00 00 00 00 00 mov DWORD PTR first$[rbp], 0
|
|
|
|
; 5720 : 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
|
|
|
|
; 5721 : 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 aa 0c 00 00 jmp $LN1@stbi__pars
|
|
$LN26@stbi__pars:
|
|
|
|
; 5722 : 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
|
|
|
|
; 5723 : 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
|
|
|
|
; 5724 : 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
|
|
|
|
; 5725 : 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 5e 0c 00 00 jmp $LN1@stbi__pars
|
|
$LN27@stbi__pars:
|
|
|
|
; 5726 : 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
|
|
|
|
; 5727 : 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 3e 0c 00 00 jmp $LN1@stbi__pars
|
|
$LN28@stbi__pars:
|
|
|
|
; 5728 : 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
|
|
|
|
; 5729 : 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
|
|
|
|
; 5730 : z->depth != 16)
|
|
; 5731 : 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 d3 0b 00 00 jmp $LN1@stbi__pars
|
|
$LN29@stbi__pars:
|
|
|
|
; 5732 : "PNG not supported: 1/2/4/8/16-bit only");
|
|
; 5733 : 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
|
|
|
|
; 5734 : 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
|
|
|
|
; 5735 : 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 a4 0b 00 00 jmp $LN1@stbi__pars
|
|
$LN30@stbi__pars:
|
|
|
|
; 5736 : 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
|
|
|
|
; 5737 : 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 7d 0b 00 00 jmp $LN1@stbi__pars
|
|
$LN31@stbi__pars:
|
|
|
|
; 5738 : 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
|
|
|
|
; 5739 : 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:
|
|
|
|
; 5740 : 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
|
|
|
|
; 5741 : 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 4d 0b 00 00 jmp $LN1@stbi__pars
|
|
$LN34@stbi__pars:
|
|
$LN33@stbi__pars:
|
|
|
|
; 5742 : 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
|
|
|
|
; 5743 : 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
|
|
|
|
; 5744 : 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 1e 0b 00 00 jmp $LN1@stbi__pars
|
|
$LN35@stbi__pars:
|
|
|
|
; 5745 : 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
|
|
|
|
; 5746 : 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
|
|
|
|
; 5747 : 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 ef 0a 00 00 jmp $LN1@stbi__pars
|
|
$LN36@stbi__pars:
|
|
|
|
; 5748 : 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
|
|
|
|
; 5749 : 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
|
|
|
|
; 5750 : 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 c0 0a 00 00 jmp $LN1@stbi__pars
|
|
$LN37@stbi__pars:
|
|
|
|
; 5751 : 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:
|
|
|
|
; 5752 : 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 96 0a 00 00 jmp $LN1@stbi__pars
|
|
$LN38@stbi__pars:
|
|
|
|
; 5753 : 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
|
|
|
|
; 5754 : 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
|
|
|
|
; 5755 : 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
|
|
|
|
; 5756 : 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 ee 09 00 00 jmp $LN1@stbi__pars
|
|
$LN42@stbi__pars:
|
|
|
|
; 5757 : } else {
|
|
|
|
004cb eb 44 jmp SHORT $LN41@stbi__pars
|
|
$LN40@stbi__pars:
|
|
|
|
; 5758 : // if paletted, then pal_n is our final components, and
|
|
; 5759 : // img_n is # components to decompress/filter.
|
|
; 5760 : 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
|
|
|
|
; 5761 : 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
|
|
|
|
; 5762 : 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 a8 09 00 00 jmp $LN1@stbi__pars
|
|
$LN43@stbi__pars:
|
|
$LN41@stbi__pars:
|
|
|
|
; 5763 : }
|
|
; 5764 : // even with SCAN_header, have to scan to see if we have a tRNS
|
|
; 5765 : break;
|
|
|
|
00511 e9 91 09 00 00 jmp $LN5@stbi__pars
|
|
$LN44@stbi__pars:
|
|
|
|
; 5766 : }
|
|
; 5767 :
|
|
; 5768 : case STBI__PNG_TYPE('P', 'L', 'T', 'E'): {
|
|
; 5769 : if (first)
|
|
|
|
00516 83 bd 24 05 00
|
|
00 00 cmp DWORD PTR first$[rbp], 0
|
|
0051d 74 11 je SHORT $LN45@stbi__pars
|
|
|
|
; 5770 : 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 89 09 00 00 jmp $LN1@stbi__pars
|
|
$LN45@stbi__pars:
|
|
|
|
; 5771 : 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
|
|
|
|
; 5772 : 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 6c 09 00 00 jmp $LN1@stbi__pars
|
|
$LN46@stbi__pars:
|
|
|
|
; 5773 : 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
|
|
|
|
; 5774 : 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
|
|
|
|
; 5775 : 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 37 09 00 00 jmp $LN1@stbi__pars
|
|
$LN47@stbi__pars:
|
|
|
|
; 5776 : 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
|
|
|
|
; 5777 : 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
|
|
|
|
; 5778 : 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
|
|
|
|
; 5779 : 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
|
|
|
|
; 5780 : 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
|
|
|
|
; 5781 : }
|
|
|
|
00617 e9 72 ff ff ff jmp $LN7@stbi__pars
|
|
$LN8@stbi__pars:
|
|
|
|
; 5782 : break;
|
|
|
|
0061c e9 86 08 00 00 jmp $LN5@stbi__pars
|
|
$LN48@stbi__pars:
|
|
|
|
; 5783 : }
|
|
; 5784 :
|
|
; 5785 : case STBI__PNG_TYPE('t', 'R', 'N', 'S'): {
|
|
; 5786 : if (first)
|
|
|
|
00621 83 bd 24 05 00
|
|
00 00 cmp DWORD PTR first$[rbp], 0
|
|
00628 74 11 je SHORT $LN49@stbi__pars
|
|
|
|
; 5787 : 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 7e 08 00 00 jmp $LN1@stbi__pars
|
|
$LN49@stbi__pars:
|
|
|
|
; 5788 : 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
|
|
|
|
; 5789 : 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 5f 08 00 00 jmp $LN1@stbi__pars
|
|
$LN50@stbi__pars:
|
|
|
|
; 5790 : 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
|
|
|
|
; 5791 : 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
|
|
|
|
; 5792 : 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
|
|
|
|
; 5793 : return 1;
|
|
|
|
00680 b8 01 00 00 00 mov eax, 1
|
|
00685 e9 2f 08 00 00 jmp $LN1@stbi__pars
|
|
$LN53@stbi__pars:
|
|
|
|
; 5794 : }
|
|
; 5795 : 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
|
|
|
|
; 5796 : 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 15 08 00 00 jmp $LN1@stbi__pars
|
|
$LN54@stbi__pars:
|
|
|
|
; 5797 : 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
|
|
|
|
; 5798 : 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 f6 07 00 00 jmp $LN1@stbi__pars
|
|
$LN55@stbi__pars:
|
|
|
|
; 5799 : pal_img_n = 4;
|
|
|
|
006c3 c6 85 24 04 00
|
|
00 04 mov BYTE PTR pal_img_n$[rbp], 4
|
|
|
|
; 5800 : 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
|
|
|
|
; 5801 : 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:
|
|
|
|
; 5802 : } else {
|
|
|
|
00713 e9 4a 01 00 00 jmp $LN52@stbi__pars
|
|
$LN51@stbi__pars:
|
|
|
|
; 5803 : 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
|
|
|
|
; 5804 : 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 7f 07 00 00 jmp $LN1@stbi__pars
|
|
$LN56@stbi__pars:
|
|
|
|
; 5805 : 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
|
|
|
|
; 5806 : 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 5a 07 00 00 jmp $LN1@stbi__pars
|
|
$LN57@stbi__pars:
|
|
|
|
; 5807 : has_trans = 1;
|
|
|
|
0075f c6 85 44 04 00
|
|
00 01 mov BYTE PTR has_trans$[rbp], 1
|
|
|
|
; 5808 : // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now.
|
|
; 5809 : 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
|
|
|
|
; 5810 : ++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
|
|
|
|
; 5811 : return 1;
|
|
|
|
00785 b8 01 00 00 00 mov eax, 1
|
|
0078a e9 2a 07 00 00 jmp $LN1@stbi__pars
|
|
$LN58@stbi__pars:
|
|
|
|
; 5812 : }
|
|
; 5813 : 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 54 jne SHORT $LN59@stbi__pars
|
|
|
|
; 5814 : for (k = 0; k < s->img_n && k < 3;
|
|
|
|
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:
|
|
|
|
; 5815 : ++k) // extra loop test to suppress false GCC warning
|
|
|
|
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:
|
|
|
|
; 5814 : for (k = 0; k < s->img_n && k < 3;
|
|
|
|
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 26 jge SHORT $LN14@stbi__pars
|
|
007c8 83 bd 44 05 00
|
|
00 03 cmp DWORD PTR k$[rbp], 3
|
|
007cf 7d 1d jge SHORT $LN14@stbi__pars
|
|
|
|
; 5816 : tc16[k] = (stbi__uint16)stbi__get16be(
|
|
|
|
007d1 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
007d8 e8 00 00 00 00 call stbi__get16be
|
|
007dd 48 63 8d 44 05
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
007e4 66 89 84 4d 84
|
|
04 00 00 mov WORD PTR tc16$[rbp+rcx*2], ax
|
|
007ec eb ba jmp SHORT $LN13@stbi__pars
|
|
$LN14@stbi__pars:
|
|
|
|
; 5817 : s); // copy the values as-is
|
|
; 5818 : } else {
|
|
|
|
007ee eb 72 jmp SHORT $LN60@stbi__pars
|
|
$LN59@stbi__pars:
|
|
|
|
; 5819 : for (k = 0; k < s->img_n && k < 3; ++k)
|
|
|
|
007f0 c7 85 44 05 00
|
|
00 00 00 00 00 mov DWORD PTR k$[rbp], 0
|
|
007fa eb 0e jmp SHORT $LN18@stbi__pars
|
|
$LN16@stbi__pars:
|
|
007fc 8b 85 44 05 00
|
|
00 mov eax, DWORD PTR k$[rbp]
|
|
00802 ff c0 inc eax
|
|
00804 89 85 44 05 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
$LN18@stbi__pars:
|
|
0080a 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00811 8b 40 08 mov eax, DWORD PTR [rax+8]
|
|
00814 39 85 44 05 00
|
|
00 cmp DWORD PTR k$[rbp], eax
|
|
0081a 7d 46 jge SHORT $LN17@stbi__pars
|
|
0081c 83 bd 44 05 00
|
|
00 03 cmp DWORD PTR k$[rbp], 3
|
|
00823 7d 3d jge SHORT $LN17@stbi__pars
|
|
|
|
; 5820 : tc[k] = (stbi_uc)(stbi__get16be(s) & 255) *
|
|
|
|
00825 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
0082c e8 00 00 00 00 call stbi__get16be
|
|
00831 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
00836 0f b6 c0 movzx eax, al
|
|
00839 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
00840 48 63 49 20 movsxd rcx, DWORD PTR [rcx+32]
|
|
00844 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:stbi__depth_scale_table
|
|
0084b 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
0084f 0f af c1 imul eax, ecx
|
|
00852 48 63 8d 44 05
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
00859 88 84 0d 64 04
|
|
00 00 mov BYTE PTR tc$[rbp+rcx], al
|
|
00860 eb 9a jmp SHORT $LN16@stbi__pars
|
|
$LN17@stbi__pars:
|
|
$LN60@stbi__pars:
|
|
$LN52@stbi__pars:
|
|
|
|
; 5821 : stbi__depth_scale_table
|
|
; 5822 : [z->depth]; // non 8-bit images will be larger
|
|
; 5823 : }
|
|
; 5824 : }
|
|
; 5825 : break;
|
|
|
|
00862 e9 40 06 00 00 jmp $LN5@stbi__pars
|
|
$LN61@stbi__pars:
|
|
|
|
; 5826 : }
|
|
; 5827 :
|
|
; 5828 : case STBI__PNG_TYPE('I', 'D', 'A', 'T'): {
|
|
; 5829 : if (first)
|
|
|
|
00867 83 bd 24 05 00
|
|
00 00 cmp DWORD PTR first$[rbp], 0
|
|
0086e 74 11 je SHORT $LN62@stbi__pars
|
|
|
|
; 5830 : return stbi__err("first not IHDR", "Corrupt PNG");
|
|
|
|
00870 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@
|
|
00877 e8 00 00 00 00 call stbi__err
|
|
0087c e9 38 06 00 00 jmp $LN1@stbi__pars
|
|
$LN62@stbi__pars:
|
|
|
|
; 5831 : if (pal_img_n && !pal_len)
|
|
|
|
00881 0f b6 85 24 04
|
|
00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
|
|
00888 85 c0 test eax, eax
|
|
0088a 74 1a je SHORT $LN63@stbi__pars
|
|
0088c 83 bd 04 05 00
|
|
00 00 cmp DWORD PTR pal_len$[rbp], 0
|
|
00893 75 11 jne SHORT $LN63@stbi__pars
|
|
|
|
; 5832 : return stbi__err("no PLTE", "Corrupt PNG");
|
|
|
|
00895 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_07CKIELOEH@no?5PLTE@
|
|
0089c e8 00 00 00 00 call stbi__err
|
|
008a1 e9 13 06 00 00 jmp $LN1@stbi__pars
|
|
$LN63@stbi__pars:
|
|
|
|
; 5833 : if (scan == STBI__SCAN_header) {
|
|
|
|
008a6 83 bd f8 09 00
|
|
00 02 cmp DWORD PTR scan$[rbp], 2
|
|
008ad 75 26 jne SHORT $LN64@stbi__pars
|
|
|
|
; 5834 : // header scan definitely stops at first IDAT
|
|
; 5835 : if (pal_img_n)
|
|
|
|
008af 0f b6 85 24 04
|
|
00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
|
|
008b6 85 c0 test eax, eax
|
|
008b8 74 11 je SHORT $LN65@stbi__pars
|
|
|
|
; 5836 : s->img_n = pal_img_n;
|
|
|
|
008ba 0f b6 85 24 04
|
|
00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
|
|
008c1 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
008c8 89 41 08 mov DWORD PTR [rcx+8], eax
|
|
$LN65@stbi__pars:
|
|
|
|
; 5837 : return 1;
|
|
|
|
008cb b8 01 00 00 00 mov eax, 1
|
|
008d0 e9 e4 05 00 00 jmp $LN1@stbi__pars
|
|
$LN64@stbi__pars:
|
|
|
|
; 5838 : }
|
|
; 5839 : if (c.length > (1u << 30))
|
|
|
|
008d5 81 bd e8 05 00
|
|
00 00 00 00 40 cmp DWORD PTR c$8[rbp], 1073741824 ; 40000000H
|
|
008df 76 11 jbe SHORT $LN66@stbi__pars
|
|
|
|
; 5840 : return stbi__err("IDAT size limit",
|
|
|
|
008e1 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BA@PLHGLONG@IDAT?5size?5limit@
|
|
008e8 e8 00 00 00 00 call stbi__err
|
|
008ed e9 c7 05 00 00 jmp $LN1@stbi__pars
|
|
$LN66@stbi__pars:
|
|
|
|
; 5841 : "IDAT section larger than 2^30 bytes");
|
|
; 5842 : if ((int)(ioff + c.length) < (int)ioff)
|
|
|
|
008f2 8b 85 e8 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp]
|
|
008f8 8b 8d a4 04 00
|
|
00 mov ecx, DWORD PTR ioff$[rbp]
|
|
008fe 03 c8 add ecx, eax
|
|
00900 8b c1 mov eax, ecx
|
|
00902 3b 85 a4 04 00
|
|
00 cmp eax, DWORD PTR ioff$[rbp]
|
|
00908 7d 07 jge SHORT $LN67@stbi__pars
|
|
|
|
; 5843 : return 0;
|
|
|
|
0090a 33 c0 xor eax, eax
|
|
0090c e9 a8 05 00 00 jmp $LN1@stbi__pars
|
|
$LN67@stbi__pars:
|
|
|
|
; 5844 : if (ioff + c.length > idata_limit) {
|
|
|
|
00911 8b 85 e8 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp]
|
|
00917 8b 8d a4 04 00
|
|
00 mov ecx, DWORD PTR ioff$[rbp]
|
|
0091d 03 c8 add ecx, eax
|
|
0091f 8b c1 mov eax, ecx
|
|
00921 3b 85 c4 04 00
|
|
00 cmp eax, DWORD PTR idata_limit$[rbp]
|
|
00927 0f 86 ba 00 00
|
|
00 jbe $LN68@stbi__pars
|
|
|
|
; 5845 : stbi__uint32 idata_limit_old = idata_limit;
|
|
|
|
0092d 8b 85 c4 04 00
|
|
00 mov eax, DWORD PTR idata_limit$[rbp]
|
|
00933 89 85 44 06 00
|
|
00 mov DWORD PTR idata_limit_old$11[rbp], eax
|
|
|
|
; 5846 : stbi_uc *p;
|
|
; 5847 : if (idata_limit == 0)
|
|
|
|
00939 83 bd c4 04 00
|
|
00 00 cmp DWORD PTR idata_limit$[rbp], 0
|
|
00940 75 30 jne SHORT $LN69@stbi__pars
|
|
|
|
; 5848 : idata_limit = c.length > 4096 ? c.length : 4096;
|
|
|
|
00942 81 bd e8 05 00
|
|
00 00 10 00 00 cmp DWORD PTR c$8[rbp], 4096 ; 00001000H
|
|
0094c 76 0e jbe SHORT $LN101@stbi__pars
|
|
0094e 8b 85 e8 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp]
|
|
00954 89 85 b4 09 00
|
|
00 mov DWORD PTR tv347[rbp], eax
|
|
0095a eb 0a jmp SHORT $LN102@stbi__pars
|
|
$LN101@stbi__pars:
|
|
0095c c7 85 b4 09 00
|
|
00 00 10 00 00 mov DWORD PTR tv347[rbp], 4096 ; 00001000H
|
|
$LN102@stbi__pars:
|
|
00966 8b 85 b4 09 00
|
|
00 mov eax, DWORD PTR tv347[rbp]
|
|
0096c 89 85 c4 04 00
|
|
00 mov DWORD PTR idata_limit$[rbp], eax
|
|
$LN69@stbi__pars:
|
|
$LN19@stbi__pars:
|
|
|
|
; 5849 : while (ioff + c.length > idata_limit)
|
|
|
|
00972 8b 85 e8 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp]
|
|
00978 8b 8d a4 04 00
|
|
00 mov ecx, DWORD PTR ioff$[rbp]
|
|
0097e 03 c8 add ecx, eax
|
|
00980 8b c1 mov eax, ecx
|
|
00982 3b 85 c4 04 00
|
|
00 cmp eax, DWORD PTR idata_limit$[rbp]
|
|
00988 76 10 jbe SHORT $LN20@stbi__pars
|
|
|
|
; 5850 : idata_limit *= 2;
|
|
|
|
0098a 8b 85 c4 04 00
|
|
00 mov eax, DWORD PTR idata_limit$[rbp]
|
|
00990 d1 e0 shl eax, 1
|
|
00992 89 85 c4 04 00
|
|
00 mov DWORD PTR idata_limit$[rbp], eax
|
|
00998 eb d8 jmp SHORT $LN19@stbi__pars
|
|
$LN20@stbi__pars:
|
|
|
|
; 5851 : STBI_NOTUSED(idata_limit_old);
|
|
; 5852 : p = (stbi_uc *)STBI_REALLOC_SIZED(z->idata, idata_limit_old,
|
|
|
|
0099a 8b 85 c4 04 00
|
|
00 mov eax, DWORD PTR idata_limit$[rbp]
|
|
009a0 8b d0 mov edx, eax
|
|
009a2 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
009a9 48 8b 48 08 mov rcx, QWORD PTR [rax+8]
|
|
009ad ff 15 00 00 00
|
|
00 call QWORD PTR __imp_realloc
|
|
009b3 48 89 85 68 06
|
|
00 00 mov QWORD PTR p$12[rbp], rax
|
|
|
|
; 5853 : idata_limit);
|
|
; 5854 : if (p == NULL)
|
|
|
|
009ba 48 83 bd 68 06
|
|
00 00 00 cmp QWORD PTR p$12[rbp], 0
|
|
009c2 75 11 jne SHORT $LN70@stbi__pars
|
|
|
|
; 5855 : return stbi__err("outofmem", "Out of memory");
|
|
|
|
009c4 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@
|
|
009cb e8 00 00 00 00 call stbi__err
|
|
009d0 e9 e4 04 00 00 jmp $LN1@stbi__pars
|
|
$LN70@stbi__pars:
|
|
|
|
; 5856 : z->idata = p;
|
|
|
|
009d5 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
009dc 48 8b 8d 68 06
|
|
00 00 mov rcx, QWORD PTR p$12[rbp]
|
|
009e3 48 89 48 08 mov QWORD PTR [rax+8], rcx
|
|
$LN68@stbi__pars:
|
|
|
|
; 5857 : }
|
|
; 5858 : if (!stbi__getn(s, z->idata + ioff, c.length))
|
|
|
|
009e7 8b 85 a4 04 00
|
|
00 mov eax, DWORD PTR ioff$[rbp]
|
|
009ed 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
009f4 48 03 41 08 add rax, QWORD PTR [rcx+8]
|
|
009f8 44 8b 85 e8 05
|
|
00 00 mov r8d, DWORD PTR c$8[rbp]
|
|
009ff 48 8b d0 mov rdx, rax
|
|
00a02 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00a09 e8 00 00 00 00 call stbi__getn
|
|
00a0e 85 c0 test eax, eax
|
|
00a10 75 11 jne SHORT $LN71@stbi__pars
|
|
|
|
; 5859 : return stbi__err("outofdata", "Corrupt PNG");
|
|
|
|
00a12 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_09MNNCNKEO@outofdata@
|
|
00a19 e8 00 00 00 00 call stbi__err
|
|
00a1e e9 96 04 00 00 jmp $LN1@stbi__pars
|
|
$LN71@stbi__pars:
|
|
|
|
; 5860 : ioff += c.length;
|
|
|
|
00a23 8b 85 e8 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp]
|
|
00a29 8b 8d a4 04 00
|
|
00 mov ecx, DWORD PTR ioff$[rbp]
|
|
00a2f 03 c8 add ecx, eax
|
|
00a31 8b c1 mov eax, ecx
|
|
00a33 89 85 a4 04 00
|
|
00 mov DWORD PTR ioff$[rbp], eax
|
|
|
|
; 5861 : break;
|
|
|
|
00a39 e9 69 04 00 00 jmp $LN5@stbi__pars
|
|
$LN72@stbi__pars:
|
|
|
|
; 5862 : }
|
|
; 5863 :
|
|
; 5864 : case STBI__PNG_TYPE('I', 'E', 'N', 'D'): {
|
|
; 5865 : stbi__uint32 raw_len, bpl;
|
|
; 5866 : if (first)
|
|
|
|
00a3e 83 bd 24 05 00
|
|
00 00 cmp DWORD PTR first$[rbp], 0
|
|
00a45 74 11 je SHORT $LN73@stbi__pars
|
|
|
|
; 5867 : return stbi__err("first not IHDR", "Corrupt PNG");
|
|
|
|
00a47 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@
|
|
00a4e e8 00 00 00 00 call stbi__err
|
|
00a53 e9 61 04 00 00 jmp $LN1@stbi__pars
|
|
$LN73@stbi__pars:
|
|
|
|
; 5868 : if (scan != STBI__SCAN_load)
|
|
|
|
00a58 83 bd f8 09 00
|
|
00 00 cmp DWORD PTR scan$[rbp], 0
|
|
00a5f 74 0a je SHORT $LN74@stbi__pars
|
|
|
|
; 5869 : return 1;
|
|
|
|
00a61 b8 01 00 00 00 mov eax, 1
|
|
00a66 e9 4e 04 00 00 jmp $LN1@stbi__pars
|
|
$LN74@stbi__pars:
|
|
|
|
; 5870 : if (z->idata == NULL)
|
|
|
|
00a6b 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00a72 48 83 78 08 00 cmp QWORD PTR [rax+8], 0
|
|
00a77 75 11 jne SHORT $LN75@stbi__pars
|
|
|
|
; 5871 : return stbi__err("no IDAT", "Corrupt PNG");
|
|
|
|
00a79 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_07MLPECBNA@no?5IDAT@
|
|
00a80 e8 00 00 00 00 call stbi__err
|
|
00a85 e9 2f 04 00 00 jmp $LN1@stbi__pars
|
|
$LN75@stbi__pars:
|
|
|
|
; 5872 : // initial guess for decoded data size to avoid unnecessary reallocs
|
|
; 5873 : bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component
|
|
|
|
00a8a 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00a91 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
00a98 8b 00 mov eax, DWORD PTR [rax]
|
|
00a9a 0f af 41 20 imul eax, DWORD PTR [rcx+32]
|
|
00a9e 83 c0 07 add eax, 7
|
|
00aa1 33 d2 xor edx, edx
|
|
00aa3 b9 08 00 00 00 mov ecx, 8
|
|
00aa8 f7 f1 div ecx
|
|
00aaa 89 85 a4 06 00
|
|
00 mov DWORD PTR bpl$14[rbp], eax
|
|
|
|
; 5874 : raw_len = bpl * s->img_y * s->img_n /* pixels */ +
|
|
|
|
00ab0 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00ab7 8b 8d a4 06 00
|
|
00 mov ecx, DWORD PTR bpl$14[rbp]
|
|
00abd 0f af 48 04 imul ecx, DWORD PTR [rax+4]
|
|
00ac1 8b c1 mov eax, ecx
|
|
00ac3 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00aca 0f af 41 08 imul eax, DWORD PTR [rcx+8]
|
|
00ace 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00ad5 03 41 04 add eax, DWORD PTR [rcx+4]
|
|
00ad8 89 85 84 06 00
|
|
00 mov DWORD PTR raw_len$13[rbp], eax
|
|
|
|
; 5875 : s->img_y /* filter mode per row */;
|
|
; 5876 : z->expanded = (stbi_uc *)stbi_zlib_decode_malloc_guesssize_headerflag(
|
|
|
|
00ade 83 bd a4 05 00
|
|
00 00 cmp DWORD PTR is_iphone$[rbp], 0
|
|
00ae5 75 0c jne SHORT $LN103@stbi__pars
|
|
00ae7 c7 85 b4 09 00
|
|
00 01 00 00 00 mov DWORD PTR tv396[rbp], 1
|
|
00af1 eb 0a jmp SHORT $LN104@stbi__pars
|
|
$LN103@stbi__pars:
|
|
00af3 c7 85 b4 09 00
|
|
00 00 00 00 00 mov DWORD PTR tv396[rbp], 0
|
|
$LN104@stbi__pars:
|
|
00afd 8b 85 b4 09 00
|
|
00 mov eax, DWORD PTR tv396[rbp]
|
|
00b03 89 44 24 20 mov DWORD PTR [rsp+32], eax
|
|
00b07 4c 8d 8d 84 06
|
|
00 00 lea r9, QWORD PTR raw_len$13[rbp]
|
|
00b0e 44 8b 85 84 06
|
|
00 00 mov r8d, DWORD PTR raw_len$13[rbp]
|
|
00b15 8b 95 a4 04 00
|
|
00 mov edx, DWORD PTR ioff$[rbp]
|
|
00b1b 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00b22 48 8b 48 08 mov rcx, QWORD PTR [rax+8]
|
|
00b26 e8 00 00 00 00 call stbi_zlib_decode_malloc_guesssize_headerflag
|
|
00b2b 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
00b32 48 89 41 10 mov QWORD PTR [rcx+16], rax
|
|
|
|
; 5877 : (char *)z->idata, ioff, raw_len, (int *)&raw_len, !is_iphone);
|
|
; 5878 : if (z->expanded == NULL)
|
|
|
|
00b36 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00b3d 48 83 78 10 00 cmp QWORD PTR [rax+16], 0
|
|
00b42 75 07 jne SHORT $LN76@stbi__pars
|
|
|
|
; 5879 : return 0; // zlib should set error
|
|
|
|
00b44 33 c0 xor eax, eax
|
|
00b46 e9 6e 03 00 00 jmp $LN1@stbi__pars
|
|
$LN76@stbi__pars:
|
|
|
|
; 5880 : STBI_FREE(z->idata);
|
|
|
|
00b4b 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00b52 48 8b 48 08 mov rcx, QWORD PTR [rax+8]
|
|
00b56 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_free
|
|
00b5c 90 npad 1
|
|
|
|
; 5881 : z->idata = NULL;
|
|
|
|
00b5d 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00b64 48 c7 40 08 00
|
|
00 00 00 mov QWORD PTR [rax+8], 0
|
|
|
|
; 5882 : if ((req_comp == s->img_n + 1 && req_comp != 3 && !pal_img_n) || has_trans)
|
|
|
|
00b6c 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00b73 8b 40 08 mov eax, DWORD PTR [rax+8]
|
|
00b76 ff c0 inc eax
|
|
00b78 39 85 00 0a 00
|
|
00 cmp DWORD PTR req_comp$[rbp], eax
|
|
00b7e 75 14 jne SHORT $LN80@stbi__pars
|
|
00b80 83 bd 00 0a 00
|
|
00 03 cmp DWORD PTR req_comp$[rbp], 3
|
|
00b87 74 0b je SHORT $LN80@stbi__pars
|
|
00b89 0f b6 85 24 04
|
|
00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
|
|
00b90 85 c0 test eax, eax
|
|
00b92 74 0b je SHORT $LN79@stbi__pars
|
|
$LN80@stbi__pars:
|
|
00b94 0f b6 85 44 04
|
|
00 00 movzx eax, BYTE PTR has_trans$[rbp]
|
|
00b9b 85 c0 test eax, eax
|
|
00b9d 74 18 je SHORT $LN77@stbi__pars
|
|
$LN79@stbi__pars:
|
|
|
|
; 5883 : s->img_out_n = s->img_n + 1;
|
|
|
|
00b9f 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00ba6 8b 40 08 mov eax, DWORD PTR [rax+8]
|
|
00ba9 ff c0 inc eax
|
|
00bab 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00bb2 89 41 0c mov DWORD PTR [rcx+12], eax
|
|
00bb5 eb 14 jmp SHORT $LN78@stbi__pars
|
|
$LN77@stbi__pars:
|
|
|
|
; 5884 : else
|
|
; 5885 : s->img_out_n = s->img_n;
|
|
|
|
00bb7 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00bbe 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00bc5 8b 49 08 mov ecx, DWORD PTR [rcx+8]
|
|
00bc8 89 48 0c mov DWORD PTR [rax+12], ecx
|
|
$LN78@stbi__pars:
|
|
|
|
; 5886 : if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth,
|
|
|
|
00bcb 8b 85 64 05 00
|
|
00 mov eax, DWORD PTR interlace$[rbp]
|
|
00bd1 89 44 24 30 mov DWORD PTR [rsp+48], eax
|
|
00bd5 8b 85 84 05 00
|
|
00 mov eax, DWORD PTR color$[rbp]
|
|
00bdb 89 44 24 28 mov DWORD PTR [rsp+40], eax
|
|
00bdf 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00be6 8b 40 20 mov eax, DWORD PTR [rax+32]
|
|
00be9 89 44 24 20 mov DWORD PTR [rsp+32], eax
|
|
00bed 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00bf4 44 8b 48 0c mov r9d, DWORD PTR [rax+12]
|
|
00bf8 44 8b 85 84 06
|
|
00 00 mov r8d, DWORD PTR raw_len$13[rbp]
|
|
00bff 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00c06 48 8b 50 10 mov rdx, QWORD PTR [rax+16]
|
|
00c0a 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
00c11 e8 00 00 00 00 call stbi__create_png_image
|
|
00c16 85 c0 test eax, eax
|
|
00c18 75 07 jne SHORT $LN81@stbi__pars
|
|
|
|
; 5887 : color, interlace))
|
|
; 5888 : return 0;
|
|
|
|
00c1a 33 c0 xor eax, eax
|
|
00c1c e9 98 02 00 00 jmp $LN1@stbi__pars
|
|
$LN81@stbi__pars:
|
|
|
|
; 5889 : if (has_trans) {
|
|
|
|
00c21 0f b6 85 44 04
|
|
00 00 movzx eax, BYTE PTR has_trans$[rbp]
|
|
00c28 85 c0 test eax, eax
|
|
00c2a 74 61 je SHORT $LN82@stbi__pars
|
|
|
|
; 5890 : if (z->depth == 16) {
|
|
|
|
00c2c 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00c33 83 78 20 10 cmp DWORD PTR [rax+32], 16
|
|
00c37 75 2b jne SHORT $LN83@stbi__pars
|
|
|
|
; 5891 : if (!stbi__compute_transparency16(z, tc16, s->img_out_n))
|
|
|
|
00c39 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00c40 44 8b 40 0c mov r8d, DWORD PTR [rax+12]
|
|
00c44 48 8d 95 84 04
|
|
00 00 lea rdx, QWORD PTR tc16$[rbp]
|
|
00c4b 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
00c52 e8 00 00 00 00 call stbi__compute_transparency16
|
|
00c57 85 c0 test eax, eax
|
|
00c59 75 07 jne SHORT $LN85@stbi__pars
|
|
|
|
; 5892 : return 0;
|
|
|
|
00c5b 33 c0 xor eax, eax
|
|
00c5d e9 57 02 00 00 jmp $LN1@stbi__pars
|
|
$LN85@stbi__pars:
|
|
|
|
; 5893 : } else {
|
|
|
|
00c62 eb 29 jmp SHORT $LN84@stbi__pars
|
|
$LN83@stbi__pars:
|
|
|
|
; 5894 : if (!stbi__compute_transparency(z, tc, s->img_out_n))
|
|
|
|
00c64 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00c6b 44 8b 40 0c mov r8d, DWORD PTR [rax+12]
|
|
00c6f 48 8d 95 64 04
|
|
00 00 lea rdx, QWORD PTR tc$[rbp]
|
|
00c76 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
00c7d e8 00 00 00 00 call stbi__compute_transparency
|
|
00c82 85 c0 test eax, eax
|
|
00c84 75 07 jne SHORT $LN86@stbi__pars
|
|
|
|
; 5895 : return 0;
|
|
|
|
00c86 33 c0 xor eax, eax
|
|
00c88 e9 2c 02 00 00 jmp $LN1@stbi__pars
|
|
$LN86@stbi__pars:
|
|
$LN84@stbi__pars:
|
|
$LN82@stbi__pars:
|
|
|
|
; 5896 : }
|
|
; 5897 : }
|
|
; 5898 : if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2)
|
|
|
|
00c8d 83 bd a4 05 00
|
|
00 00 cmp DWORD PTR is_iphone$[rbp], 0
|
|
00c94 74 74 je SHORT $LN87@stbi__pars
|
|
00c96 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_set
|
|
00c9b 8b c0 mov eax, eax
|
|
00c9d 8b 0d 00 00 00
|
|
00 mov ecx, DWORD PTR _tls_index
|
|
00ca3 65 48 8b 14 25
|
|
58 00 00 00 mov rdx, QWORD PTR gs:88
|
|
00cac 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8]
|
|
00cb0 83 3c 08 00 cmp DWORD PTR [rax+rcx], 0
|
|
00cb4 74 25 je SHORT $LN105@stbi__pars
|
|
00cb6 b8 00 00 00 00 mov eax, OFFSET FLAT:stbi__de_iphone_flag_local
|
|
00cbb 8b c0 mov eax, eax
|
|
00cbd 8b 0d 00 00 00
|
|
00 mov ecx, DWORD PTR _tls_index
|
|
00cc3 65 48 8b 14 25
|
|
58 00 00 00 mov rdx, QWORD PTR gs:88
|
|
00ccc 48 8b 0c ca mov rcx, QWORD PTR [rdx+rcx*8]
|
|
00cd0 8b 04 08 mov eax, DWORD PTR [rax+rcx]
|
|
00cd3 89 85 b4 09 00
|
|
00 mov DWORD PTR tv463[rbp], eax
|
|
00cd9 eb 0c jmp SHORT $LN106@stbi__pars
|
|
$LN105@stbi__pars:
|
|
00cdb 8b 05 00 00 00
|
|
00 mov eax, DWORD PTR stbi__de_iphone_flag_global
|
|
00ce1 89 85 b4 09 00
|
|
00 mov DWORD PTR tv463[rbp], eax
|
|
$LN106@stbi__pars:
|
|
00ce7 83 bd b4 09 00
|
|
00 00 cmp DWORD PTR tv463[rbp], 0
|
|
00cee 74 1a je SHORT $LN87@stbi__pars
|
|
00cf0 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00cf7 83 78 0c 02 cmp DWORD PTR [rax+12], 2
|
|
00cfb 7e 0d jle SHORT $LN87@stbi__pars
|
|
|
|
; 5899 : stbi__de_iphone(z);
|
|
|
|
00cfd 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
00d04 e8 00 00 00 00 call stbi__de_iphone
|
|
00d09 90 npad 1
|
|
$LN87@stbi__pars:
|
|
|
|
; 5900 : if (pal_img_n) {
|
|
|
|
00d0a 0f b6 85 24 04
|
|
00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
|
|
00d11 85 c0 test eax, eax
|
|
00d13 74 6a je SHORT $LN88@stbi__pars
|
|
|
|
; 5901 : // pal_img_n == 3 or 4
|
|
; 5902 : s->img_n = pal_img_n; // record the actual colors we had
|
|
|
|
00d15 0f b6 85 24 04
|
|
00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
|
|
00d1c 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00d23 89 41 08 mov DWORD PTR [rcx+8], eax
|
|
|
|
; 5903 : s->img_out_n = pal_img_n;
|
|
|
|
00d26 0f b6 85 24 04
|
|
00 00 movzx eax, BYTE PTR pal_img_n$[rbp]
|
|
00d2d 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00d34 89 41 0c mov DWORD PTR [rcx+12], eax
|
|
|
|
; 5904 : if (req_comp >= 3)
|
|
|
|
00d37 83 bd 00 0a 00
|
|
00 03 cmp DWORD PTR req_comp$[rbp], 3
|
|
00d3e 7c 10 jl SHORT $LN90@stbi__pars
|
|
|
|
; 5905 : s->img_out_n = req_comp;
|
|
|
|
00d40 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00d47 8b 8d 00 0a 00
|
|
00 mov ecx, DWORD PTR req_comp$[rbp]
|
|
00d4d 89 48 0c mov DWORD PTR [rax+12], ecx
|
|
$LN90@stbi__pars:
|
|
|
|
; 5906 : if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n))
|
|
|
|
00d50 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00d57 44 8b 48 0c mov r9d, DWORD PTR [rax+12]
|
|
00d5b 44 8b 85 04 05
|
|
00 00 mov r8d, DWORD PTR pal_len$[rbp]
|
|
00d62 48 8d 55 10 lea rdx, QWORD PTR palette$[rbp]
|
|
00d66 48 8b 8d f0 09
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
00d6d e8 00 00 00 00 call stbi__expand_png_palette
|
|
00d72 85 c0 test eax, eax
|
|
00d74 75 07 jne SHORT $LN91@stbi__pars
|
|
|
|
; 5907 : return 0;
|
|
|
|
00d76 33 c0 xor eax, eax
|
|
00d78 e9 3c 01 00 00 jmp $LN1@stbi__pars
|
|
$LN91@stbi__pars:
|
|
|
|
; 5908 : } else if (has_trans) {
|
|
|
|
00d7d eb 21 jmp SHORT $LN89@stbi__pars
|
|
$LN88@stbi__pars:
|
|
00d7f 0f b6 85 44 04
|
|
00 00 movzx eax, BYTE PTR has_trans$[rbp]
|
|
00d86 85 c0 test eax, eax
|
|
00d88 74 16 je SHORT $LN92@stbi__pars
|
|
|
|
; 5909 : // non-paletted image with tRNS -> source image has (constant) alpha
|
|
; 5910 : ++s->img_n;
|
|
|
|
00d8a 48 8b 85 c8 05
|
|
00 00 mov rax, QWORD PTR s$[rbp]
|
|
00d91 8b 40 08 mov eax, DWORD PTR [rax+8]
|
|
00d94 ff c0 inc eax
|
|
00d96 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00d9d 89 41 08 mov DWORD PTR [rcx+8], eax
|
|
$LN92@stbi__pars:
|
|
$LN89@stbi__pars:
|
|
|
|
; 5911 : }
|
|
; 5912 : STBI_FREE(z->expanded);
|
|
|
|
00da0 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00da7 48 8b 48 10 mov rcx, QWORD PTR [rax+16]
|
|
00dab ff 15 00 00 00
|
|
00 call QWORD PTR __imp_free
|
|
00db1 90 npad 1
|
|
|
|
; 5913 : z->expanded = NULL;
|
|
|
|
00db2 48 8b 85 f0 09
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00db9 48 c7 40 10 00
|
|
00 00 00 mov QWORD PTR [rax+16], 0
|
|
|
|
; 5914 : // end of PNG chunk, read and skip CRC
|
|
; 5915 : stbi__get32be(s);
|
|
|
|
00dc1 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00dc8 e8 00 00 00 00 call stbi__get32be
|
|
00dcd 90 npad 1
|
|
|
|
; 5916 : return 1;
|
|
|
|
00dce b8 01 00 00 00 mov eax, 1
|
|
00dd3 e9 e1 00 00 00 jmp $LN1@stbi__pars
|
|
$LN93@stbi__pars:
|
|
|
|
; 5917 : }
|
|
; 5918 :
|
|
; 5919 : default:
|
|
; 5920 : // if critical, fail
|
|
; 5921 : if (first)
|
|
|
|
00dd8 83 bd 24 05 00
|
|
00 00 cmp DWORD PTR first$[rbp], 0
|
|
00ddf 74 11 je SHORT $LN94@stbi__pars
|
|
|
|
; 5922 : return stbi__err("first not IHDR", "Corrupt PNG");
|
|
|
|
00de1 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0P@JEAFOMAF@first?5not?5IHDR@
|
|
00de8 e8 00 00 00 00 call stbi__err
|
|
00ded e9 c7 00 00 00 jmp $LN1@stbi__pars
|
|
$LN94@stbi__pars:
|
|
|
|
; 5923 : if ((c.type & (1 << 29)) == 0) {
|
|
|
|
00df2 8b 85 ec 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp+4]
|
|
00df8 25 00 00 00 20 and eax, 536870912 ; 20000000H
|
|
00dfd 85 c0 test eax, eax
|
|
00dff 0f 85 8f 00 00
|
|
00 jne $LN95@stbi__pars
|
|
|
|
; 5924 : #ifndef STBI_NO_FAILURE_STRINGS
|
|
; 5925 : // not threadsafe
|
|
; 5926 : static char invalid_chunk[] = "XXXX PNG chunk not known";
|
|
; 5927 : invalid_chunk[0] = STBI__BYTECAST(c.type >> 24);
|
|
|
|
00e05 8b 85 ec 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp+4]
|
|
00e0b c1 e8 18 shr eax, 24
|
|
00e0e 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
00e13 b9 01 00 00 00 mov ecx, 1
|
|
00e18 48 6b c9 00 imul rcx, rcx, 0
|
|
00e1c 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
|
|
00e23 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
|
|
; 5928 : invalid_chunk[1] = STBI__BYTECAST(c.type >> 16);
|
|
|
|
00e26 8b 85 ec 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp+4]
|
|
00e2c c1 e8 10 shr eax, 16
|
|
00e2f 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
00e34 b9 01 00 00 00 mov ecx, 1
|
|
00e39 48 6b c9 01 imul rcx, rcx, 1
|
|
00e3d 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
|
|
00e44 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
|
|
; 5929 : invalid_chunk[2] = STBI__BYTECAST(c.type >> 8);
|
|
|
|
00e47 8b 85 ec 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp+4]
|
|
00e4d c1 e8 08 shr eax, 8
|
|
00e50 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
00e55 b9 01 00 00 00 mov ecx, 1
|
|
00e5a 48 6b c9 02 imul rcx, rcx, 2
|
|
00e5e 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
|
|
00e65 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
|
|
; 5930 : invalid_chunk[3] = STBI__BYTECAST(c.type >> 0);
|
|
|
|
00e68 8b 85 ec 05 00
|
|
00 mov eax, DWORD PTR c$8[rbp+4]
|
|
00e6e 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
00e73 b9 01 00 00 00 mov ecx, 1
|
|
00e78 48 6b c9 03 imul rcx, rcx, 3
|
|
00e7c 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
|
|
00e83 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
|
|
; 5931 : #endif
|
|
; 5932 : return stbi__err(invalid_chunk,
|
|
|
|
00e86 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:?invalid_chunk@?BP@??stbi__parse_png_file@@9@9
|
|
00e8d e8 00 00 00 00 call stbi__err
|
|
00e92 eb 25 jmp SHORT $LN1@stbi__pars
|
|
$LN95@stbi__pars:
|
|
|
|
; 5933 : "PNG not supported: unknown PNG chunk type");
|
|
; 5934 : }
|
|
; 5935 : stbi__skip(s, c.length);
|
|
|
|
00e94 8b 95 e8 05 00
|
|
00 mov edx, DWORD PTR c$8[rbp]
|
|
00e9a 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00ea1 e8 00 00 00 00 call stbi__skip
|
|
00ea6 90 npad 1
|
|
$LN5@stbi__pars:
|
|
|
|
; 5936 : break;
|
|
; 5937 : }
|
|
; 5938 : // end of PNG chunk, read and skip CRC
|
|
; 5939 : stbi__get32be(s);
|
|
|
|
00ea7 48 8b 8d c8 05
|
|
00 00 mov rcx, QWORD PTR s$[rbp]
|
|
00eae e8 00 00 00 00 call stbi__get32be
|
|
00eb3 90 npad 1
|
|
|
|
; 5940 : }
|
|
|
|
00eb4 e9 69 f2 ff ff jmp $LN2@stbi__pars
|
|
$LN1@stbi__pars:
|
|
|
|
; 5941 : }
|
|
|
|
00eb9 48 8b f8 mov rdi, rax
|
|
00ebc 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64]
|
|
00ec0 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:stbi__parse_png_file$rtcFrameData
|
|
00ec7 e8 00 00 00 00 call _RTC_CheckStackVars
|
|
00ecc 48 8b c7 mov rax, rdi
|
|
00ecf 48 8b 8d c0 09
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
00ed6 48 33 cd xor rcx, rbp
|
|
00ed9 e8 00 00 00 00 call __security_check_cookie
|
|
00ede 48 8d a5 d8 09
|
|
00 00 lea rsp, QWORD PTR [rbp+2520]
|
|
00ee5 5f pop rdi
|
|
00ee6 5d pop rbp
|
|
00ee7 c3 ret 0
|
|
stbi__parse_png_file ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 5644 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 5645 : 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
|
|
|
|
; 5646 : 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
|
|
|
|
; 5647 : 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
|
|
|
|
; 5648 :
|
|
; 5649 : 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
|
|
|
|
; 5650 : 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
|
|
|
|
; 5651 : 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
|
|
|
|
; 5652 : 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
|
|
|
|
; 5653 : 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
|
|
|
|
; 5654 : 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
|
|
|
|
; 5655 : }
|
|
|
|
000cd eb 92 jmp SHORT $LN2@stbi__de_i
|
|
$LN3@stbi__de_i:
|
|
|
|
; 5656 : } else {
|
|
|
|
000cf e9 59 02 00 00 jmp $LN12@stbi__de_i
|
|
$LN11@stbi__de_i:
|
|
|
|
; 5657 : 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 19 16 00
|
|
00 mov r8d, 5657 ; 00001619H
|
|
000e4 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 5658 : 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
|
|
|
|
; 5659 : // convert bgr to rgb and unpremultiply
|
|
; 5660 : 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
|
|
|
|
; 5661 : 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
|
|
|
|
; 5662 : 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
|
|
|
|
; 5663 : 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
|
|
|
|
; 5664 : 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
|
|
|
|
; 5665 : 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
|
|
|
|
; 5666 : 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
|
|
|
|
; 5667 : 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
|
|
|
|
; 5668 : } else {
|
|
|
|
00268 eb 39 jmp SHORT $LN16@stbi__de_i
|
|
$LN15@stbi__de_i:
|
|
|
|
; 5669 : 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
|
|
|
|
; 5670 : 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:
|
|
|
|
; 5671 : }
|
|
; 5672 : 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
|
|
|
|
; 5673 : }
|
|
|
|
002af e9 ad fe ff ff jmp $LN5@stbi__de_i
|
|
$LN6@stbi__de_i:
|
|
|
|
; 5674 : } else {
|
|
|
|
002b4 eb 77 jmp SHORT $LN14@stbi__de_i
|
|
$LN13@stbi__de_i:
|
|
|
|
; 5675 : // convert bgr to rgb
|
|
; 5676 : 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
|
|
|
|
; 5677 : 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
|
|
|
|
; 5678 : 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
|
|
|
|
; 5679 : 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
|
|
|
|
; 5680 : 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
|
|
|
|
; 5681 : }
|
|
|
|
0032b eb 92 jmp SHORT $LN8@stbi__de_i
|
|
$LN9@stbi__de_i:
|
|
$LN14@stbi__de_i:
|
|
$LN12@stbi__de_i:
|
|
|
|
; 5682 : }
|
|
; 5683 : }
|
|
; 5684 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 5567 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 5568 : 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
|
|
|
|
; 5569 : 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
|
|
|
|
; 5570 :
|
|
; 5571 : 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
|
|
|
|
; 5572 : if (p == NULL)
|
|
|
|
00073 48 83 7d 48 00 cmp QWORD PTR p$[rbp], 0
|
|
00078 75 11 jne SHORT $LN8@stbi__expa
|
|
|
|
; 5573 : 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:
|
|
|
|
; 5574 :
|
|
; 5575 : // between here and free(out) below, exitting would leak
|
|
; 5576 : 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
|
|
|
|
; 5577 :
|
|
; 5578 : 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
|
|
|
|
; 5579 : 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
|
|
|
|
; 5580 : 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
|
|
|
|
; 5581 : 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
|
|
|
|
; 5582 : 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
|
|
|
|
; 5583 : 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
|
|
|
|
; 5584 : 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
|
|
|
|
; 5585 : }
|
|
|
|
00150 e9 54 ff ff ff jmp $LN2@stbi__expa
|
|
$LN3@stbi__expa:
|
|
|
|
; 5586 : } else {
|
|
|
|
00155 e9 dc 00 00 00 jmp $LN10@stbi__expa
|
|
$LN9@stbi__expa:
|
|
|
|
; 5587 : 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
|
|
|
|
; 5588 : 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
|
|
|
|
; 5589 : 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
|
|
|
|
; 5590 : 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
|
|
|
|
; 5591 : 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
|
|
|
|
; 5592 : 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
|
|
|
|
; 5593 : 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
|
|
|
|
; 5594 : }
|
|
|
|
00231 e9 2d ff ff ff jmp $LN5@stbi__expa
|
|
$LN6@stbi__expa:
|
|
$LN10@stbi__expa:
|
|
|
|
; 5595 : }
|
|
; 5596 : 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
|
|
|
|
; 5597 : 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
|
|
|
|
; 5598 :
|
|
; 5599 : STBI_NOTUSED(len);
|
|
; 5600 :
|
|
; 5601 : return 1;
|
|
|
|
00257 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__expa:
|
|
|
|
; 5602 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 5542 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 5543 : 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
|
|
|
|
; 5544 : 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
|
|
|
|
; 5545 : 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
|
|
|
|
; 5546 :
|
|
; 5547 : // compute color-based transparency, assuming we've
|
|
; 5548 : // already got 65535 as the alpha value in the output
|
|
; 5549 : 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 ad 15 00
|
|
00 mov r8d, 5549 ; 000015adH
|
|
00070 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 5550 :
|
|
; 5551 : 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
|
|
|
|
; 5552 : 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
|
|
|
|
; 5553 : 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
|
|
|
|
; 5554 : 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
|
|
|
|
; 5555 : }
|
|
|
|
0010f eb 8b jmp SHORT $LN2@stbi__comp
|
|
$LN3@stbi__comp:
|
|
|
|
; 5556 : } else {
|
|
|
|
00111 e9 bc 00 00 00 jmp $LN9@stbi__comp
|
|
$LN8@stbi__comp:
|
|
|
|
; 5557 : 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
|
|
|
|
; 5558 : 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
|
|
|
|
; 5559 : 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:
|
|
|
|
; 5560 : 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
|
|
|
|
; 5561 : }
|
|
|
|
001cd e9 4d ff ff ff jmp $LN5@stbi__comp
|
|
$LN6@stbi__comp:
|
|
$LN9@stbi__comp:
|
|
|
|
; 5562 : }
|
|
; 5563 : return 1;
|
|
|
|
001d2 b8 01 00 00 00 mov eax, 1
|
|
|
|
; 5564 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 5517 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 5518 : 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
|
|
|
|
; 5519 : 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
|
|
|
|
; 5520 : 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
|
|
|
|
; 5521 :
|
|
; 5522 : // compute color-based transparency, assuming we've
|
|
; 5523 : // already got 255 as the alpha value in the output
|
|
; 5524 : 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 94 15 00
|
|
00 mov r8d, 5524 ; 00001594H
|
|
00070 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 5525 :
|
|
; 5526 : 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
|
|
|
|
; 5527 : 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
|
|
|
|
; 5528 : 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
|
|
|
|
; 5529 : 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
|
|
|
|
; 5530 : }
|
|
|
|
0010e eb 8c jmp SHORT $LN2@stbi__comp
|
|
$LN3@stbi__comp:
|
|
|
|
; 5531 : } else {
|
|
|
|
00110 e9 ba 00 00 00 jmp $LN9@stbi__comp
|
|
$LN8@stbi__comp:
|
|
|
|
; 5532 : 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
|
|
|
|
; 5533 : 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
|
|
|
|
; 5534 : 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:
|
|
|
|
; 5535 : 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
|
|
|
|
; 5536 : }
|
|
|
|
001ca e9 4f ff ff ff jmp $LN5@stbi__comp
|
|
$LN6@stbi__comp:
|
|
$LN9@stbi__comp:
|
|
|
|
; 5537 : }
|
|
; 5538 : return 1;
|
|
|
|
001cf b8 01 00 00 00 mov eax, 1
|
|
|
|
; 5539 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 5468 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00047 90 npad 1
|
|
|
|
; 5469 : 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
|
|
|
|
; 5470 : 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
|
|
|
|
; 5471 : stbi_uc *final;
|
|
; 5472 : int p;
|
|
; 5473 : if (!interlaced)
|
|
|
|
0007d 83 bd 30 04 00
|
|
00 00 cmp DWORD PTR interlaced$[rbp], 0
|
|
00084 75 5b jne SHORT $LN11@stbi__crea
|
|
|
|
; 5474 : 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:
|
|
|
|
; 5475 : a->s->img_y, depth, color);
|
|
; 5476 :
|
|
; 5477 : // de-interlacing
|
|
; 5478 : 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
|
|
|
|
; 5479 : if (!final)
|
|
|
|
0010a 48 83 7d 48 00 cmp QWORD PTR final$[rbp], 0
|
|
0010f 75 11 jne SHORT $LN12@stbi__crea
|
|
|
|
; 5480 : 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:
|
|
|
|
; 5481 : 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
|
|
|
|
; 5482 : 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
|
|
|
|
; 5483 : 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
|
|
|
|
; 5484 : 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
|
|
|
|
; 5485 : 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
|
|
|
|
; 5486 : int i, j, x, y;
|
|
; 5487 : // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1
|
|
; 5488 : 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
|
|
|
|
; 5489 : 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
|
|
|
|
; 5490 : 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
|
|
|
|
; 5491 : 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
|
|
|
|
; 5492 : 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
|
|
|
|
; 5493 : depth, color)) {
|
|
; 5494 : 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
|
|
|
|
; 5495 : return 0;
|
|
|
|
0036e 33 c0 xor eax, eax
|
|
00370 e9 87 01 00 00 jmp $LN1@stbi__crea
|
|
$LN14@stbi__crea:
|
|
|
|
; 5496 : }
|
|
; 5497 : 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
|
|
|
|
; 5498 : 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
|
|
|
|
; 5499 : 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
|
|
|
|
; 5500 : 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
|
|
|
|
; 5501 : 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
|
|
|
|
; 5502 : out_x * out_bytes,
|
|
; 5503 : a->out + (j * x + i) * out_bytes, out_bytes);
|
|
; 5504 : }
|
|
|
|
00497 e9 11 ff ff ff jmp $LN8@stbi__crea
|
|
$LN9@stbi__crea:
|
|
|
|
; 5505 : }
|
|
|
|
0049c e9 e0 fe ff ff jmp $LN5@stbi__crea
|
|
$LN6@stbi__crea:
|
|
|
|
; 5506 : 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
|
|
|
|
; 5507 : 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
|
|
|
|
; 5508 : 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:
|
|
|
|
; 5509 : }
|
|
; 5510 : }
|
|
|
|
004e3 e9 43 fc ff ff jmp $LN2@stbi__crea
|
|
$LN3@stbi__crea:
|
|
|
|
; 5511 : 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
|
|
|
|
; 5512 :
|
|
; 5513 : return 1;
|
|
|
|
004f7 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__crea:
|
|
|
|
; 5514 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
filter_buf$ = 232
|
|
all_ok$ = 260
|
|
k$ = 292
|
|
img_n$ = 324
|
|
output_bytes$ = 356
|
|
filter_bytes$ = 388
|
|
width$ = 420
|
|
cur$1 = 456
|
|
prior$2 = 488
|
|
dest$3 = 520
|
|
nk$4 = 548
|
|
filter$5 = 580
|
|
scale$6 = 612
|
|
in$7 = 648
|
|
out$8 = 680
|
|
inb$9 = 708
|
|
nsmp$10 = 740
|
|
dest16$11 = 776
|
|
nsmp$12 = 804
|
|
tv65 = 1204
|
|
tv181 = 1204
|
|
tv287 = 1204
|
|
tv340 = 1204
|
|
tv304 = 1208
|
|
a$ = 1248
|
|
raw$ = 1256
|
|
raw_len$ = 1264
|
|
out_n$ = 1272
|
|
x$ = 1280
|
|
y$ = 1288
|
|
depth$ = 1296
|
|
color$ = 1304
|
|
stbi__create_png_image_raw PROC ; COMDAT
|
|
|
|
; 5286 : {
|
|
|
|
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 04
|
|
00 00 sub rsp, 1256 ; 000004e8H
|
|
0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
00022 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 5287 : int bytes = (depth == 16 ? 2 : 1);
|
|
|
|
0002f 83 bd 10 05 00
|
|
00 10 cmp DWORD PTR depth$[rbp], 16
|
|
00036 75 0c jne SHORT $LN81@stbi__crea
|
|
00038 c7 85 b4 04 00
|
|
00 02 00 00 00 mov DWORD PTR tv65[rbp], 2
|
|
00042 eb 0a jmp SHORT $LN82@stbi__crea
|
|
$LN81@stbi__crea:
|
|
00044 c7 85 b4 04 00
|
|
00 01 00 00 00 mov DWORD PTR tv65[rbp], 1
|
|
$LN82@stbi__crea:
|
|
0004e 8b 85 b4 04 00
|
|
00 mov eax, DWORD PTR tv65[rbp]
|
|
00054 89 45 04 mov DWORD PTR bytes$[rbp], eax
|
|
|
|
; 5288 : stbi__context *s = a->s;
|
|
|
|
00057 48 8b 85 e0 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
|
|
|
|
; 5289 : stbi__uint32 i, j, stride = x * out_n * bytes;
|
|
|
|
00065 8b 85 00 05 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
0006b 0f af 85 f8 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
|
|
|
|
; 5290 : stbi__uint32 img_len, img_width_bytes;
|
|
; 5291 : stbi_uc *filter_buf;
|
|
; 5292 : int all_ok = 1;
|
|
|
|
0007c c7 85 04 01 00
|
|
00 01 00 00 00 mov DWORD PTR all_ok$[rbp], 1
|
|
|
|
; 5293 : int k;
|
|
; 5294 : int img_n = s->img_n; // copy it into a local for later
|
|
|
|
00086 48 8b 45 28 mov rax, QWORD PTR s$[rbp]
|
|
0008a 8b 40 08 mov eax, DWORD PTR [rax+8]
|
|
0008d 89 85 44 01 00
|
|
00 mov DWORD PTR img_n$[rbp], eax
|
|
|
|
; 5295 :
|
|
; 5296 : int output_bytes = out_n * bytes;
|
|
|
|
00093 8b 85 f8 04 00
|
|
00 mov eax, DWORD PTR out_n$[rbp]
|
|
00099 0f af 45 04 imul eax, DWORD PTR bytes$[rbp]
|
|
0009d 89 85 64 01 00
|
|
00 mov DWORD PTR output_bytes$[rbp], eax
|
|
|
|
; 5297 : int filter_bytes = img_n * bytes;
|
|
|
|
000a3 8b 85 44 01 00
|
|
00 mov eax, DWORD PTR img_n$[rbp]
|
|
000a9 0f af 45 04 imul eax, DWORD PTR bytes$[rbp]
|
|
000ad 89 85 84 01 00
|
|
00 mov DWORD PTR filter_bytes$[rbp], eax
|
|
|
|
; 5298 : int width = x;
|
|
|
|
000b3 8b 85 00 05 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
000b9 89 85 a4 01 00
|
|
00 mov DWORD PTR width$[rbp], eax
|
|
|
|
; 5299 :
|
|
; 5300 : STBI_ASSERT(out_n == s->img_n || out_n == s->img_n + 1);
|
|
|
|
000bf 48 8b 45 28 mov rax, QWORD PTR s$[rbp]
|
|
000c3 8b 40 08 mov eax, DWORD PTR [rax+8]
|
|
000c6 39 85 f8 04 00
|
|
00 cmp DWORD PTR out_n$[rbp], eax
|
|
000cc 74 2d je SHORT $LN83@stbi__crea
|
|
000ce 48 8b 45 28 mov rax, QWORD PTR s$[rbp]
|
|
000d2 8b 40 08 mov eax, DWORD PTR [rax+8]
|
|
000d5 ff c0 inc eax
|
|
000d7 39 85 f8 04 00
|
|
00 cmp DWORD PTR out_n$[rbp], eax
|
|
000dd 74 1c je SHORT $LN83@stbi__crea
|
|
000df 41 b8 b4 14 00
|
|
00 mov r8d, 5300 ; 000014b4H
|
|
000e5 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@
|
|
000ec 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@
|
|
000f3 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__wassert
|
|
000f9 33 c0 xor eax, eax
|
|
$LN83@stbi__crea:
|
|
|
|
; 5301 : a->out = (stbi_uc *)stbi__malloc_mad3(x, y, output_bytes,
|
|
|
|
000fb 45 33 c9 xor r9d, r9d
|
|
000fe 44 8b 85 64 01
|
|
00 00 mov r8d, DWORD PTR output_bytes$[rbp]
|
|
00105 8b 95 08 05 00
|
|
00 mov edx, DWORD PTR y$[rbp]
|
|
0010b 8b 8d 00 05 00
|
|
00 mov ecx, DWORD PTR x$[rbp]
|
|
00111 e8 00 00 00 00 call stbi__malloc_mad3
|
|
00116 48 8b 8d e0 04
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
0011d 48 89 41 18 mov QWORD PTR [rcx+24], rax
|
|
|
|
; 5302 : 0); // extra bytes to write off the end into
|
|
; 5303 : if (!a->out)
|
|
|
|
00121 48 8b 85 e0 04
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00128 48 83 78 18 00 cmp QWORD PTR [rax+24], 0
|
|
0012d 75 11 jne SHORT $LN46@stbi__crea
|
|
|
|
; 5304 : return stbi__err("outofmem", "Out of memory");
|
|
|
|
0012f 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@
|
|
00136 e8 00 00 00 00 call stbi__err
|
|
0013b e9 3c 0c 00 00 jmp $LN1@stbi__crea
|
|
$LN46@stbi__crea:
|
|
|
|
; 5305 :
|
|
; 5306 : // note: error exits here don't need to clean up a->out individually,
|
|
; 5307 : // stbi__do_png always does on error.
|
|
; 5308 : if (!stbi__mad3sizes_valid(img_n, x, depth, 7))
|
|
|
|
00140 41 b9 07 00 00
|
|
00 mov r9d, 7
|
|
00146 44 8b 85 10 05
|
|
00 00 mov r8d, DWORD PTR depth$[rbp]
|
|
0014d 8b 95 00 05 00
|
|
00 mov edx, DWORD PTR x$[rbp]
|
|
00153 8b 8d 44 01 00
|
|
00 mov ecx, DWORD PTR img_n$[rbp]
|
|
00159 e8 00 00 00 00 call stbi__mad3sizes_valid
|
|
0015e 85 c0 test eax, eax
|
|
00160 75 11 jne SHORT $LN47@stbi__crea
|
|
|
|
; 5309 : return stbi__err("too large", "Corrupt PNG");
|
|
|
|
00162 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@
|
|
00169 e8 00 00 00 00 call stbi__err
|
|
0016e e9 09 0c 00 00 jmp $LN1@stbi__crea
|
|
$LN47@stbi__crea:
|
|
|
|
; 5310 : img_width_bytes = (((img_n * x * depth) + 7) >> 3);
|
|
|
|
00173 8b 85 44 01 00
|
|
00 mov eax, DWORD PTR img_n$[rbp]
|
|
00179 0f af 85 00 05
|
|
00 00 imul eax, DWORD PTR x$[rbp]
|
|
00180 0f af 85 10 05
|
|
00 00 imul eax, DWORD PTR depth$[rbp]
|
|
00187 83 c0 07 add eax, 7
|
|
0018a c1 e8 03 shr eax, 3
|
|
0018d 89 85 c4 00 00
|
|
00 mov DWORD PTR img_width_bytes$[rbp], eax
|
|
|
|
; 5311 : if (!stbi__mad2sizes_valid(img_width_bytes, y, img_width_bytes))
|
|
|
|
00193 44 8b 85 c4 00
|
|
00 00 mov r8d, DWORD PTR img_width_bytes$[rbp]
|
|
0019a 8b 95 08 05 00
|
|
00 mov edx, DWORD PTR y$[rbp]
|
|
001a0 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR img_width_bytes$[rbp]
|
|
001a6 e8 00 00 00 00 call stbi__mad2sizes_valid
|
|
001ab 85 c0 test eax, eax
|
|
001ad 75 11 jne SHORT $LN48@stbi__crea
|
|
|
|
; 5312 : return stbi__err("too large", "Corrupt PNG");
|
|
|
|
001af 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_09OJDLMMBJ@too?5large@
|
|
001b6 e8 00 00 00 00 call stbi__err
|
|
001bb e9 bc 0b 00 00 jmp $LN1@stbi__crea
|
|
$LN48@stbi__crea:
|
|
|
|
; 5313 : img_len = (img_width_bytes + 1) * y;
|
|
|
|
001c0 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR img_width_bytes$[rbp]
|
|
001c6 ff c0 inc eax
|
|
001c8 0f af 85 08 05
|
|
00 00 imul eax, DWORD PTR y$[rbp]
|
|
001cf 89 85 a4 00 00
|
|
00 mov DWORD PTR img_len$[rbp], eax
|
|
|
|
; 5314 :
|
|
; 5315 : // we used to check for exact match between raw_len and img_len on non-interlaced PNGs,
|
|
; 5316 : // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros),
|
|
; 5317 : // so just check for raw_len < img_len always.
|
|
; 5318 : if (raw_len < img_len)
|
|
|
|
001d5 8b 85 a4 00 00
|
|
00 mov eax, DWORD PTR img_len$[rbp]
|
|
001db 39 85 f0 04 00
|
|
00 cmp DWORD PTR raw_len$[rbp], eax
|
|
001e1 73 11 jae SHORT $LN49@stbi__crea
|
|
|
|
; 5319 : return stbi__err("not enough pixels", "Corrupt PNG");
|
|
|
|
001e3 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BC@BHMPBBMG@not?5enough?5pixels@
|
|
001ea e8 00 00 00 00 call stbi__err
|
|
001ef e9 88 0b 00 00 jmp $LN1@stbi__crea
|
|
$LN49@stbi__crea:
|
|
|
|
; 5320 :
|
|
; 5321 : // Allocate two scan lines worth of filter workspace buffer.
|
|
; 5322 : filter_buf = (stbi_uc *)stbi__malloc_mad2(img_width_bytes, 2, 0);
|
|
|
|
001f4 45 33 c0 xor r8d, r8d
|
|
001f7 ba 02 00 00 00 mov edx, 2
|
|
001fc 8b 8d c4 00 00
|
|
00 mov ecx, DWORD PTR img_width_bytes$[rbp]
|
|
00202 e8 00 00 00 00 call stbi__malloc_mad2
|
|
00207 48 89 85 e8 00
|
|
00 00 mov QWORD PTR filter_buf$[rbp], rax
|
|
|
|
; 5323 : if (!filter_buf)
|
|
|
|
0020e 48 83 bd e8 00
|
|
00 00 00 cmp QWORD PTR filter_buf$[rbp], 0
|
|
00216 75 11 jne SHORT $LN50@stbi__crea
|
|
|
|
; 5324 : return stbi__err("outofmem", "Out of memory");
|
|
|
|
00218 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_08NOGIMCHF@outofmem@
|
|
0021f e8 00 00 00 00 call stbi__err
|
|
00224 e9 53 0b 00 00 jmp $LN1@stbi__crea
|
|
$LN50@stbi__crea:
|
|
|
|
; 5325 :
|
|
; 5326 : // Filtering for low-bit-depth images
|
|
; 5327 : if (depth < 8) {
|
|
|
|
00229 83 bd 10 05 00
|
|
00 08 cmp DWORD PTR depth$[rbp], 8
|
|
00230 7d 16 jge SHORT $LN51@stbi__crea
|
|
|
|
; 5328 : filter_bytes = 1;
|
|
|
|
00232 c7 85 84 01 00
|
|
00 01 00 00 00 mov DWORD PTR filter_bytes$[rbp], 1
|
|
|
|
; 5329 : width = img_width_bytes;
|
|
|
|
0023c 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR img_width_bytes$[rbp]
|
|
00242 89 85 a4 01 00
|
|
00 mov DWORD PTR width$[rbp], eax
|
|
$LN51@stbi__crea:
|
|
|
|
; 5330 : }
|
|
; 5331 :
|
|
; 5332 : for (j = 0; j < y; ++j) {
|
|
|
|
00248 c7 45 64 00 00
|
|
00 00 mov DWORD PTR j$[rbp], 0
|
|
0024f eb 08 jmp SHORT $LN4@stbi__crea
|
|
$LN2@stbi__crea:
|
|
00251 8b 45 64 mov eax, DWORD PTR j$[rbp]
|
|
00254 ff c0 inc eax
|
|
00256 89 45 64 mov DWORD PTR j$[rbp], eax
|
|
$LN4@stbi__crea:
|
|
00259 8b 85 08 05 00
|
|
00 mov eax, DWORD PTR y$[rbp]
|
|
0025f 39 45 64 cmp DWORD PTR j$[rbp], eax
|
|
00262 0f 83 f4 0a 00
|
|
00 jae $LN3@stbi__crea
|
|
|
|
; 5333 : // cur/prior filter buffers alternate
|
|
; 5334 : stbi_uc *cur = filter_buf + (j & 1) * img_width_bytes;
|
|
|
|
00268 8b 45 64 mov eax, DWORD PTR j$[rbp]
|
|
0026b 83 e0 01 and eax, 1
|
|
0026e 0f af 85 c4 00
|
|
00 00 imul eax, DWORD PTR img_width_bytes$[rbp]
|
|
00275 8b c0 mov eax, eax
|
|
00277 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR filter_buf$[rbp]
|
|
0027e 48 03 c8 add rcx, rax
|
|
00281 48 8b c1 mov rax, rcx
|
|
00284 48 89 85 c8 01
|
|
00 00 mov QWORD PTR cur$1[rbp], rax
|
|
|
|
; 5335 : stbi_uc *prior = filter_buf + (~j & 1) * img_width_bytes;
|
|
|
|
0028b 8b 45 64 mov eax, DWORD PTR j$[rbp]
|
|
0028e f7 d0 not eax
|
|
00290 83 e0 01 and eax, 1
|
|
00293 0f af 85 c4 00
|
|
00 00 imul eax, DWORD PTR img_width_bytes$[rbp]
|
|
0029a 8b c0 mov eax, eax
|
|
0029c 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR filter_buf$[rbp]
|
|
002a3 48 03 c8 add rcx, rax
|
|
002a6 48 8b c1 mov rax, rcx
|
|
002a9 48 89 85 e8 01
|
|
00 00 mov QWORD PTR prior$2[rbp], rax
|
|
|
|
; 5336 : stbi_uc *dest = a->out + stride * j;
|
|
|
|
002b0 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR stride$[rbp]
|
|
002b6 0f af 45 64 imul eax, DWORD PTR j$[rbp]
|
|
002ba 8b c0 mov eax, eax
|
|
002bc 48 8b 8d e0 04
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
002c3 48 03 41 18 add rax, QWORD PTR [rcx+24]
|
|
002c7 48 89 85 08 02
|
|
00 00 mov QWORD PTR dest$3[rbp], rax
|
|
|
|
; 5337 : int nk = width * filter_bytes;
|
|
|
|
002ce 8b 85 a4 01 00
|
|
00 mov eax, DWORD PTR width$[rbp]
|
|
002d4 0f af 85 84 01
|
|
00 00 imul eax, DWORD PTR filter_bytes$[rbp]
|
|
002db 89 85 24 02 00
|
|
00 mov DWORD PTR nk$4[rbp], eax
|
|
|
|
; 5338 : int filter = *raw++;
|
|
|
|
002e1 48 8b 85 e8 04
|
|
00 00 mov rax, QWORD PTR raw$[rbp]
|
|
002e8 0f b6 00 movzx eax, BYTE PTR [rax]
|
|
002eb 89 85 44 02 00
|
|
00 mov DWORD PTR filter$5[rbp], eax
|
|
002f1 48 8b 85 e8 04
|
|
00 00 mov rax, QWORD PTR raw$[rbp]
|
|
002f8 48 ff c0 inc rax
|
|
002fb 48 89 85 e8 04
|
|
00 00 mov QWORD PTR raw$[rbp], rax
|
|
|
|
; 5339 :
|
|
; 5340 : // check filter type
|
|
; 5341 : if (filter > 4) {
|
|
|
|
00302 83 bd 44 02 00
|
|
00 04 cmp DWORD PTR filter$5[rbp], 4
|
|
00309 7e 17 jle SHORT $LN52@stbi__crea
|
|
|
|
; 5342 : all_ok = stbi__err("invalid filter", "Corrupt PNG");
|
|
|
|
0030b 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0P@FBBCPGMN@invalid?5filter@
|
|
00312 e8 00 00 00 00 call stbi__err
|
|
00317 89 85 04 01 00
|
|
00 mov DWORD PTR all_ok$[rbp], eax
|
|
|
|
; 5343 : break;
|
|
|
|
0031d e9 3a 0a 00 00 jmp $LN3@stbi__crea
|
|
$LN52@stbi__crea:
|
|
|
|
; 5344 : }
|
|
; 5345 :
|
|
; 5346 : // if first row, use special filter that doesn't sample previous row
|
|
; 5347 : if (j == 0)
|
|
|
|
00322 83 7d 64 00 cmp DWORD PTR j$[rbp], 0
|
|
00326 75 18 jne SHORT $LN53@stbi__crea
|
|
|
|
; 5348 : filter = first_row_filter[filter];
|
|
|
|
00328 48 63 85 44 02
|
|
00 00 movsxd rax, DWORD PTR filter$5[rbp]
|
|
0032f 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:first_row_filter
|
|
00336 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
0033a 89 85 44 02 00
|
|
00 mov DWORD PTR filter$5[rbp], eax
|
|
$LN53@stbi__crea:
|
|
|
|
; 5349 :
|
|
; 5350 : // perform actual filtering
|
|
; 5351 : switch (filter) {
|
|
|
|
00340 8b 85 44 02 00
|
|
00 mov eax, DWORD PTR filter$5[rbp]
|
|
00346 89 85 b4 04 00
|
|
00 mov DWORD PTR tv181[rbp], eax
|
|
0034c 83 bd b4 04 00
|
|
00 05 cmp DWORD PTR tv181[rbp], 5
|
|
00353 0f 87 0d 04 00
|
|
00 ja $LN5@stbi__crea
|
|
00359 48 63 85 b4 04
|
|
00 00 movsxd rax, DWORD PTR tv181[rbp]
|
|
00360 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__ImageBase
|
|
00367 8b 84 81 00 00
|
|
00 00 mov eax, DWORD PTR $LN89@stbi__crea[rcx+rax*4]
|
|
0036e 48 03 c1 add rax, rcx
|
|
00371 ff e0 jmp rax
|
|
$LN54@stbi__crea:
|
|
|
|
; 5352 : case STBI__F_none:
|
|
; 5353 : memcpy(cur, raw, nk);
|
|
|
|
00373 48 63 85 24 02
|
|
00 00 movsxd rax, DWORD PTR nk$4[rbp]
|
|
0037a 4c 8b c0 mov r8, rax
|
|
0037d 48 8b 95 e8 04
|
|
00 00 mov rdx, QWORD PTR raw$[rbp]
|
|
00384 48 8b 8d c8 01
|
|
00 00 mov rcx, QWORD PTR cur$1[rbp]
|
|
0038b e8 00 00 00 00 call memcpy
|
|
00390 90 npad 1
|
|
|
|
; 5354 : break;
|
|
|
|
00391 e9 d0 03 00 00 jmp $LN5@stbi__crea
|
|
$LN55@stbi__crea:
|
|
|
|
; 5355 : case STBI__F_sub:
|
|
; 5356 : memcpy(cur, raw, filter_bytes);
|
|
|
|
00396 48 63 85 84 01
|
|
00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
|
|
0039d 4c 8b c0 mov r8, rax
|
|
003a0 48 8b 95 e8 04
|
|
00 00 mov rdx, QWORD PTR raw$[rbp]
|
|
003a7 48 8b 8d c8 01
|
|
00 00 mov rcx, QWORD PTR cur$1[rbp]
|
|
003ae e8 00 00 00 00 call memcpy
|
|
003b3 90 npad 1
|
|
|
|
; 5357 : for (k = filter_bytes; k < nk; ++k)
|
|
|
|
003b4 8b 85 84 01 00
|
|
00 mov eax, DWORD PTR filter_bytes$[rbp]
|
|
003ba 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
003c0 eb 0e jmp SHORT $LN9@stbi__crea
|
|
$LN7@stbi__crea:
|
|
003c2 8b 85 24 01 00
|
|
00 mov eax, DWORD PTR k$[rbp]
|
|
003c8 ff c0 inc eax
|
|
003ca 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
$LN9@stbi__crea:
|
|
003d0 8b 85 24 02 00
|
|
00 mov eax, DWORD PTR nk$4[rbp]
|
|
003d6 39 85 24 01 00
|
|
00 cmp DWORD PTR k$[rbp], eax
|
|
003dc 7d 4a jge SHORT $LN8@stbi__crea
|
|
|
|
; 5358 : cur[k] = STBI__BYTECAST(raw[k] + cur[k - filter_bytes]);
|
|
|
|
003de 48 63 85 24 01
|
|
00 00 movsxd rax, DWORD PTR k$[rbp]
|
|
003e5 48 8b 8d e8 04
|
|
00 00 mov rcx, QWORD PTR raw$[rbp]
|
|
003ec 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
003f0 8b 8d 84 01 00
|
|
00 mov ecx, DWORD PTR filter_bytes$[rbp]
|
|
003f6 8b 95 24 01 00
|
|
00 mov edx, DWORD PTR k$[rbp]
|
|
003fc 2b d1 sub edx, ecx
|
|
003fe 8b ca mov ecx, edx
|
|
00400 48 63 c9 movsxd rcx, ecx
|
|
00403 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
0040a 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
0040e 03 c1 add eax, ecx
|
|
00410 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
00415 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
0041c 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00423 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
00426 eb 9a jmp SHORT $LN7@stbi__crea
|
|
$LN8@stbi__crea:
|
|
|
|
; 5359 : break;
|
|
|
|
00428 e9 39 03 00 00 jmp $LN5@stbi__crea
|
|
$LN56@stbi__crea:
|
|
|
|
; 5360 : case STBI__F_up:
|
|
; 5361 : for (k = 0; k < nk; ++k)
|
|
|
|
0042d c7 85 24 01 00
|
|
00 00 00 00 00 mov DWORD PTR k$[rbp], 0
|
|
00437 eb 0e jmp SHORT $LN12@stbi__crea
|
|
$LN10@stbi__crea:
|
|
00439 8b 85 24 01 00
|
|
00 mov eax, DWORD PTR k$[rbp]
|
|
0043f ff c0 inc eax
|
|
00441 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
$LN12@stbi__crea:
|
|
00447 8b 85 24 02 00
|
|
00 mov eax, DWORD PTR nk$4[rbp]
|
|
0044d 39 85 24 01 00
|
|
00 cmp DWORD PTR k$[rbp], eax
|
|
00453 7d 3e jge SHORT $LN11@stbi__crea
|
|
|
|
; 5362 : cur[k] = STBI__BYTECAST(raw[k] + prior[k]);
|
|
|
|
00455 48 63 85 24 01
|
|
00 00 movsxd rax, DWORD PTR k$[rbp]
|
|
0045c 48 8b 8d e8 04
|
|
00 00 mov rcx, QWORD PTR raw$[rbp]
|
|
00463 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
00467 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
0046e 48 8b 95 e8 01
|
|
00 00 mov rdx, QWORD PTR prior$2[rbp]
|
|
00475 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
00479 03 c1 add eax, ecx
|
|
0047b 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
00480 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
00487 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
0048e 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
00491 eb a6 jmp SHORT $LN10@stbi__crea
|
|
$LN11@stbi__crea:
|
|
|
|
; 5363 : break;
|
|
|
|
00493 e9 ce 02 00 00 jmp $LN5@stbi__crea
|
|
$LN57@stbi__crea:
|
|
|
|
; 5364 : case STBI__F_avg:
|
|
; 5365 : for (k = 0; k < filter_bytes; ++k)
|
|
|
|
00498 c7 85 24 01 00
|
|
00 00 00 00 00 mov DWORD PTR k$[rbp], 0
|
|
004a2 eb 0e jmp SHORT $LN15@stbi__crea
|
|
$LN13@stbi__crea:
|
|
004a4 8b 85 24 01 00
|
|
00 mov eax, DWORD PTR k$[rbp]
|
|
004aa ff c0 inc eax
|
|
004ac 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
$LN15@stbi__crea:
|
|
004b2 8b 85 84 01 00
|
|
00 mov eax, DWORD PTR filter_bytes$[rbp]
|
|
004b8 39 85 24 01 00
|
|
00 cmp DWORD PTR k$[rbp], eax
|
|
004be 7d 40 jge SHORT $LN14@stbi__crea
|
|
|
|
; 5366 : cur[k] = STBI__BYTECAST(raw[k] + (prior[k] >> 1));
|
|
|
|
004c0 48 63 85 24 01
|
|
00 00 movsxd rax, DWORD PTR k$[rbp]
|
|
004c7 48 8b 8d e8 04
|
|
00 00 mov rcx, QWORD PTR raw$[rbp]
|
|
004ce 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
004d2 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
004d9 48 8b 95 e8 01
|
|
00 00 mov rdx, QWORD PTR prior$2[rbp]
|
|
004e0 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
004e4 d1 f9 sar ecx, 1
|
|
004e6 03 c1 add eax, ecx
|
|
004e8 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
004ed 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
004f4 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
004fb 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
004fe eb a4 jmp SHORT $LN13@stbi__crea
|
|
$LN14@stbi__crea:
|
|
|
|
; 5367 : for (k = filter_bytes; k < nk; ++k)
|
|
|
|
00500 8b 85 84 01 00
|
|
00 mov eax, DWORD PTR filter_bytes$[rbp]
|
|
00506 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
0050c eb 0e jmp SHORT $LN18@stbi__crea
|
|
$LN16@stbi__crea:
|
|
0050e 8b 85 24 01 00
|
|
00 mov eax, DWORD PTR k$[rbp]
|
|
00514 ff c0 inc eax
|
|
00516 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
$LN18@stbi__crea:
|
|
0051c 8b 85 24 02 00
|
|
00 mov eax, DWORD PTR nk$4[rbp]
|
|
00522 39 85 24 01 00
|
|
00 cmp DWORD PTR k$[rbp], eax
|
|
00528 7d 64 jge SHORT $LN17@stbi__crea
|
|
|
|
; 5368 : cur[k] = STBI__BYTECAST(raw[k] +
|
|
|
|
0052a 48 63 85 24 01
|
|
00 00 movsxd rax, DWORD PTR k$[rbp]
|
|
00531 48 8b 8d e8 04
|
|
00 00 mov rcx, QWORD PTR raw$[rbp]
|
|
00538 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
0053c 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
00543 48 8b 95 e8 01
|
|
00 00 mov rdx, QWORD PTR prior$2[rbp]
|
|
0054a 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
0054e 8b 95 84 01 00
|
|
00 mov edx, DWORD PTR filter_bytes$[rbp]
|
|
00554 44 8b 85 24 01
|
|
00 00 mov r8d, DWORD PTR k$[rbp]
|
|
0055b 44 2b c2 sub r8d, edx
|
|
0055e 41 8b d0 mov edx, r8d
|
|
00561 48 63 d2 movsxd rdx, edx
|
|
00564 4c 8b 85 c8 01
|
|
00 00 mov r8, QWORD PTR cur$1[rbp]
|
|
0056b 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx]
|
|
00570 03 ca add ecx, edx
|
|
00572 d1 f9 sar ecx, 1
|
|
00574 03 c1 add eax, ecx
|
|
00576 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
0057b 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
00582 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00589 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
0058c eb 80 jmp SHORT $LN16@stbi__crea
|
|
$LN17@stbi__crea:
|
|
|
|
; 5369 : ((prior[k] + cur[k - filter_bytes]) >> 1));
|
|
; 5370 : break;
|
|
|
|
0058e e9 d3 01 00 00 jmp $LN5@stbi__crea
|
|
$LN58@stbi__crea:
|
|
|
|
; 5371 : case STBI__F_paeth:
|
|
; 5372 : for (k = 0; k < filter_bytes; ++k)
|
|
|
|
00593 c7 85 24 01 00
|
|
00 00 00 00 00 mov DWORD PTR k$[rbp], 0
|
|
0059d eb 0e jmp SHORT $LN21@stbi__crea
|
|
$LN19@stbi__crea:
|
|
0059f 8b 85 24 01 00
|
|
00 mov eax, DWORD PTR k$[rbp]
|
|
005a5 ff c0 inc eax
|
|
005a7 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
$LN21@stbi__crea:
|
|
005ad 8b 85 84 01 00
|
|
00 mov eax, DWORD PTR filter_bytes$[rbp]
|
|
005b3 39 85 24 01 00
|
|
00 cmp DWORD PTR k$[rbp], eax
|
|
005b9 7d 3e jge SHORT $LN20@stbi__crea
|
|
|
|
; 5373 : cur[k] = STBI__BYTECAST(
|
|
|
|
005bb 48 63 85 24 01
|
|
00 00 movsxd rax, DWORD PTR k$[rbp]
|
|
005c2 48 8b 8d e8 04
|
|
00 00 mov rcx, QWORD PTR raw$[rbp]
|
|
005c9 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
005cd 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
005d4 48 8b 95 e8 01
|
|
00 00 mov rdx, QWORD PTR prior$2[rbp]
|
|
005db 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
005df 03 c1 add eax, ecx
|
|
005e1 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
005e6 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
005ed 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
005f4 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
005f7 eb a6 jmp SHORT $LN19@stbi__crea
|
|
$LN20@stbi__crea:
|
|
|
|
; 5374 : raw[k] + prior[k]); // prior[k] == stbi__paeth(0,prior[k],0)
|
|
; 5375 : for (k = filter_bytes; k < nk; ++k)
|
|
|
|
005f9 8b 85 84 01 00
|
|
00 mov eax, DWORD PTR filter_bytes$[rbp]
|
|
005ff 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
00605 eb 0e jmp SHORT $LN24@stbi__crea
|
|
$LN22@stbi__crea:
|
|
00607 8b 85 24 01 00
|
|
00 mov eax, DWORD PTR k$[rbp]
|
|
0060d ff c0 inc eax
|
|
0060f 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
$LN24@stbi__crea:
|
|
00615 8b 85 24 02 00
|
|
00 mov eax, DWORD PTR nk$4[rbp]
|
|
0061b 39 85 24 01 00
|
|
00 cmp DWORD PTR k$[rbp], eax
|
|
00621 0f 8d a6 00 00
|
|
00 jge $LN23@stbi__crea
|
|
|
|
; 5376 : cur[k] = STBI__BYTECAST(raw[k] +
|
|
|
|
00627 48 63 85 24 01
|
|
00 00 movsxd rax, DWORD PTR k$[rbp]
|
|
0062e 48 8b 8d e8 04
|
|
00 00 mov rcx, QWORD PTR raw$[rbp]
|
|
00635 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
00639 89 85 b4 04 00
|
|
00 mov DWORD PTR tv287[rbp], eax
|
|
0063f 8b 8d 84 01 00
|
|
00 mov ecx, DWORD PTR filter_bytes$[rbp]
|
|
00645 8b 95 24 01 00
|
|
00 mov edx, DWORD PTR k$[rbp]
|
|
0064b 2b d1 sub edx, ecx
|
|
0064d 8b ca mov ecx, edx
|
|
0064f 48 63 c9 movsxd rcx, ecx
|
|
00652 48 8b 95 e8 01
|
|
00 00 mov rdx, QWORD PTR prior$2[rbp]
|
|
00659 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
0065d 48 63 95 24 01
|
|
00 00 movsxd rdx, DWORD PTR k$[rbp]
|
|
00664 4c 8b 85 e8 01
|
|
00 00 mov r8, QWORD PTR prior$2[rbp]
|
|
0066b 41 0f b6 14 10 movzx edx, BYTE PTR [r8+rdx]
|
|
00670 44 8b 85 84 01
|
|
00 00 mov r8d, DWORD PTR filter_bytes$[rbp]
|
|
00677 44 8b 8d 24 01
|
|
00 00 mov r9d, DWORD PTR k$[rbp]
|
|
0067e 45 2b c8 sub r9d, r8d
|
|
00681 45 8b c1 mov r8d, r9d
|
|
00684 4d 63 c0 movsxd r8, r8d
|
|
00687 4c 8b 8d c8 01
|
|
00 00 mov r9, QWORD PTR cur$1[rbp]
|
|
0068e 47 0f b6 04 01 movzx r8d, BYTE PTR [r9+r8]
|
|
00693 44 89 85 b8 04
|
|
00 00 mov DWORD PTR tv304[rbp], r8d
|
|
0069a 44 8b c1 mov r8d, ecx
|
|
0069d 8b 8d b8 04 00
|
|
00 mov ecx, DWORD PTR tv304[rbp]
|
|
006a3 e8 00 00 00 00 call stbi__paeth
|
|
006a8 8b 8d b4 04 00
|
|
00 mov ecx, DWORD PTR tv287[rbp]
|
|
006ae 03 c8 add ecx, eax
|
|
006b0 8b c1 mov eax, ecx
|
|
006b2 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
006b7 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
006be 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
006c5 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
006c8 e9 3a ff ff ff jmp $LN22@stbi__crea
|
|
$LN23@stbi__crea:
|
|
|
|
; 5377 : stbi__paeth(cur[k - filter_bytes], prior[k],
|
|
; 5378 : prior[k - filter_bytes]));
|
|
; 5379 : break;
|
|
|
|
006cd e9 94 00 00 00 jmp $LN5@stbi__crea
|
|
$LN59@stbi__crea:
|
|
|
|
; 5380 : case STBI__F_avg_first:
|
|
; 5381 : memcpy(cur, raw, filter_bytes);
|
|
|
|
006d2 48 63 85 84 01
|
|
00 00 movsxd rax, DWORD PTR filter_bytes$[rbp]
|
|
006d9 4c 8b c0 mov r8, rax
|
|
006dc 48 8b 95 e8 04
|
|
00 00 mov rdx, QWORD PTR raw$[rbp]
|
|
006e3 48 8b 8d c8 01
|
|
00 00 mov rcx, QWORD PTR cur$1[rbp]
|
|
006ea e8 00 00 00 00 call memcpy
|
|
006ef 90 npad 1
|
|
|
|
; 5382 : for (k = filter_bytes; k < nk; ++k)
|
|
|
|
006f0 8b 85 84 01 00
|
|
00 mov eax, DWORD PTR filter_bytes$[rbp]
|
|
006f6 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
006fc eb 0e jmp SHORT $LN27@stbi__crea
|
|
$LN25@stbi__crea:
|
|
006fe 8b 85 24 01 00
|
|
00 mov eax, DWORD PTR k$[rbp]
|
|
00704 ff c0 inc eax
|
|
00706 89 85 24 01 00
|
|
00 mov DWORD PTR k$[rbp], eax
|
|
$LN27@stbi__crea:
|
|
0070c 8b 85 24 02 00
|
|
00 mov eax, DWORD PTR nk$4[rbp]
|
|
00712 39 85 24 01 00
|
|
00 cmp DWORD PTR k$[rbp], eax
|
|
00718 7d 4c jge SHORT $LN26@stbi__crea
|
|
|
|
; 5383 : cur[k] = STBI__BYTECAST(raw[k] + (cur[k - filter_bytes] >> 1));
|
|
|
|
0071a 48 63 85 24 01
|
|
00 00 movsxd rax, DWORD PTR k$[rbp]
|
|
00721 48 8b 8d e8 04
|
|
00 00 mov rcx, QWORD PTR raw$[rbp]
|
|
00728 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
0072c 8b 8d 84 01 00
|
|
00 mov ecx, DWORD PTR filter_bytes$[rbp]
|
|
00732 8b 95 24 01 00
|
|
00 mov edx, DWORD PTR k$[rbp]
|
|
00738 2b d1 sub edx, ecx
|
|
0073a 8b ca mov ecx, edx
|
|
0073c 48 63 c9 movsxd rcx, ecx
|
|
0073f 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00746 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
0074a d1 f9 sar ecx, 1
|
|
0074c 03 c1 add eax, ecx
|
|
0074e 25 ff 00 00 00 and eax, 255 ; 000000ffH
|
|
00753 48 63 8d 24 01
|
|
00 00 movsxd rcx, DWORD PTR k$[rbp]
|
|
0075a 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00761 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
00764 eb 98 jmp SHORT $LN25@stbi__crea
|
|
$LN26@stbi__crea:
|
|
$LN5@stbi__crea:
|
|
|
|
; 5384 : break;
|
|
; 5385 : }
|
|
; 5386 :
|
|
; 5387 : raw += nk;
|
|
|
|
00766 48 63 85 24 02
|
|
00 00 movsxd rax, DWORD PTR nk$4[rbp]
|
|
0076d 48 8b 8d e8 04
|
|
00 00 mov rcx, QWORD PTR raw$[rbp]
|
|
00774 48 03 c8 add rcx, rax
|
|
00777 48 8b c1 mov rax, rcx
|
|
0077a 48 89 85 e8 04
|
|
00 00 mov QWORD PTR raw$[rbp], rax
|
|
|
|
; 5388 :
|
|
; 5389 : // expand decoded bits in cur to dest, also adding an extra alpha channel if desired
|
|
; 5390 : if (depth < 8) {
|
|
|
|
00781 83 bd 10 05 00
|
|
00 08 cmp DWORD PTR depth$[rbp], 8
|
|
00788 0f 8d 82 02 00
|
|
00 jge $LN60@stbi__crea
|
|
|
|
; 5391 : stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] :
|
|
|
|
0078e 83 bd 18 05 00
|
|
00 00 cmp DWORD PTR color$[rbp], 0
|
|
00795 75 1a jne SHORT $LN84@stbi__crea
|
|
00797 48 63 85 10 05
|
|
00 00 movsxd rax, DWORD PTR depth$[rbp]
|
|
0079e 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__depth_scale_table
|
|
007a5 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
007a9 89 85 b4 04 00
|
|
00 mov DWORD PTR tv340[rbp], eax
|
|
007af eb 0a jmp SHORT $LN85@stbi__crea
|
|
$LN84@stbi__crea:
|
|
007b1 c7 85 b4 04 00
|
|
00 01 00 00 00 mov DWORD PTR tv340[rbp], 1
|
|
$LN85@stbi__crea:
|
|
007bb 0f b6 85 b4 04
|
|
00 00 movzx eax, BYTE PTR tv340[rbp]
|
|
007c2 88 85 64 02 00
|
|
00 mov BYTE PTR scale$6[rbp], al
|
|
|
|
; 5392 : 1; // scale grayscale values to 0..255 range
|
|
; 5393 : stbi_uc *in = cur;
|
|
|
|
007c8 48 8b 85 c8 01
|
|
00 00 mov rax, QWORD PTR cur$1[rbp]
|
|
007cf 48 89 85 88 02
|
|
00 00 mov QWORD PTR in$7[rbp], rax
|
|
|
|
; 5394 : stbi_uc *out = dest;
|
|
|
|
007d6 48 8b 85 08 02
|
|
00 00 mov rax, QWORD PTR dest$3[rbp]
|
|
007dd 48 89 85 a8 02
|
|
00 00 mov QWORD PTR out$8[rbp], rax
|
|
|
|
; 5395 : stbi_uc inb = 0;
|
|
|
|
007e4 c6 85 c4 02 00
|
|
00 00 mov BYTE PTR inb$9[rbp], 0
|
|
|
|
; 5396 : stbi__uint32 nsmp = x * img_n;
|
|
|
|
007eb 8b 85 00 05 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
007f1 0f af 85 44 01
|
|
00 00 imul eax, DWORD PTR img_n$[rbp]
|
|
007f8 89 85 e4 02 00
|
|
00 mov DWORD PTR nsmp$10[rbp], eax
|
|
|
|
; 5397 :
|
|
; 5398 : // expand bits to bytes first
|
|
; 5399 : if (depth == 4) {
|
|
|
|
007fe 83 bd 10 05 00
|
|
00 04 cmp DWORD PTR depth$[rbp], 4
|
|
00805 0f 85 8c 00 00
|
|
00 jne $LN62@stbi__crea
|
|
|
|
; 5400 : for (i = 0; i < nsmp; ++i) {
|
|
|
|
0080b c7 45 44 00 00
|
|
00 00 mov DWORD PTR i$[rbp], 0
|
|
00812 eb 08 jmp SHORT $LN30@stbi__crea
|
|
$LN28@stbi__crea:
|
|
00814 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
00817 ff c0 inc eax
|
|
00819 89 45 44 mov DWORD PTR i$[rbp], eax
|
|
$LN30@stbi__crea:
|
|
0081c 8b 85 e4 02 00
|
|
00 mov eax, DWORD PTR nsmp$10[rbp]
|
|
00822 39 45 44 cmp DWORD PTR i$[rbp], eax
|
|
00825 73 6b jae SHORT $LN29@stbi__crea
|
|
|
|
; 5401 : if ((i & 1) == 0)
|
|
|
|
00827 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
0082a 83 e0 01 and eax, 1
|
|
0082d 85 c0 test eax, eax
|
|
0082f 75 21 jne SHORT $LN64@stbi__crea
|
|
|
|
; 5402 : inb = *in++;
|
|
|
|
00831 48 8b 85 88 02
|
|
00 00 mov rax, QWORD PTR in$7[rbp]
|
|
00838 0f b6 00 movzx eax, BYTE PTR [rax]
|
|
0083b 88 85 c4 02 00
|
|
00 mov BYTE PTR inb$9[rbp], al
|
|
00841 48 8b 85 88 02
|
|
00 00 mov rax, QWORD PTR in$7[rbp]
|
|
00848 48 ff c0 inc rax
|
|
0084b 48 89 85 88 02
|
|
00 00 mov QWORD PTR in$7[rbp], rax
|
|
$LN64@stbi__crea:
|
|
|
|
; 5403 : *out++ = scale * (inb >> 4);
|
|
|
|
00852 0f b6 85 64 02
|
|
00 00 movzx eax, BYTE PTR scale$6[rbp]
|
|
00859 0f b6 8d c4 02
|
|
00 00 movzx ecx, BYTE PTR inb$9[rbp]
|
|
00860 c1 f9 04 sar ecx, 4
|
|
00863 0f af c1 imul eax, ecx
|
|
00866 48 8b 8d a8 02
|
|
00 00 mov rcx, QWORD PTR out$8[rbp]
|
|
0086d 88 01 mov BYTE PTR [rcx], al
|
|
0086f 48 8b 85 a8 02
|
|
00 00 mov rax, QWORD PTR out$8[rbp]
|
|
00876 48 ff c0 inc rax
|
|
00879 48 89 85 a8 02
|
|
00 00 mov QWORD PTR out$8[rbp], rax
|
|
|
|
; 5404 : inb <<= 4;
|
|
|
|
00880 0f b6 85 c4 02
|
|
00 00 movzx eax, BYTE PTR inb$9[rbp]
|
|
00887 c0 e0 04 shl al, 4
|
|
0088a 88 85 c4 02 00
|
|
00 mov BYTE PTR inb$9[rbp], al
|
|
|
|
; 5405 : }
|
|
|
|
00890 eb 82 jmp SHORT $LN28@stbi__crea
|
|
$LN29@stbi__crea:
|
|
|
|
; 5406 : } else if (depth == 2) {
|
|
|
|
00892 e9 44 01 00 00 jmp $LN63@stbi__crea
|
|
$LN62@stbi__crea:
|
|
00897 83 bd 10 05 00
|
|
00 02 cmp DWORD PTR depth$[rbp], 2
|
|
0089e 0f 85 8c 00 00
|
|
00 jne $LN65@stbi__crea
|
|
|
|
; 5407 : for (i = 0; i < nsmp; ++i) {
|
|
|
|
008a4 c7 45 44 00 00
|
|
00 00 mov DWORD PTR i$[rbp], 0
|
|
008ab eb 08 jmp SHORT $LN33@stbi__crea
|
|
$LN31@stbi__crea:
|
|
008ad 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
008b0 ff c0 inc eax
|
|
008b2 89 45 44 mov DWORD PTR i$[rbp], eax
|
|
$LN33@stbi__crea:
|
|
008b5 8b 85 e4 02 00
|
|
00 mov eax, DWORD PTR nsmp$10[rbp]
|
|
008bb 39 45 44 cmp DWORD PTR i$[rbp], eax
|
|
008be 73 6b jae SHORT $LN32@stbi__crea
|
|
|
|
; 5408 : if ((i & 3) == 0)
|
|
|
|
008c0 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
008c3 83 e0 03 and eax, 3
|
|
008c6 85 c0 test eax, eax
|
|
008c8 75 21 jne SHORT $LN67@stbi__crea
|
|
|
|
; 5409 : inb = *in++;
|
|
|
|
008ca 48 8b 85 88 02
|
|
00 00 mov rax, QWORD PTR in$7[rbp]
|
|
008d1 0f b6 00 movzx eax, BYTE PTR [rax]
|
|
008d4 88 85 c4 02 00
|
|
00 mov BYTE PTR inb$9[rbp], al
|
|
008da 48 8b 85 88 02
|
|
00 00 mov rax, QWORD PTR in$7[rbp]
|
|
008e1 48 ff c0 inc rax
|
|
008e4 48 89 85 88 02
|
|
00 00 mov QWORD PTR in$7[rbp], rax
|
|
$LN67@stbi__crea:
|
|
|
|
; 5410 : *out++ = scale * (inb >> 6);
|
|
|
|
008eb 0f b6 85 64 02
|
|
00 00 movzx eax, BYTE PTR scale$6[rbp]
|
|
008f2 0f b6 8d c4 02
|
|
00 00 movzx ecx, BYTE PTR inb$9[rbp]
|
|
008f9 c1 f9 06 sar ecx, 6
|
|
008fc 0f af c1 imul eax, ecx
|
|
008ff 48 8b 8d a8 02
|
|
00 00 mov rcx, QWORD PTR out$8[rbp]
|
|
00906 88 01 mov BYTE PTR [rcx], al
|
|
00908 48 8b 85 a8 02
|
|
00 00 mov rax, QWORD PTR out$8[rbp]
|
|
0090f 48 ff c0 inc rax
|
|
00912 48 89 85 a8 02
|
|
00 00 mov QWORD PTR out$8[rbp], rax
|
|
|
|
; 5411 : inb <<= 2;
|
|
|
|
00919 0f b6 85 c4 02
|
|
00 00 movzx eax, BYTE PTR inb$9[rbp]
|
|
00920 c0 e0 02 shl al, 2
|
|
00923 88 85 c4 02 00
|
|
00 mov BYTE PTR inb$9[rbp], al
|
|
|
|
; 5412 : }
|
|
|
|
00929 eb 82 jmp SHORT $LN31@stbi__crea
|
|
$LN32@stbi__crea:
|
|
|
|
; 5413 : } else {
|
|
|
|
0092b e9 ab 00 00 00 jmp $LN66@stbi__crea
|
|
$LN65@stbi__crea:
|
|
|
|
; 5414 : STBI_ASSERT(depth == 1);
|
|
|
|
00930 83 bd 10 05 00
|
|
00 01 cmp DWORD PTR depth$[rbp], 1
|
|
00937 74 1c je SHORT $LN86@stbi__crea
|
|
00939 41 b8 26 15 00
|
|
00 mov r8d, 5414 ; 00001526H
|
|
0093f 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@
|
|
00946 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_1BG@OEFMLIPO@?$AAd?$AAe?$AAp?$AAt?$AAh?$AA?5?$AA?$DN?$AA?$DN?$AA?5?$AA1@
|
|
0094d ff 15 00 00 00
|
|
00 call QWORD PTR __imp__wassert
|
|
00953 33 c0 xor eax, eax
|
|
$LN86@stbi__crea:
|
|
|
|
; 5415 : for (i = 0; i < nsmp; ++i) {
|
|
|
|
00955 c7 45 44 00 00
|
|
00 00 mov DWORD PTR i$[rbp], 0
|
|
0095c eb 08 jmp SHORT $LN36@stbi__crea
|
|
$LN34@stbi__crea:
|
|
0095e 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
00961 ff c0 inc eax
|
|
00963 89 45 44 mov DWORD PTR i$[rbp], eax
|
|
$LN36@stbi__crea:
|
|
00966 8b 85 e4 02 00
|
|
00 mov eax, DWORD PTR nsmp$10[rbp]
|
|
0096c 39 45 44 cmp DWORD PTR i$[rbp], eax
|
|
0096f 73 6a jae SHORT $LN35@stbi__crea
|
|
|
|
; 5416 : if ((i & 7) == 0)
|
|
|
|
00971 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
00974 83 e0 07 and eax, 7
|
|
00977 85 c0 test eax, eax
|
|
00979 75 21 jne SHORT $LN68@stbi__crea
|
|
|
|
; 5417 : inb = *in++;
|
|
|
|
0097b 48 8b 85 88 02
|
|
00 00 mov rax, QWORD PTR in$7[rbp]
|
|
00982 0f b6 00 movzx eax, BYTE PTR [rax]
|
|
00985 88 85 c4 02 00
|
|
00 mov BYTE PTR inb$9[rbp], al
|
|
0098b 48 8b 85 88 02
|
|
00 00 mov rax, QWORD PTR in$7[rbp]
|
|
00992 48 ff c0 inc rax
|
|
00995 48 89 85 88 02
|
|
00 00 mov QWORD PTR in$7[rbp], rax
|
|
$LN68@stbi__crea:
|
|
|
|
; 5418 : *out++ = scale * (inb >> 7);
|
|
|
|
0099c 0f b6 85 64 02
|
|
00 00 movzx eax, BYTE PTR scale$6[rbp]
|
|
009a3 0f b6 8d c4 02
|
|
00 00 movzx ecx, BYTE PTR inb$9[rbp]
|
|
009aa c1 f9 07 sar ecx, 7
|
|
009ad 0f af c1 imul eax, ecx
|
|
009b0 48 8b 8d a8 02
|
|
00 00 mov rcx, QWORD PTR out$8[rbp]
|
|
009b7 88 01 mov BYTE PTR [rcx], al
|
|
009b9 48 8b 85 a8 02
|
|
00 00 mov rax, QWORD PTR out$8[rbp]
|
|
009c0 48 ff c0 inc rax
|
|
009c3 48 89 85 a8 02
|
|
00 00 mov QWORD PTR out$8[rbp], rax
|
|
|
|
; 5419 : inb <<= 1;
|
|
|
|
009ca 0f b6 85 c4 02
|
|
00 00 movzx eax, BYTE PTR inb$9[rbp]
|
|
009d1 d0 e0 shl al, 1
|
|
009d3 88 85 c4 02 00
|
|
00 mov BYTE PTR inb$9[rbp], al
|
|
|
|
; 5420 : }
|
|
|
|
009d9 eb 83 jmp SHORT $LN34@stbi__crea
|
|
$LN35@stbi__crea:
|
|
$LN66@stbi__crea:
|
|
$LN63@stbi__crea:
|
|
|
|
; 5421 : }
|
|
; 5422 :
|
|
; 5423 : // insert alpha=255 values if desired
|
|
; 5424 : if (img_n != out_n)
|
|
|
|
009db 8b 85 f8 04 00
|
|
00 mov eax, DWORD PTR out_n$[rbp]
|
|
009e1 39 85 44 01 00
|
|
00 cmp DWORD PTR img_n$[rbp], eax
|
|
009e7 74 22 je SHORT $LN69@stbi__crea
|
|
|
|
; 5425 : stbi__create_png_alpha_expand8(dest, dest, x, img_n);
|
|
|
|
009e9 44 8b 8d 44 01
|
|
00 00 mov r9d, DWORD PTR img_n$[rbp]
|
|
009f0 44 8b 85 00 05
|
|
00 00 mov r8d, DWORD PTR x$[rbp]
|
|
009f7 48 8b 95 08 02
|
|
00 00 mov rdx, QWORD PTR dest$3[rbp]
|
|
009fe 48 8b 8d 08 02
|
|
00 00 mov rcx, QWORD PTR dest$3[rbp]
|
|
00a05 e8 00 00 00 00 call stbi__create_png_alpha_expand8
|
|
00a0a 90 npad 1
|
|
$LN69@stbi__crea:
|
|
|
|
; 5426 : } else if (depth == 8) {
|
|
|
|
00a0b e9 47 03 00 00 jmp $LN61@stbi__crea
|
|
$LN60@stbi__crea:
|
|
00a10 83 bd 10 05 00
|
|
00 08 cmp DWORD PTR depth$[rbp], 8
|
|
00a17 75 5d jne SHORT $LN70@stbi__crea
|
|
|
|
; 5427 : if (img_n == out_n)
|
|
|
|
00a19 8b 85 f8 04 00
|
|
00 mov eax, DWORD PTR out_n$[rbp]
|
|
00a1f 39 85 44 01 00
|
|
00 cmp DWORD PTR img_n$[rbp], eax
|
|
00a25 75 28 jne SHORT $LN72@stbi__crea
|
|
|
|
; 5428 : memcpy(dest, cur, x * img_n);
|
|
|
|
00a27 8b 85 00 05 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
00a2d 0f af 85 44 01
|
|
00 00 imul eax, DWORD PTR img_n$[rbp]
|
|
00a34 8b c0 mov eax, eax
|
|
00a36 44 8b c0 mov r8d, eax
|
|
00a39 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00a40 48 8b 8d 08 02
|
|
00 00 mov rcx, QWORD PTR dest$3[rbp]
|
|
00a47 e8 00 00 00 00 call memcpy
|
|
00a4c 90 npad 1
|
|
00a4d eb 22 jmp SHORT $LN73@stbi__crea
|
|
$LN72@stbi__crea:
|
|
|
|
; 5429 : else
|
|
; 5430 : stbi__create_png_alpha_expand8(dest, cur, x, img_n);
|
|
|
|
00a4f 44 8b 8d 44 01
|
|
00 00 mov r9d, DWORD PTR img_n$[rbp]
|
|
00a56 44 8b 85 00 05
|
|
00 00 mov r8d, DWORD PTR x$[rbp]
|
|
00a5d 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00a64 48 8b 8d 08 02
|
|
00 00 mov rcx, QWORD PTR dest$3[rbp]
|
|
00a6b e8 00 00 00 00 call stbi__create_png_alpha_expand8
|
|
00a70 90 npad 1
|
|
$LN73@stbi__crea:
|
|
|
|
; 5431 : } else if (depth == 16) {
|
|
|
|
00a71 e9 e1 02 00 00 jmp $LN71@stbi__crea
|
|
$LN70@stbi__crea:
|
|
00a76 83 bd 10 05 00
|
|
00 10 cmp DWORD PTR depth$[rbp], 16
|
|
00a7d 0f 85 d4 02 00
|
|
00 jne $LN74@stbi__crea
|
|
|
|
; 5432 : // convert the image data from big-endian to platform-native
|
|
; 5433 : stbi__uint16 *dest16 = (stbi__uint16 *)dest;
|
|
|
|
00a83 48 8b 85 08 02
|
|
00 00 mov rax, QWORD PTR dest$3[rbp]
|
|
00a8a 48 89 85 08 03
|
|
00 00 mov QWORD PTR dest16$11[rbp], rax
|
|
|
|
; 5434 : stbi__uint32 nsmp = x * img_n;
|
|
|
|
00a91 8b 85 00 05 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
00a97 0f af 85 44 01
|
|
00 00 imul eax, DWORD PTR img_n$[rbp]
|
|
00a9e 89 85 24 03 00
|
|
00 mov DWORD PTR nsmp$12[rbp], eax
|
|
|
|
; 5435 :
|
|
; 5436 : if (img_n == out_n) {
|
|
|
|
00aa4 8b 85 f8 04 00
|
|
00 mov eax, DWORD PTR out_n$[rbp]
|
|
00aaa 39 85 44 01 00
|
|
00 cmp DWORD PTR img_n$[rbp], eax
|
|
00ab0 75 7e jne SHORT $LN75@stbi__crea
|
|
|
|
; 5437 : for (i = 0; i < nsmp; ++i, ++dest16, cur += 2)
|
|
|
|
00ab2 c7 45 44 00 00
|
|
00 00 mov DWORD PTR i$[rbp], 0
|
|
00ab9 eb 2c jmp SHORT $LN39@stbi__crea
|
|
$LN37@stbi__crea:
|
|
00abb 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
00abe ff c0 inc eax
|
|
00ac0 89 45 44 mov DWORD PTR i$[rbp], eax
|
|
00ac3 48 8b 85 08 03
|
|
00 00 mov rax, QWORD PTR dest16$11[rbp]
|
|
00aca 48 83 c0 02 add rax, 2
|
|
00ace 48 89 85 08 03
|
|
00 00 mov QWORD PTR dest16$11[rbp], rax
|
|
00ad5 48 8b 85 c8 01
|
|
00 00 mov rax, QWORD PTR cur$1[rbp]
|
|
00adc 48 83 c0 02 add rax, 2
|
|
00ae0 48 89 85 c8 01
|
|
00 00 mov QWORD PTR cur$1[rbp], rax
|
|
$LN39@stbi__crea:
|
|
00ae7 8b 85 24 03 00
|
|
00 mov eax, DWORD PTR nsmp$12[rbp]
|
|
00aed 39 45 44 cmp DWORD PTR i$[rbp], eax
|
|
00af0 73 39 jae SHORT $LN38@stbi__crea
|
|
|
|
; 5438 : *dest16 = (cur[0] << 8) | cur[1];
|
|
|
|
00af2 b8 01 00 00 00 mov eax, 1
|
|
00af7 48 6b c0 00 imul rax, rax, 0
|
|
00afb 48 8b 8d c8 01
|
|
00 00 mov rcx, QWORD PTR cur$1[rbp]
|
|
00b02 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
00b06 c1 e0 08 shl eax, 8
|
|
00b09 b9 01 00 00 00 mov ecx, 1
|
|
00b0e 48 6b c9 01 imul rcx, rcx, 1
|
|
00b12 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00b19 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
00b1d 0b c1 or eax, ecx
|
|
00b1f 48 8b 8d 08 03
|
|
00 00 mov rcx, QWORD PTR dest16$11[rbp]
|
|
00b26 66 89 01 mov WORD PTR [rcx], ax
|
|
00b29 eb 90 jmp SHORT $LN37@stbi__crea
|
|
$LN38@stbi__crea:
|
|
|
|
; 5439 : } else {
|
|
|
|
00b2b e9 27 02 00 00 jmp $LN76@stbi__crea
|
|
$LN75@stbi__crea:
|
|
|
|
; 5440 : STBI_ASSERT(img_n + 1 == out_n);
|
|
|
|
00b30 8b 85 44 01 00
|
|
00 mov eax, DWORD PTR img_n$[rbp]
|
|
00b36 ff c0 inc eax
|
|
00b38 3b 85 f8 04 00
|
|
00 cmp eax, DWORD PTR out_n$[rbp]
|
|
00b3e 74 1c je SHORT $LN87@stbi__crea
|
|
00b40 41 b8 40 15 00
|
|
00 mov r8d, 5440 ; 00001540H
|
|
00b46 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@
|
|
00b4d 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@
|
|
00b54 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__wassert
|
|
00b5a 33 c0 xor eax, eax
|
|
$LN87@stbi__crea:
|
|
|
|
; 5441 : if (img_n == 1) {
|
|
|
|
00b5c 83 bd 44 01 00
|
|
00 01 cmp DWORD PTR img_n$[rbp], 1
|
|
00b63 0f 85 a4 00 00
|
|
00 jne $LN77@stbi__crea
|
|
|
|
; 5442 : for (i = 0; i < x; ++i, dest16 += 2, cur += 2) {
|
|
|
|
00b69 c7 45 44 00 00
|
|
00 00 mov DWORD PTR i$[rbp], 0
|
|
00b70 eb 2c jmp SHORT $LN42@stbi__crea
|
|
$LN40@stbi__crea:
|
|
00b72 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
00b75 ff c0 inc eax
|
|
00b77 89 45 44 mov DWORD PTR i$[rbp], eax
|
|
00b7a 48 8b 85 08 03
|
|
00 00 mov rax, QWORD PTR dest16$11[rbp]
|
|
00b81 48 83 c0 04 add rax, 4
|
|
00b85 48 89 85 08 03
|
|
00 00 mov QWORD PTR dest16$11[rbp], rax
|
|
00b8c 48 8b 85 c8 01
|
|
00 00 mov rax, QWORD PTR cur$1[rbp]
|
|
00b93 48 83 c0 02 add rax, 2
|
|
00b97 48 89 85 c8 01
|
|
00 00 mov QWORD PTR cur$1[rbp], rax
|
|
$LN42@stbi__crea:
|
|
00b9e 8b 85 00 05 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
00ba4 39 45 44 cmp DWORD PTR i$[rbp], eax
|
|
00ba7 73 5f jae SHORT $LN41@stbi__crea
|
|
|
|
; 5443 : dest16[0] = (cur[0] << 8) | cur[1];
|
|
|
|
00ba9 b8 01 00 00 00 mov eax, 1
|
|
00bae 48 6b c0 00 imul rax, rax, 0
|
|
00bb2 48 8b 8d c8 01
|
|
00 00 mov rcx, QWORD PTR cur$1[rbp]
|
|
00bb9 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
00bbd c1 e0 08 shl eax, 8
|
|
00bc0 b9 01 00 00 00 mov ecx, 1
|
|
00bc5 48 6b c9 01 imul rcx, rcx, 1
|
|
00bc9 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00bd0 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
00bd4 0b c1 or eax, ecx
|
|
00bd6 b9 02 00 00 00 mov ecx, 2
|
|
00bdb 48 6b c9 00 imul rcx, rcx, 0
|
|
00bdf 48 8b 95 08 03
|
|
00 00 mov rdx, QWORD PTR dest16$11[rbp]
|
|
00be6 66 89 04 0a mov WORD PTR [rdx+rcx], ax
|
|
|
|
; 5444 : dest16[1] = 0xffff;
|
|
|
|
00bea b8 02 00 00 00 mov eax, 2
|
|
00bef 48 6b c0 01 imul rax, rax, 1
|
|
00bf3 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH
|
|
00bf8 48 8b 95 08 03
|
|
00 00 mov rdx, QWORD PTR dest16$11[rbp]
|
|
00bff 66 89 0c 02 mov WORD PTR [rdx+rax], cx
|
|
|
|
; 5445 : }
|
|
|
|
00c03 e9 6a ff ff ff jmp $LN40@stbi__crea
|
|
$LN41@stbi__crea:
|
|
|
|
; 5446 : } else {
|
|
|
|
00c08 e9 4a 01 00 00 jmp $LN78@stbi__crea
|
|
$LN77@stbi__crea:
|
|
|
|
; 5447 : STBI_ASSERT(img_n == 3);
|
|
|
|
00c0d 83 bd 44 01 00
|
|
00 03 cmp DWORD PTR img_n$[rbp], 3
|
|
00c14 74 1c je SHORT $LN88@stbi__crea
|
|
00c16 41 b8 47 15 00
|
|
00 mov r8d, 5447 ; 00001547H
|
|
00c1c 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@
|
|
00c23 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@
|
|
00c2a ff 15 00 00 00
|
|
00 call QWORD PTR __imp__wassert
|
|
00c30 33 c0 xor eax, eax
|
|
$LN88@stbi__crea:
|
|
|
|
; 5448 : for (i = 0; i < x; ++i, dest16 += 4, cur += 6) {
|
|
|
|
00c32 c7 45 44 00 00
|
|
00 00 mov DWORD PTR i$[rbp], 0
|
|
00c39 eb 2c jmp SHORT $LN45@stbi__crea
|
|
$LN43@stbi__crea:
|
|
00c3b 8b 45 44 mov eax, DWORD PTR i$[rbp]
|
|
00c3e ff c0 inc eax
|
|
00c40 89 45 44 mov DWORD PTR i$[rbp], eax
|
|
00c43 48 8b 85 08 03
|
|
00 00 mov rax, QWORD PTR dest16$11[rbp]
|
|
00c4a 48 83 c0 08 add rax, 8
|
|
00c4e 48 89 85 08 03
|
|
00 00 mov QWORD PTR dest16$11[rbp], rax
|
|
00c55 48 8b 85 c8 01
|
|
00 00 mov rax, QWORD PTR cur$1[rbp]
|
|
00c5c 48 83 c0 06 add rax, 6
|
|
00c60 48 89 85 c8 01
|
|
00 00 mov QWORD PTR cur$1[rbp], rax
|
|
$LN45@stbi__crea:
|
|
00c67 8b 85 00 05 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
00c6d 39 45 44 cmp DWORD PTR i$[rbp], eax
|
|
00c70 0f 83 e1 00 00
|
|
00 jae $LN44@stbi__crea
|
|
|
|
; 5449 : dest16[0] = (cur[0] << 8) | cur[1];
|
|
|
|
00c76 b8 01 00 00 00 mov eax, 1
|
|
00c7b 48 6b c0 00 imul rax, rax, 0
|
|
00c7f 48 8b 8d c8 01
|
|
00 00 mov rcx, QWORD PTR cur$1[rbp]
|
|
00c86 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
00c8a c1 e0 08 shl eax, 8
|
|
00c8d b9 01 00 00 00 mov ecx, 1
|
|
00c92 48 6b c9 01 imul rcx, rcx, 1
|
|
00c96 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00c9d 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
00ca1 0b c1 or eax, ecx
|
|
00ca3 b9 02 00 00 00 mov ecx, 2
|
|
00ca8 48 6b c9 00 imul rcx, rcx, 0
|
|
00cac 48 8b 95 08 03
|
|
00 00 mov rdx, QWORD PTR dest16$11[rbp]
|
|
00cb3 66 89 04 0a mov WORD PTR [rdx+rcx], ax
|
|
|
|
; 5450 : dest16[1] = (cur[2] << 8) | cur[3];
|
|
|
|
00cb7 b8 01 00 00 00 mov eax, 1
|
|
00cbc 48 6b c0 02 imul rax, rax, 2
|
|
00cc0 48 8b 8d c8 01
|
|
00 00 mov rcx, QWORD PTR cur$1[rbp]
|
|
00cc7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
00ccb c1 e0 08 shl eax, 8
|
|
00cce b9 01 00 00 00 mov ecx, 1
|
|
00cd3 48 6b c9 03 imul rcx, rcx, 3
|
|
00cd7 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00cde 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
00ce2 0b c1 or eax, ecx
|
|
00ce4 b9 02 00 00 00 mov ecx, 2
|
|
00ce9 48 6b c9 01 imul rcx, rcx, 1
|
|
00ced 48 8b 95 08 03
|
|
00 00 mov rdx, QWORD PTR dest16$11[rbp]
|
|
00cf4 66 89 04 0a mov WORD PTR [rdx+rcx], ax
|
|
|
|
; 5451 : dest16[2] = (cur[4] << 8) | cur[5];
|
|
|
|
00cf8 b8 01 00 00 00 mov eax, 1
|
|
00cfd 48 6b c0 04 imul rax, rax, 4
|
|
00d01 48 8b 8d c8 01
|
|
00 00 mov rcx, QWORD PTR cur$1[rbp]
|
|
00d08 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
00d0c c1 e0 08 shl eax, 8
|
|
00d0f b9 01 00 00 00 mov ecx, 1
|
|
00d14 48 6b c9 05 imul rcx, rcx, 5
|
|
00d18 48 8b 95 c8 01
|
|
00 00 mov rdx, QWORD PTR cur$1[rbp]
|
|
00d1f 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
|
|
00d23 0b c1 or eax, ecx
|
|
00d25 b9 02 00 00 00 mov ecx, 2
|
|
00d2a 48 6b c9 02 imul rcx, rcx, 2
|
|
00d2e 48 8b 95 08 03
|
|
00 00 mov rdx, QWORD PTR dest16$11[rbp]
|
|
00d35 66 89 04 0a mov WORD PTR [rdx+rcx], ax
|
|
|
|
; 5452 : dest16[3] = 0xffff;
|
|
|
|
00d39 b8 02 00 00 00 mov eax, 2
|
|
00d3e 48 6b c0 03 imul rax, rax, 3
|
|
00d42 b9 ff ff 00 00 mov ecx, 65535 ; 0000ffffH
|
|
00d47 48 8b 95 08 03
|
|
00 00 mov rdx, QWORD PTR dest16$11[rbp]
|
|
00d4e 66 89 0c 02 mov WORD PTR [rdx+rax], cx
|
|
|
|
; 5453 : }
|
|
|
|
00d52 e9 e4 fe ff ff jmp $LN43@stbi__crea
|
|
$LN44@stbi__crea:
|
|
$LN78@stbi__crea:
|
|
$LN76@stbi__crea:
|
|
$LN74@stbi__crea:
|
|
$LN71@stbi__crea:
|
|
$LN61@stbi__crea:
|
|
|
|
; 5454 : }
|
|
; 5455 : }
|
|
; 5456 : }
|
|
; 5457 : }
|
|
|
|
00d57 e9 f5 f4 ff ff jmp $LN2@stbi__crea
|
|
$LN3@stbi__crea:
|
|
|
|
; 5458 :
|
|
; 5459 : STBI_FREE(filter_buf);
|
|
|
|
00d5c 48 8b 8d e8 00
|
|
00 00 mov rcx, QWORD PTR filter_buf$[rbp]
|
|
00d63 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_free
|
|
00d69 90 npad 1
|
|
|
|
; 5460 : if (!all_ok)
|
|
|
|
00d6a 83 bd 04 01 00
|
|
00 00 cmp DWORD PTR all_ok$[rbp], 0
|
|
00d71 75 04 jne SHORT $LN79@stbi__crea
|
|
|
|
; 5461 : return 0;
|
|
|
|
00d73 33 c0 xor eax, eax
|
|
00d75 eb 05 jmp SHORT $LN1@stbi__crea
|
|
$LN79@stbi__crea:
|
|
|
|
; 5462 :
|
|
; 5463 : return 1;
|
|
|
|
00d77 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__crea:
|
|
|
|
; 5464 : }
|
|
|
|
00d7c 48 8d a5 c8 04
|
|
00 00 lea rsp, QWORD PTR [rbp+1224]
|
|
00d83 5f pop rdi
|
|
00d84 5d pop rbp
|
|
00d85 c3 ret 0
|
|
00d86 66 90 npad 2
|
|
$LN89@stbi__crea:
|
|
00d88 00 00 00 00 DD $LN54@stbi__crea
|
|
00d8c 00 00 00 00 DD $LN55@stbi__crea
|
|
00d90 00 00 00 00 DD $LN56@stbi__crea
|
|
00d94 00 00 00 00 DD $LN57@stbi__crea
|
|
00d98 00 00 00 00 DD $LN58@stbi__crea
|
|
00d9c 00 00 00 00 DD $LN59@stbi__crea
|
|
stbi__create_png_image_raw ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__create_png_alpha_expand8
|
|
_TEXT SEGMENT
|
|
i$ = 4
|
|
dest$ = 256
|
|
src$ = 264
|
|
x$ = 272
|
|
img_n$ = 280
|
|
stbi__create_png_alpha_expand8 PROC ; COMDAT
|
|
|
|
; 5264 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 5265 : int i;
|
|
; 5266 : // must process data backwards since we allow dest==src
|
|
; 5267 : if (img_n == 1) {
|
|
|
|
0002f 83 bd 18 01 00
|
|
00 01 cmp DWORD PTR img_n$[rbp], 1
|
|
00036 75 58 jne SHORT $LN8@stbi__crea
|
|
|
|
; 5268 : for (i = x - 1; i >= 0; --i) {
|
|
|
|
00038 8b 85 10 01 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
0003e ff c8 dec eax
|
|
00040 89 45 04 mov DWORD PTR i$[rbp], eax
|
|
00043 eb 08 jmp SHORT $LN4@stbi__crea
|
|
$LN2@stbi__crea:
|
|
00045 8b 45 04 mov eax, DWORD PTR i$[rbp]
|
|
00048 ff c8 dec eax
|
|
0004a 89 45 04 mov DWORD PTR i$[rbp], eax
|
|
$LN4@stbi__crea:
|
|
0004d 83 7d 04 00 cmp DWORD PTR i$[rbp], 0
|
|
00051 7c 38 jl SHORT $LN3@stbi__crea
|
|
|
|
; 5269 : dest[i * 2 + 1] = 255;
|
|
|
|
00053 8b 45 04 mov eax, DWORD PTR i$[rbp]
|
|
00056 8d 44 00 01 lea eax, DWORD PTR [rax+rax+1]
|
|
0005a 48 98 cdqe
|
|
0005c 48 8b 8d 00 01
|
|
00 00 mov rcx, QWORD PTR dest$[rbp]
|
|
00063 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
|
|
|
|
; 5270 : dest[i * 2 + 0] = src[i];
|
|
|
|
00067 48 63 45 04 movsxd rax, DWORD PTR i$[rbp]
|
|
0006b 8b 4d 04 mov ecx, DWORD PTR i$[rbp]
|
|
0006e 03 c9 add ecx, ecx
|
|
00070 48 63 c9 movsxd rcx, ecx
|
|
00073 48 8b 95 00 01
|
|
00 00 mov rdx, QWORD PTR dest$[rbp]
|
|
0007a 4c 8b 85 08 01
|
|
00 00 mov r8, QWORD PTR src$[rbp]
|
|
00081 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
|
|
00086 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
|
|
; 5271 : }
|
|
|
|
00089 eb ba jmp SHORT $LN2@stbi__crea
|
|
$LN3@stbi__crea:
|
|
|
|
; 5272 : } else {
|
|
|
|
0008b e9 dc 00 00 00 jmp $LN9@stbi__crea
|
|
$LN8@stbi__crea:
|
|
|
|
; 5273 : STBI_ASSERT(img_n == 3);
|
|
|
|
00090 83 bd 18 01 00
|
|
00 03 cmp DWORD PTR img_n$[rbp], 3
|
|
00097 74 1c je SHORT $LN11@stbi__crea
|
|
00099 41 b8 99 14 00
|
|
00 mov r8d, 5273 ; 00001499H
|
|
0009f 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$AAD?$AA?3?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?9?$AAd?$AAe?$AAv@
|
|
000a6 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@
|
|
000ad ff 15 00 00 00
|
|
00 call QWORD PTR __imp__wassert
|
|
000b3 33 c0 xor eax, eax
|
|
$LN11@stbi__crea:
|
|
|
|
; 5274 : for (i = x - 1; i >= 0; --i) {
|
|
|
|
000b5 8b 85 10 01 00
|
|
00 mov eax, DWORD PTR x$[rbp]
|
|
000bb ff c8 dec eax
|
|
000bd 89 45 04 mov DWORD PTR i$[rbp], eax
|
|
000c0 eb 08 jmp SHORT $LN7@stbi__crea
|
|
$LN5@stbi__crea:
|
|
000c2 8b 45 04 mov eax, DWORD PTR i$[rbp]
|
|
000c5 ff c8 dec eax
|
|
000c7 89 45 04 mov DWORD PTR i$[rbp], eax
|
|
$LN7@stbi__crea:
|
|
000ca 83 7d 04 00 cmp DWORD PTR i$[rbp], 0
|
|
000ce 0f 8c 98 00 00
|
|
00 jl $LN6@stbi__crea
|
|
|
|
; 5275 : dest[i * 4 + 3] = 255;
|
|
|
|
000d4 8b 45 04 mov eax, DWORD PTR i$[rbp]
|
|
000d7 8d 04 85 03 00
|
|
00 00 lea eax, DWORD PTR [rax*4+3]
|
|
000de 48 98 cdqe
|
|
000e0 48 8b 8d 00 01
|
|
00 00 mov rcx, QWORD PTR dest$[rbp]
|
|
000e7 c6 04 01 ff mov BYTE PTR [rcx+rax], 255 ; 000000ffH
|
|
|
|
; 5276 : dest[i * 4 + 2] = src[i * 3 + 2];
|
|
|
|
000eb 6b 45 04 03 imul eax, DWORD PTR i$[rbp], 3
|
|
000ef 83 c0 02 add eax, 2
|
|
000f2 48 98 cdqe
|
|
000f4 8b 4d 04 mov ecx, DWORD PTR i$[rbp]
|
|
000f7 8d 0c 8d 02 00
|
|
00 00 lea ecx, DWORD PTR [rcx*4+2]
|
|
000fe 48 63 c9 movsxd rcx, ecx
|
|
00101 48 8b 95 00 01
|
|
00 00 mov rdx, QWORD PTR dest$[rbp]
|
|
00108 4c 8b 85 08 01
|
|
00 00 mov r8, QWORD PTR src$[rbp]
|
|
0010f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
|
|
00114 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
|
|
; 5277 : dest[i * 4 + 1] = src[i * 3 + 1];
|
|
|
|
00117 6b 45 04 03 imul eax, DWORD PTR i$[rbp], 3
|
|
0011b ff c0 inc eax
|
|
0011d 48 98 cdqe
|
|
0011f 8b 4d 04 mov ecx, DWORD PTR i$[rbp]
|
|
00122 8d 0c 8d 01 00
|
|
00 00 lea ecx, DWORD PTR [rcx*4+1]
|
|
00129 48 63 c9 movsxd rcx, ecx
|
|
0012c 48 8b 95 00 01
|
|
00 00 mov rdx, QWORD PTR dest$[rbp]
|
|
00133 4c 8b 85 08 01
|
|
00 00 mov r8, QWORD PTR src$[rbp]
|
|
0013a 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
|
|
0013f 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
|
|
; 5278 : dest[i * 4 + 0] = src[i * 3 + 0];
|
|
|
|
00142 6b 45 04 03 imul eax, DWORD PTR i$[rbp], 3
|
|
00146 48 98 cdqe
|
|
00148 8b 4d 04 mov ecx, DWORD PTR i$[rbp]
|
|
0014b c1 e1 02 shl ecx, 2
|
|
0014e 48 63 c9 movsxd rcx, ecx
|
|
00151 48 8b 95 00 01
|
|
00 00 mov rdx, QWORD PTR dest$[rbp]
|
|
00158 4c 8b 85 08 01
|
|
00 00 mov r8, QWORD PTR src$[rbp]
|
|
0015f 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
|
|
00164 88 04 0a mov BYTE PTR [rdx+rcx], al
|
|
|
|
; 5279 : }
|
|
|
|
00167 e9 56 ff ff ff jmp $LN5@stbi__crea
|
|
$LN6@stbi__crea:
|
|
$LN9@stbi__crea:
|
|
|
|
; 5280 : }
|
|
; 5281 : }
|
|
|
|
0016c 48 8d a5 e8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+232]
|
|
00173 5f pop rdi
|
|
00174 5d pop rbp
|
|
00175 c3 ret 0
|
|
stbi__create_png_alpha_expand8 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__paeth
|
|
_TEXT SEGMENT
|
|
thresh$ = 4
|
|
lo$ = 36
|
|
hi$ = 68
|
|
t0$ = 100
|
|
t1$ = 132
|
|
tv68 = 340
|
|
tv70 = 340
|
|
tv72 = 340
|
|
tv74 = 340
|
|
a$ = 384
|
|
b$ = 392
|
|
c$ = 400
|
|
stbi__paeth PROC ; COMDAT
|
|
|
|
; 5246 : {
|
|
|
|
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 88 01
|
|
00 00 sub rsp, 392 ; 00000188H
|
|
00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
0001b 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h
|
|
00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00027 90 npad 1
|
|
|
|
; 5247 : // This formulation looks very different from the reference in the PNG spec, but is
|
|
; 5248 : // actually equivalent and has favorable data dependencies and admits straightforward
|
|
; 5249 : // generation of branch-free code, which helps performance significantly.
|
|
; 5250 : int thresh = c * 3 - (a + b);
|
|
|
|
00028 6b 85 90 01 00
|
|
00 03 imul eax, DWORD PTR c$[rbp], 3
|
|
0002f 8b 8d 88 01 00
|
|
00 mov ecx, DWORD PTR b$[rbp]
|
|
00035 8b 95 80 01 00
|
|
00 mov edx, DWORD PTR a$[rbp]
|
|
0003b 03 d1 add edx, ecx
|
|
0003d 8b ca mov ecx, edx
|
|
0003f 2b c1 sub eax, ecx
|
|
00041 89 45 04 mov DWORD PTR thresh$[rbp], eax
|
|
|
|
; 5251 : int lo = a < b ? a : b;
|
|
|
|
00044 8b 85 88 01 00
|
|
00 mov eax, DWORD PTR b$[rbp]
|
|
0004a 39 85 80 01 00
|
|
00 cmp DWORD PTR a$[rbp], eax
|
|
00050 7d 0e jge SHORT $LN3@stbi__paet
|
|
00052 8b 85 80 01 00
|
|
00 mov eax, DWORD PTR a$[rbp]
|
|
00058 89 85 54 01 00
|
|
00 mov DWORD PTR tv68[rbp], eax
|
|
0005e eb 0c jmp SHORT $LN4@stbi__paet
|
|
$LN3@stbi__paet:
|
|
00060 8b 85 88 01 00
|
|
00 mov eax, DWORD PTR b$[rbp]
|
|
00066 89 85 54 01 00
|
|
00 mov DWORD PTR tv68[rbp], eax
|
|
$LN4@stbi__paet:
|
|
0006c 8b 85 54 01 00
|
|
00 mov eax, DWORD PTR tv68[rbp]
|
|
00072 89 45 24 mov DWORD PTR lo$[rbp], eax
|
|
|
|
; 5252 : int hi = a < b ? b : a;
|
|
|
|
00075 8b 85 88 01 00
|
|
00 mov eax, DWORD PTR b$[rbp]
|
|
0007b 39 85 80 01 00
|
|
00 cmp DWORD PTR a$[rbp], eax
|
|
00081 7d 0e jge SHORT $LN5@stbi__paet
|
|
00083 8b 85 88 01 00
|
|
00 mov eax, DWORD PTR b$[rbp]
|
|
00089 89 85 54 01 00
|
|
00 mov DWORD PTR tv70[rbp], eax
|
|
0008f eb 0c jmp SHORT $LN6@stbi__paet
|
|
$LN5@stbi__paet:
|
|
00091 8b 85 80 01 00
|
|
00 mov eax, DWORD PTR a$[rbp]
|
|
00097 89 85 54 01 00
|
|
00 mov DWORD PTR tv70[rbp], eax
|
|
$LN6@stbi__paet:
|
|
0009d 8b 85 54 01 00
|
|
00 mov eax, DWORD PTR tv70[rbp]
|
|
000a3 89 45 44 mov DWORD PTR hi$[rbp], eax
|
|
|
|
; 5253 : int t0 = (hi <= thresh) ? lo : c;
|
|
|
|
000a6 8b 45 04 mov eax, DWORD PTR thresh$[rbp]
|
|
000a9 39 45 44 cmp DWORD PTR hi$[rbp], eax
|
|
000ac 7f 0b jg SHORT $LN7@stbi__paet
|
|
000ae 8b 45 24 mov eax, DWORD PTR lo$[rbp]
|
|
000b1 89 85 54 01 00
|
|
00 mov DWORD PTR tv72[rbp], eax
|
|
000b7 eb 0c jmp SHORT $LN8@stbi__paet
|
|
$LN7@stbi__paet:
|
|
000b9 8b 85 90 01 00
|
|
00 mov eax, DWORD PTR c$[rbp]
|
|
000bf 89 85 54 01 00
|
|
00 mov DWORD PTR tv72[rbp], eax
|
|
$LN8@stbi__paet:
|
|
000c5 8b 85 54 01 00
|
|
00 mov eax, DWORD PTR tv72[rbp]
|
|
000cb 89 45 64 mov DWORD PTR t0$[rbp], eax
|
|
|
|
; 5254 : int t1 = (thresh <= lo) ? hi : t0;
|
|
|
|
000ce 8b 45 24 mov eax, DWORD PTR lo$[rbp]
|
|
000d1 39 45 04 cmp DWORD PTR thresh$[rbp], eax
|
|
000d4 7f 0b jg SHORT $LN9@stbi__paet
|
|
000d6 8b 45 44 mov eax, DWORD PTR hi$[rbp]
|
|
000d9 89 85 54 01 00
|
|
00 mov DWORD PTR tv74[rbp], eax
|
|
000df eb 09 jmp SHORT $LN10@stbi__paet
|
|
$LN9@stbi__paet:
|
|
000e1 8b 45 64 mov eax, DWORD PTR t0$[rbp]
|
|
000e4 89 85 54 01 00
|
|
00 mov DWORD PTR tv74[rbp], eax
|
|
$LN10@stbi__paet:
|
|
000ea 8b 85 54 01 00
|
|
00 mov eax, DWORD PTR tv74[rbp]
|
|
000f0 89 85 84 00 00
|
|
00 mov DWORD PTR t1$[rbp], eax
|
|
|
|
; 5255 : return t1;
|
|
|
|
000f6 8b 85 84 00 00
|
|
00 mov eax, DWORD PTR t1$[rbp]
|
|
|
|
; 5256 : }
|
|
|
|
000fc 48 8d a5 68 01
|
|
00 00 lea rsp, QWORD PTR [rbp+360]
|
|
00103 5f pop rdi
|
|
00104 5d pop rbp
|
|
00105 c3 ret 0
|
|
stbi__paeth ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__check_png_header
|
|
_TEXT SEGMENT
|
|
i$ = 4
|
|
s$ = 256
|
|
stbi__check_png_header PROC ; COMDAT
|
|
|
|
; 5215 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 5216 : static const stbi_uc png_sig[8] = { 137, 80, 78, 71, 13, 10, 26, 10 };
|
|
; 5217 : int i;
|
|
; 5218 : 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
|
|
|
|
; 5219 : 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
|
|
|
|
; 5220 : 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:
|
|
|
|
; 5221 : return 1;
|
|
|
|
00069 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__chec:
|
|
|
|
; 5222 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__get_chunk_header
|
|
_TEXT SEGMENT
|
|
c$ = 8
|
|
s$ = 256
|
|
stbi__get_chunk_header PROC ; COMDAT
|
|
|
|
; 5207 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00038 90 npad 1
|
|
|
|
; 5208 : stbi__pngchunk c;
|
|
; 5209 : 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
|
|
|
|
; 5210 : 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
|
|
|
|
; 5211 : return c;
|
|
|
|
00057 48 8b 45 08 mov rax, QWORD PTR c$[rbp]
|
|
|
|
; 5212 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__do_zlib
|
|
_TEXT SEGMENT
|
|
a$ = 224
|
|
obuf$ = 232
|
|
olen$ = 240
|
|
exp$ = 248
|
|
parse_header$ = 256
|
|
stbi__do_zlib PROC ; COMDAT
|
|
|
|
; 5096 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 5097 : 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 28 mov QWORD PTR [rax+40], rcx
|
|
|
|
; 5098 : 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 20 mov QWORD PTR [rax+32], rcx
|
|
|
|
; 5099 : 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 30 mov QWORD PTR [rcx+48], rax
|
|
|
|
; 5100 : 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 38 mov DWORD PTR [rax+56], ecx
|
|
|
|
; 5101 :
|
|
; 5102 : 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
|
|
|
|
; 5103 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__parse_zlib
|
|
_TEXT SEGMENT
|
|
final$ = 4
|
|
type$ = 36
|
|
a$ = 288
|
|
parse_header$ = 296
|
|
stbi__parse_zlib PROC ; COMDAT
|
|
|
|
; 5059 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 5060 : int final, type;
|
|
; 5061 : 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
|
|
|
|
; 5062 : 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
|
|
|
|
; 5063 : return 0;
|
|
|
|
0003d 33 c0 xor eax, eax
|
|
0003f e9 17 01 00 00 jmp $LN1@stbi__pars
|
|
$LN6@stbi__pars:
|
|
$LN5@stbi__pars:
|
|
|
|
; 5064 : 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
|
|
|
|
; 5065 : a->code_buffer = 0;
|
|
|
|
00052 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00059 c7 40 18 00 00
|
|
00 00 mov DWORD PTR [rax+24], 0
|
|
|
|
; 5066 : a->hit_zeof_once = 0;
|
|
|
|
00060 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00067 c7 40 14 00 00
|
|
00 00 mov DWORD PTR [rax+20], 0
|
|
$LN4@stbi__pars:
|
|
|
|
; 5067 : do {
|
|
; 5068 : final = stbi__zreceive(a, 1);
|
|
|
|
0006e ba 01 00 00 00 mov edx, 1
|
|
00073 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
0007a e8 00 00 00 00 call stbi__zreceive
|
|
0007f 89 45 04 mov DWORD PTR final$[rbp], eax
|
|
|
|
; 5069 : type = stbi__zreceive(a, 2);
|
|
|
|
00082 ba 02 00 00 00 mov edx, 2
|
|
00087 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
0008e e8 00 00 00 00 call stbi__zreceive
|
|
00093 89 45 24 mov DWORD PTR type$[rbp], eax
|
|
|
|
; 5070 : if (type == 0) {
|
|
|
|
00096 83 7d 24 00 cmp DWORD PTR type$[rbp], 0
|
|
0009a 75 1c jne SHORT $LN7@stbi__pars
|
|
|
|
; 5071 : if (!stbi__parse_uncompressed_block(a))
|
|
|
|
0009c 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
000a3 e8 00 00 00 00 call stbi__parse_uncompressed_block
|
|
000a8 85 c0 test eax, eax
|
|
000aa 75 07 jne SHORT $LN9@stbi__pars
|
|
|
|
; 5072 : return 0;
|
|
|
|
000ac 33 c0 xor eax, eax
|
|
000ae e9 a8 00 00 00 jmp $LN1@stbi__pars
|
|
$LN9@stbi__pars:
|
|
|
|
; 5073 : } else if (type == 3) {
|
|
|
|
000b3 e9 94 00 00 00 jmp $LN8@stbi__pars
|
|
$LN7@stbi__pars:
|
|
000b8 83 7d 24 03 cmp DWORD PTR type$[rbp], 3
|
|
000bc 75 0c jne SHORT $LN10@stbi__pars
|
|
|
|
; 5074 : return 0;
|
|
|
|
000be 33 c0 xor eax, eax
|
|
000c0 e9 96 00 00 00 jmp $LN1@stbi__pars
|
|
|
|
; 5075 : } else {
|
|
|
|
000c5 e9 82 00 00 00 jmp $LN11@stbi__pars
|
|
$LN10@stbi__pars:
|
|
|
|
; 5076 : if (type == 1) {
|
|
|
|
000ca 83 7d 24 01 cmp DWORD PTR type$[rbp], 1
|
|
000ce 75 54 jne SHORT $LN12@stbi__pars
|
|
|
|
; 5077 : // use fixed code lengths
|
|
; 5078 : if (!stbi__zbuild_huffman(&a->z_length, stbi__zdefault_length,
|
|
|
|
000d0 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
000d7 48 83 c0 3c add rax, 60 ; 0000003cH
|
|
000db 41 b8 20 01 00
|
|
00 mov r8d, 288 ; 00000120H
|
|
000e1 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:stbi__zdefault_length
|
|
000e8 48 8b c8 mov rcx, rax
|
|
000eb e8 00 00 00 00 call stbi__zbuild_huffman
|
|
000f0 85 c0 test eax, eax
|
|
000f2 75 04 jne SHORT $LN14@stbi__pars
|
|
|
|
; 5079 : STBI__ZNSYMS))
|
|
; 5080 : return 0;
|
|
|
|
000f4 33 c0 xor eax, eax
|
|
000f6 eb 63 jmp SHORT $LN1@stbi__pars
|
|
$LN14@stbi__pars:
|
|
|
|
; 5081 : if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance,
|
|
|
|
000f8 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
000ff 48 05 20 08 00
|
|
00 add rax, 2080 ; 00000820H
|
|
00105 41 b8 20 00 00
|
|
00 mov r8d, 32 ; 00000020H
|
|
0010b 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:stbi__zdefault_distance
|
|
00112 48 8b c8 mov rcx, rax
|
|
00115 e8 00 00 00 00 call stbi__zbuild_huffman
|
|
0011a 85 c0 test eax, eax
|
|
0011c 75 04 jne SHORT $LN15@stbi__pars
|
|
|
|
; 5082 : 32))
|
|
; 5083 : return 0;
|
|
|
|
0011e 33 c0 xor eax, eax
|
|
00120 eb 39 jmp SHORT $LN1@stbi__pars
|
|
$LN15@stbi__pars:
|
|
|
|
; 5084 : } else {
|
|
|
|
00122 eb 14 jmp SHORT $LN13@stbi__pars
|
|
$LN12@stbi__pars:
|
|
|
|
; 5085 : if (!stbi__compute_huffman_codes(a))
|
|
|
|
00124 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
0012b e8 00 00 00 00 call stbi__compute_huffman_codes
|
|
00130 85 c0 test eax, eax
|
|
00132 75 04 jne SHORT $LN16@stbi__pars
|
|
|
|
; 5086 : return 0;
|
|
|
|
00134 33 c0 xor eax, eax
|
|
00136 eb 23 jmp SHORT $LN1@stbi__pars
|
|
$LN16@stbi__pars:
|
|
$LN13@stbi__pars:
|
|
|
|
; 5087 : }
|
|
; 5088 : if (!stbi__parse_huffman_block(a))
|
|
|
|
00138 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
0013f e8 00 00 00 00 call stbi__parse_huffman_block
|
|
00144 85 c0 test eax, eax
|
|
00146 75 04 jne SHORT $LN17@stbi__pars
|
|
|
|
; 5089 : return 0;
|
|
|
|
00148 33 c0 xor eax, eax
|
|
0014a eb 0f jmp SHORT $LN1@stbi__pars
|
|
$LN17@stbi__pars:
|
|
$LN11@stbi__pars:
|
|
$LN8@stbi__pars:
|
|
|
|
; 5090 : }
|
|
; 5091 : } while (!final);
|
|
|
|
0014c 83 7d 04 00 cmp DWORD PTR final$[rbp], 0
|
|
00150 0f 84 18 ff ff
|
|
ff je $LN4@stbi__pars
|
|
|
|
; 5092 : return 1;
|
|
|
|
00156 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__pars:
|
|
|
|
; 5093 : }
|
|
|
|
0015b 48 8d a5 08 01
|
|
00 00 lea rsp, QWORD PTR [rbp+264]
|
|
00162 5f pop rdi
|
|
00163 5d pop rbp
|
|
00164 c3 ret 0
|
|
stbi__parse_zlib ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__parse_zlib_header
|
|
_TEXT SEGMENT
|
|
cmf$ = 4
|
|
cm$ = 36
|
|
flg$ = 68
|
|
a$ = 320
|
|
stbi__parse_zlib_header PROC ; COMDAT
|
|
|
|
; 5011 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 5012 : 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
|
|
|
|
; 5013 : 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
|
|
|
|
; 5014 : /* int cinfo = cmf >> 4; */
|
|
; 5015 : 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
|
|
|
|
; 5016 : 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
|
|
|
|
; 5017 : 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:
|
|
|
|
; 5018 : 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
|
|
|
|
; 5019 : 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:
|
|
|
|
; 5020 : 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
|
|
|
|
; 5021 : 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:
|
|
|
|
; 5022 : "Corrupt PNG"); // preset dictionary not allowed in png
|
|
; 5023 : if (cm != 8)
|
|
|
|
000a9 83 7d 24 08 cmp DWORD PTR cm$[rbp], 8
|
|
000ad 74 0e je SHORT $LN5@stbi__pars
|
|
|
|
; 5024 : return stbi__err("bad compression", "Corrupt PNG"); // DEFLATE required for png
|
|
|
|
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:
|
|
|
|
; 5025 : // window = 1 << (8 + cinfo)... but who cares, we fully buffer output
|
|
; 5026 : return 1;
|
|
|
|
000bd b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__pars:
|
|
|
|
; 5027 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__parse_uncompressed_block
|
|
_TEXT SEGMENT
|
|
header$ = 4
|
|
len$ = 36
|
|
nlen$ = 68
|
|
k$ = 100
|
|
a$ = 352
|
|
stbi__parse_uncompressed_block PROC ; COMDAT
|
|
|
|
; 4978 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00038 90 npad 1
|
|
|
|
; 4979 : stbi_uc header[4];
|
|
; 4980 : int len, nlen, k;
|
|
; 4981 : 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
|
|
|
|
; 4982 : 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:
|
|
|
|
; 4983 : // drain the bit-packed data into header
|
|
; 4984 : k = 0;
|
|
|
|
00066 c7 45 64 00 00
|
|
00 00 mov DWORD PTR k$[rbp], 0
|
|
$LN2@stbi__pars:
|
|
|
|
; 4985 : 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
|
|
|
|
; 4986 : 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 18 mov eax, DWORD PTR [rax+24]
|
|
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
|
|
|
|
; 4987 : a->code_buffer >>= 8;
|
|
|
|
00099 48 8b 85 60 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
000a0 8b 40 18 mov eax, DWORD PTR [rax+24]
|
|
000a3 c1 e8 08 shr eax, 8
|
|
000a6 48 8b 8d 60 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
000ad 89 41 18 mov DWORD PTR [rcx+24], eax
|
|
|
|
; 4988 : 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
|
|
|
|
; 4989 : }
|
|
|
|
000c7 eb a4 jmp SHORT $LN2@stbi__pars
|
|
$LN3@stbi__pars:
|
|
|
|
; 4990 : 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
|
|
|
|
; 4991 : 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:
|
|
|
|
; 4992 : // now fill header the normal way
|
|
; 4993 : while (k < 4)
|
|
|
|
000e7 83 7d 64 04 cmp DWORD PTR k$[rbp], 4
|
|
000eb 7d 1e jge SHORT $LN5@stbi__pars
|
|
|
|
; 4994 : 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:
|
|
|
|
; 4995 : 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
|
|
|
|
; 4996 : 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
|
|
|
|
; 4997 : 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
|
|
|
|
; 4998 : 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:
|
|
|
|
; 4999 : 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
|
|
|
|
; 5000 : 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:
|
|
|
|
; 5001 : 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 20 add rax, QWORD PTR [rcx+32]
|
|
001b2 48 8b 8d 60 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
001b9 48 3b 41 30 cmp rax, QWORD PTR [rcx+48]
|
|
001bd 76 23 jbe SHORT $LN10@stbi__pars
|
|
|
|
; 5002 : 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 20 mov rdx, QWORD PTR [rax+32]
|
|
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
|
|
|
|
; 5003 : return 0;
|
|
|
|
001de 33 c0 xor eax, eax
|
|
001e0 eb 59 jmp SHORT $LN1@stbi__pars
|
|
$LN11@stbi__pars:
|
|
$LN10@stbi__pars:
|
|
|
|
; 5004 : 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 20 mov rcx, QWORD PTR [rax+32]
|
|
001fe e8 00 00 00 00 call memcpy
|
|
00203 90 npad 1
|
|
|
|
; 5005 : 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
|
|
|
|
; 5006 : 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 20 add rax, QWORD PTR [rcx+32]
|
|
0022b 48 8b 8d 60 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
00232 48 89 41 20 mov QWORD PTR [rcx+32], rax
|
|
|
|
; 5007 : return 1;
|
|
|
|
00236 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__pars:
|
|
|
|
; 5008 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4920 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0004f 90 npad 1
|
|
|
|
; 4921 : static const stbi_uc length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
|
|
; 4922 : 11, 4, 12, 3, 13, 2, 14, 1, 15 };
|
|
; 4923 : stbi__zhuffman z_codelength;
|
|
; 4924 : stbi_uc lencodes[286 + 32 + 137]; //padding for maximum single op
|
|
; 4925 : stbi_uc codelength_sizes[19];
|
|
; 4926 : int i, n;
|
|
; 4927 :
|
|
; 4928 : 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
|
|
|
|
; 4929 : 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
|
|
|
|
; 4930 : 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
|
|
|
|
; 4931 : 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
|
|
|
|
; 4932 :
|
|
; 4933 : 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
|
|
|
|
; 4934 : 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
|
|
|
|
; 4935 : 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
|
|
|
|
; 4936 : 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
|
|
|
|
; 4937 : }
|
|
|
|
00129 eb ab jmp SHORT $LN2@stbi__comp
|
|
$LN3@stbi__comp:
|
|
|
|
; 4938 : 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
|
|
|
|
; 4939 : return 0;
|
|
|
|
00145 33 c0 xor eax, eax
|
|
00147 e9 3a 02 00 00 jmp $LN1@stbi__comp
|
|
$LN7@stbi__comp:
|
|
|
|
; 4940 :
|
|
; 4941 : n = 0;
|
|
|
|
0014c c7 85 54 0a 00
|
|
00 00 00 00 00 mov DWORD PTR n$[rbp], 0
|
|
$LN5@stbi__comp:
|
|
|
|
; 4942 : 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
|
|
|
|
; 4943 : 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
|
|
|
|
; 4944 : 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:
|
|
|
|
; 4945 : 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:
|
|
|
|
; 4946 : 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
|
|
|
|
; 4947 : 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:
|
|
|
|
; 4948 : else {
|
|
; 4949 : stbi_uc fill = 0;
|
|
|
|
001d2 c6 85 34 0b 00
|
|
00 00 mov BYTE PTR fill$8[rbp], 0
|
|
|
|
; 4950 : 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
|
|
|
|
; 4951 : 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
|
|
|
|
; 4952 : 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
|
|
|
|
; 4953 : 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:
|
|
|
|
; 4954 : 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:
|
|
|
|
; 4955 : } 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
|
|
|
|
; 4956 : 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:
|
|
|
|
; 4957 : } 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
|
|
|
|
; 4958 : 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
|
|
|
|
; 4959 : } else {
|
|
|
|
00278 eb 11 jmp SHORT $LN18@stbi__comp
|
|
$LN17@stbi__comp:
|
|
|
|
; 4960 : 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:
|
|
|
|
; 4961 : }
|
|
; 4962 : 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
|
|
|
|
; 4963 : 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:
|
|
|
|
; 4964 : 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
|
|
|
|
; 4965 : 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:
|
|
|
|
; 4966 : }
|
|
; 4967 : }
|
|
|
|
00303 e9 4e fe ff ff jmp $LN5@stbi__comp
|
|
$LN6@stbi__comp:
|
|
|
|
; 4968 : 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
|
|
|
|
; 4969 : 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:
|
|
|
|
; 4970 : 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 3c add rax, 60 ; 0000003cH
|
|
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
|
|
|
|
; 4971 : return 0;
|
|
|
|
00349 33 c0 xor eax, eax
|
|
0034b eb 39 jmp SHORT $LN1@stbi__comp
|
|
$LN21@stbi__comp:
|
|
|
|
; 4972 : 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 20 08
|
|
00 00 add rcx, 2080 ; 00000820H
|
|
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
|
|
|
|
; 4973 : return 0;
|
|
|
|
0037d 33 c0 xor eax, eax
|
|
0037f eb 05 jmp SHORT $LN1@stbi__comp
|
|
$LN22@stbi__comp:
|
|
|
|
; 4974 : return 1;
|
|
|
|
00381 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__comp:
|
|
|
|
; 4975 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4849 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 4850 : char *zout = a->zout;
|
|
|
|
00020 48 8b 85 a0 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00027 48 8b 40 20 mov rax, QWORD PTR [rax+32]
|
|
0002b 48 89 45 08 mov QWORD PTR zout$[rbp], rax
|
|
$LN2@stbi__pars:
|
|
|
|
; 4851 : for (;;) {
|
|
; 4852 : 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 3c add rax, 60 ; 0000003cH
|
|
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
|
|
|
|
; 4853 : 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
|
|
|
|
; 4854 : if (z < 0)
|
|
|
|
00055 83 7d 24 00 cmp DWORD PTR z$1[rbp], 0
|
|
00059 7d 11 jge SHORT $LN13@stbi__pars
|
|
|
|
; 4855 : 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 ae 02 00 00 jmp $LN1@stbi__pars
|
|
$LN13@stbi__pars:
|
|
|
|
; 4856 : "Corrupt PNG"); // error in huffman codes
|
|
; 4857 : if (zout >= a->zout_end) {
|
|
|
|
0006c 48 8b 85 a0 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00073 48 8b 40 30 mov rax, QWORD PTR [rax+48]
|
|
00077 48 39 45 08 cmp QWORD PTR zout$[rbp], rax
|
|
0007b 72 30 jb SHORT $LN14@stbi__pars
|
|
|
|
; 4858 : 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
|
|
|
|
; 4859 : return 0;
|
|
|
|
00097 33 c0 xor eax, eax
|
|
00099 e9 7c 02 00 00 jmp $LN1@stbi__pars
|
|
$LN15@stbi__pars:
|
|
|
|
; 4860 : zout = a->zout;
|
|
|
|
0009e 48 8b 85 a0 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
000a5 48 8b 40 20 mov rax, QWORD PTR [rax+32]
|
|
000a9 48 89 45 08 mov QWORD PTR zout$[rbp], rax
|
|
$LN14@stbi__pars:
|
|
|
|
; 4861 : }
|
|
; 4862 : *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
|
|
|
|
; 4863 : } else {
|
|
|
|
000c2 e9 4e 02 00 00 jmp $LN12@stbi__pars
|
|
$LN11@stbi__pars:
|
|
|
|
; 4864 : stbi_uc *p;
|
|
; 4865 : int len, dist;
|
|
; 4866 : if (z == 256) {
|
|
|
|
000c7 81 7d 24 00 01
|
|
00 00 cmp DWORD PTR z$1[rbp], 256 ; 00000100H
|
|
000ce 75 44 jne SHORT $LN16@stbi__pars
|
|
|
|
; 4867 : 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 20 mov QWORD PTR [rax+32], rcx
|
|
|
|
; 4868 : if (a->hit_zeof_once && a->num_bits < 16) {
|
|
|
|
000df 48 8b 85 a0 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
000e6 83 78 14 00 cmp DWORD PTR [rax+20], 0
|
|
000ea 74 1e je SHORT $LN17@stbi__pars
|
|
000ec 48 8b 85 a0 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
000f3 83 78 10 10 cmp DWORD PTR [rax+16], 16
|
|
000f7 7d 11 jge SHORT $LN17@stbi__pars
|
|
|
|
; 4869 : // The first time we hit zeof, we inserted 16 extra zero bits into our bit
|
|
; 4870 : // buffer so the decoder can just do its speculative decoding. But if we
|
|
; 4871 : // actually consumed any of those bits (which is the case when num_bits < 16),
|
|
; 4872 : // the stream actually read past the end so it is malformed.
|
|
; 4873 : return stbi__err("unexpected end", "Corrupt PNG");
|
|
|
|
000f9 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0P@CLDJCNKP@unexpected?5end@
|
|
00100 e8 00 00 00 00 call stbi__err
|
|
00105 e9 10 02 00 00 jmp $LN1@stbi__pars
|
|
$LN17@stbi__pars:
|
|
|
|
; 4874 : }
|
|
; 4875 : return 1;
|
|
|
|
0010a b8 01 00 00 00 mov eax, 1
|
|
0010f e9 06 02 00 00 jmp $LN1@stbi__pars
|
|
$LN16@stbi__pars:
|
|
|
|
; 4876 : }
|
|
; 4877 : if (z >= 286)
|
|
|
|
00114 81 7d 24 1e 01
|
|
00 00 cmp DWORD PTR z$1[rbp], 286 ; 0000011eH
|
|
0011b 7c 11 jl SHORT $LN18@stbi__pars
|
|
|
|
; 4878 : return stbi__err(
|
|
|
|
0011d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@
|
|
00124 e8 00 00 00 00 call stbi__err
|
|
00129 e9 ec 01 00 00 jmp $LN1@stbi__pars
|
|
$LN18@stbi__pars:
|
|
|
|
; 4879 : "bad huffman code",
|
|
; 4880 : "Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data
|
|
; 4881 : z -= 257;
|
|
|
|
0012e 8b 45 24 mov eax, DWORD PTR z$1[rbp]
|
|
00131 2d 01 01 00 00 sub eax, 257 ; 00000101H
|
|
00136 89 45 24 mov DWORD PTR z$1[rbp], eax
|
|
|
|
; 4882 : len = stbi__zlength_base[z];
|
|
|
|
00139 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
|
|
0013d 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__zlength_base
|
|
00144 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
|
|
00147 89 45 64 mov DWORD PTR len$3[rbp], eax
|
|
|
|
; 4883 : if (stbi__zlength_extra[z])
|
|
|
|
0014a 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
|
|
0014e 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__zlength_extra
|
|
00155 83 3c 81 00 cmp DWORD PTR [rcx+rax*4], 0
|
|
00159 74 24 je SHORT $LN19@stbi__pars
|
|
|
|
; 4884 : len += stbi__zreceive(a, stbi__zlength_extra[z]);
|
|
|
|
0015b 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
|
|
0015f 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__zlength_extra
|
|
00166 8b 14 81 mov edx, DWORD PTR [rcx+rax*4]
|
|
00169 48 8b 8d a0 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
00170 e8 00 00 00 00 call stbi__zreceive
|
|
00175 8b 4d 64 mov ecx, DWORD PTR len$3[rbp]
|
|
00178 03 c8 add ecx, eax
|
|
0017a 8b c1 mov eax, ecx
|
|
0017c 89 45 64 mov DWORD PTR len$3[rbp], eax
|
|
$LN19@stbi__pars:
|
|
|
|
; 4885 : z = stbi__zhuffman_decode(a, &a->z_distance);
|
|
|
|
0017f 48 8b 85 a0 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00186 48 05 20 08 00
|
|
00 add rax, 2080 ; 00000820H
|
|
0018c 48 8b d0 mov rdx, rax
|
|
0018f 48 8b 8d a0 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
00196 e8 00 00 00 00 call stbi__zhuffman_decode
|
|
0019b 89 45 24 mov DWORD PTR z$1[rbp], eax
|
|
|
|
; 4886 : if (z < 0 || z >= 30)
|
|
|
|
0019e 83 7d 24 00 cmp DWORD PTR z$1[rbp], 0
|
|
001a2 7c 06 jl SHORT $LN21@stbi__pars
|
|
001a4 83 7d 24 1e cmp DWORD PTR z$1[rbp], 30
|
|
001a8 7c 11 jl SHORT $LN20@stbi__pars
|
|
$LN21@stbi__pars:
|
|
|
|
; 4887 : return stbi__err(
|
|
|
|
001aa 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@
|
|
001b1 e8 00 00 00 00 call stbi__err
|
|
001b6 e9 5f 01 00 00 jmp $LN1@stbi__pars
|
|
$LN20@stbi__pars:
|
|
|
|
; 4888 : "bad huffman code",
|
|
; 4889 : "Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data
|
|
; 4890 : dist = stbi__zdist_base[z];
|
|
|
|
001bb 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
|
|
001bf 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__zdist_base
|
|
001c6 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
|
|
001c9 89 85 84 00 00
|
|
00 mov DWORD PTR dist$4[rbp], eax
|
|
|
|
; 4891 : if (stbi__zdist_extra[z])
|
|
|
|
001cf 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
|
|
001d3 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__zdist_extra
|
|
001da 83 3c 81 00 cmp DWORD PTR [rcx+rax*4], 0
|
|
001de 74 2a je SHORT $LN22@stbi__pars
|
|
|
|
; 4892 : dist += stbi__zreceive(a, stbi__zdist_extra[z]);
|
|
|
|
001e0 48 63 45 24 movsxd rax, DWORD PTR z$1[rbp]
|
|
001e4 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__zdist_extra
|
|
001eb 8b 14 81 mov edx, DWORD PTR [rcx+rax*4]
|
|
001ee 48 8b 8d a0 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
001f5 e8 00 00 00 00 call stbi__zreceive
|
|
001fa 8b 8d 84 00 00
|
|
00 mov ecx, DWORD PTR dist$4[rbp]
|
|
00200 03 c8 add ecx, eax
|
|
00202 8b c1 mov eax, ecx
|
|
00204 89 85 84 00 00
|
|
00 mov DWORD PTR dist$4[rbp], eax
|
|
$LN22@stbi__pars:
|
|
|
|
; 4893 : if (zout - a->zout_start < dist)
|
|
|
|
0020a 48 8b 85 a0 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00211 48 8b 40 28 mov rax, QWORD PTR [rax+40]
|
|
00215 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp]
|
|
00219 48 2b c8 sub rcx, rax
|
|
0021c 48 8b c1 mov rax, rcx
|
|
0021f 48 63 8d 84 00
|
|
00 00 movsxd rcx, DWORD PTR dist$4[rbp]
|
|
00226 48 3b c1 cmp rax, rcx
|
|
00229 7d 11 jge SHORT $LN23@stbi__pars
|
|
|
|
; 4894 : return stbi__err("bad dist", "Corrupt PNG");
|
|
|
|
0022b 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_08DIAPIMGJ@bad?5dist@
|
|
00232 e8 00 00 00 00 call stbi__err
|
|
00237 e9 de 00 00 00 jmp $LN1@stbi__pars
|
|
$LN23@stbi__pars:
|
|
|
|
; 4895 : if (len > a->zout_end - zout) {
|
|
|
|
0023c 48 63 45 64 movsxd rax, DWORD PTR len$3[rbp]
|
|
00240 48 8b 8d a0 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
00247 48 8b 55 08 mov rdx, QWORD PTR zout$[rbp]
|
|
0024b 48 8b 49 30 mov rcx, QWORD PTR [rcx+48]
|
|
0024f 48 2b ca sub rcx, rdx
|
|
00252 48 3b c1 cmp rax, rcx
|
|
00255 7e 2e jle SHORT $LN24@stbi__pars
|
|
|
|
; 4896 : if (!stbi__zexpand(a, zout, len))
|
|
|
|
00257 44 8b 45 64 mov r8d, DWORD PTR len$3[rbp]
|
|
0025b 48 8b 55 08 mov rdx, QWORD PTR zout$[rbp]
|
|
0025f 48 8b 8d a0 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
00266 e8 00 00 00 00 call stbi__zexpand
|
|
0026b 85 c0 test eax, eax
|
|
0026d 75 07 jne SHORT $LN25@stbi__pars
|
|
|
|
; 4897 : return 0;
|
|
|
|
0026f 33 c0 xor eax, eax
|
|
00271 e9 a4 00 00 00 jmp $LN1@stbi__pars
|
|
$LN25@stbi__pars:
|
|
|
|
; 4898 : zout = a->zout;
|
|
|
|
00276 48 8b 85 a0 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
0027d 48 8b 40 20 mov rax, QWORD PTR [rax+32]
|
|
00281 48 89 45 08 mov QWORD PTR zout$[rbp], rax
|
|
$LN24@stbi__pars:
|
|
|
|
; 4899 : }
|
|
; 4900 : p = (stbi_uc *)(zout - dist);
|
|
|
|
00285 48 63 85 84 00
|
|
00 00 movsxd rax, DWORD PTR dist$4[rbp]
|
|
0028c 48 8b 4d 08 mov rcx, QWORD PTR zout$[rbp]
|
|
00290 48 2b c8 sub rcx, rax
|
|
00293 48 8b c1 mov rax, rcx
|
|
00296 48 89 45 48 mov QWORD PTR p$2[rbp], rax
|
|
|
|
; 4901 : if (dist == 1) { // run of one byte; common in images.
|
|
|
|
0029a 83 bd 84 00 00
|
|
00 01 cmp DWORD PTR dist$4[rbp], 1
|
|
002a1 75 3b jne SHORT $LN26@stbi__pars
|
|
|
|
; 4902 : stbi_uc v = *p;
|
|
|
|
002a3 48 8b 45 48 mov rax, QWORD PTR p$2[rbp]
|
|
002a7 0f b6 00 movzx eax, BYTE PTR [rax]
|
|
002aa 88 85 a4 00 00
|
|
00 mov BYTE PTR v$5[rbp], al
|
|
|
|
; 4903 : if (len) {
|
|
|
|
002b0 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0
|
|
002b4 74 26 je SHORT $LN28@stbi__pars
|
|
$LN7@stbi__pars:
|
|
|
|
; 4904 : do
|
|
; 4905 : *zout++ = v;
|
|
|
|
002b6 48 8b 45 08 mov rax, QWORD PTR zout$[rbp]
|
|
002ba 0f b6 8d a4 00
|
|
00 00 movzx ecx, BYTE PTR v$5[rbp]
|
|
002c1 88 08 mov BYTE PTR [rax], cl
|
|
002c3 48 8b 45 08 mov rax, QWORD PTR zout$[rbp]
|
|
002c7 48 ff c0 inc rax
|
|
002ca 48 89 45 08 mov QWORD PTR zout$[rbp], rax
|
|
|
|
; 4906 : while (--len);
|
|
|
|
002ce 8b 45 64 mov eax, DWORD PTR len$3[rbp]
|
|
002d1 ff c8 dec eax
|
|
002d3 89 45 64 mov DWORD PTR len$3[rbp], eax
|
|
002d6 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0
|
|
002da 75 da jne SHORT $LN7@stbi__pars
|
|
$LN28@stbi__pars:
|
|
|
|
; 4907 : }
|
|
; 4908 : } else {
|
|
|
|
002dc eb 37 jmp SHORT $LN27@stbi__pars
|
|
$LN26@stbi__pars:
|
|
|
|
; 4909 : if (len) {
|
|
|
|
002de 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0
|
|
002e2 74 31 je SHORT $LN29@stbi__pars
|
|
$LN10@stbi__pars:
|
|
|
|
; 4910 : do
|
|
; 4911 : *zout++ = *p++;
|
|
|
|
002e4 48 8b 45 08 mov rax, QWORD PTR zout$[rbp]
|
|
002e8 48 8b 4d 48 mov rcx, QWORD PTR p$2[rbp]
|
|
002ec 0f b6 09 movzx ecx, BYTE PTR [rcx]
|
|
002ef 88 08 mov BYTE PTR [rax], cl
|
|
002f1 48 8b 45 08 mov rax, QWORD PTR zout$[rbp]
|
|
002f5 48 ff c0 inc rax
|
|
002f8 48 89 45 08 mov QWORD PTR zout$[rbp], rax
|
|
002fc 48 8b 45 48 mov rax, QWORD PTR p$2[rbp]
|
|
00300 48 ff c0 inc rax
|
|
00303 48 89 45 48 mov QWORD PTR p$2[rbp], rax
|
|
|
|
; 4912 : while (--len);
|
|
|
|
00307 8b 45 64 mov eax, DWORD PTR len$3[rbp]
|
|
0030a ff c8 dec eax
|
|
0030c 89 45 64 mov DWORD PTR len$3[rbp], eax
|
|
0030f 83 7d 64 00 cmp DWORD PTR len$3[rbp], 0
|
|
00313 75 cf jne SHORT $LN10@stbi__pars
|
|
$LN29@stbi__pars:
|
|
$LN27@stbi__pars:
|
|
$LN12@stbi__pars:
|
|
|
|
; 4913 : }
|
|
; 4914 : }
|
|
; 4915 : }
|
|
; 4916 : }
|
|
|
|
00315 e9 15 fd ff ff jmp $LN2@stbi__pars
|
|
$LN1@stbi__pars:
|
|
|
|
; 4917 : }
|
|
|
|
0031a 48 8d a5 88 01
|
|
00 00 lea rsp, QWORD PTR [rbp+392]
|
|
00321 5f pop rdi
|
|
00322 5d pop rbp
|
|
00323 c3 ret 0
|
|
stbi__parse_huffman_block ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__zexpand
|
|
_TEXT SEGMENT
|
|
q$ = 8
|
|
cur$ = 36
|
|
limit$ = 68
|
|
old_limit$ = 100
|
|
z$ = 352
|
|
zout$ = 360
|
|
n$ = 368
|
|
stbi__zexpand PROC ; COMDAT
|
|
|
|
; 4808 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 4809 : char *q;
|
|
; 4810 : unsigned int cur, limit, old_limit;
|
|
; 4811 : 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 20 mov QWORD PTR [rax+32], rcx
|
|
|
|
; 4812 : if (!z->z_expandable)
|
|
|
|
0003c 48 8b 85 60 01
|
|
00 00 mov rax, QWORD PTR z$[rbp]
|
|
00043 83 78 38 00 cmp DWORD PTR [rax+56], 0
|
|
00047 75 11 jne SHORT $LN4@stbi__zexp
|
|
|
|
; 4813 : 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:
|
|
|
|
; 4814 : 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 28 mov rcx, QWORD PTR [rcx+40]
|
|
0006c 48 8b 40 20 mov rax, QWORD PTR [rax+32]
|
|
00070 48 2b c1 sub rax, rcx
|
|
00073 89 45 24 mov DWORD PTR cur$[rbp], eax
|
|
|
|
; 4815 : 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 28 mov rcx, QWORD PTR [rcx+40]
|
|
00088 48 8b 40 30 mov rax, QWORD PTR [rax+48]
|
|
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
|
|
|
|
; 4816 : 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
|
|
|
|
; 4817 : 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:
|
|
|
|
; 4818 : 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
|
|
|
|
; 4819 : 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
|
|
|
|
; 4820 : 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:
|
|
|
|
; 4821 : 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
|
|
|
|
; 4822 : }
|
|
|
|
000ea eb cd jmp SHORT $LN2@stbi__zexp
|
|
$LN3@stbi__zexp:
|
|
|
|
; 4823 : 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 28 mov rcx, QWORD PTR [rax+40]
|
|
000fc ff 15 00 00 00
|
|
00 call QWORD PTR __imp_realloc
|
|
00102 48 89 45 08 mov QWORD PTR q$[rbp], rax
|
|
|
|
; 4824 : STBI_NOTUSED(old_limit);
|
|
; 4825 : if (q == NULL)
|
|
|
|
00106 48 83 7d 08 00 cmp QWORD PTR q$[rbp], 0
|
|
0010b 75 0e jne SHORT $LN7@stbi__zexp
|
|
|
|
; 4826 : 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:
|
|
|
|
; 4827 : 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 28 mov QWORD PTR [rax+40], rcx
|
|
|
|
; 4828 : 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 20 mov QWORD PTR [rcx+32], rax
|
|
|
|
; 4829 : 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 30 mov QWORD PTR [rcx+48], rax
|
|
|
|
; 4830 : return 1;
|
|
|
|
0015a b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__zexp:
|
|
|
|
; 4831 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__zhuffman_decode
|
|
_TEXT SEGMENT
|
|
b$ = 4
|
|
s$ = 36
|
|
tv145 = 248
|
|
a$ = 288
|
|
z$ = 296
|
|
stbi__zhuffman_decode PROC ; COMDAT
|
|
|
|
; 4778 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 4779 : int b, s;
|
|
; 4780 : 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 5d jge SHORT $LN2@stbi__zhuf
|
|
|
|
; 4781 : 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 40 je SHORT $LN3@stbi__zhuf
|
|
|
|
; 4782 : if (!a->hit_zeof_once) {
|
|
|
|
00042 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00049 83 78 14 00 cmp DWORD PTR [rax+20], 0
|
|
0004d 75 27 jne SHORT $LN5@stbi__zhuf
|
|
|
|
; 4783 : // This is the first time we hit eof, insert 16 extra padding btis
|
|
; 4784 : // to allow us to keep going; if we actually consume any of them
|
|
; 4785 : // though, that is invalid data. This is caught later.
|
|
; 4786 : a->hit_zeof_once = 1;
|
|
|
|
0004f 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00056 c7 40 14 01 00
|
|
00 00 mov DWORD PTR [rax+20], 1
|
|
|
|
; 4787 : a->num_bits += 16; // add 16 implicit zero bits
|
|
|
|
0005d 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00064 8b 40 10 mov eax, DWORD PTR [rax+16]
|
|
00067 83 c0 10 add eax, 16
|
|
0006a 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
00071 89 41 10 mov DWORD PTR [rcx+16], eax
|
|
|
|
; 4788 : } else {
|
|
|
|
00074 eb 0a jmp SHORT $LN6@stbi__zhuf
|
|
$LN5@stbi__zhuf:
|
|
|
|
; 4789 : // We already inserted our extra 16 padding bits and are again
|
|
; 4790 : // out, this stream is actually prematurely terminated.
|
|
; 4791 : return -1;
|
|
|
|
00076 b8 ff ff ff ff mov eax, -1
|
|
0007b e9 9d 00 00 00 jmp $LN1@stbi__zhuf
|
|
$LN6@stbi__zhuf:
|
|
|
|
; 4792 : }
|
|
; 4793 : } else {
|
|
|
|
00080 eb 0d jmp SHORT $LN4@stbi__zhuf
|
|
$LN3@stbi__zhuf:
|
|
|
|
; 4794 : stbi__fill_bits(a);
|
|
|
|
00082 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
00089 e8 00 00 00 00 call stbi__fill_bits
|
|
0008e 90 npad 1
|
|
$LN4@stbi__zhuf:
|
|
$LN2@stbi__zhuf:
|
|
|
|
; 4795 : }
|
|
; 4796 : }
|
|
; 4797 : b = z->fast[a->code_buffer & STBI__ZFAST_MASK];
|
|
|
|
0008f 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
00096 8b 40 18 mov eax, DWORD PTR [rax+24]
|
|
00099 25 ff 01 00 00 and eax, 511 ; 000001ffH
|
|
0009e 8b c0 mov eax, eax
|
|
000a0 48 8b 8d 28 01
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
000a7 0f b7 04 41 movzx eax, WORD PTR [rcx+rax*2]
|
|
000ab 89 45 04 mov DWORD PTR b$[rbp], eax
|
|
|
|
; 4798 : if (b) {
|
|
|
|
000ae 83 7d 04 00 cmp DWORD PTR b$[rbp], 0
|
|
000b2 74 56 je SHORT $LN7@stbi__zhuf
|
|
|
|
; 4799 : s = b >> 9;
|
|
|
|
000b4 8b 45 04 mov eax, DWORD PTR b$[rbp]
|
|
000b7 c1 f8 09 sar eax, 9
|
|
000ba 89 45 24 mov DWORD PTR s$[rbp], eax
|
|
|
|
; 4800 : a->code_buffer >>= s;
|
|
|
|
000bd 8b 45 24 mov eax, DWORD PTR s$[rbp]
|
|
000c0 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
000c7 48 89 8d f8 00
|
|
00 00 mov QWORD PTR tv145[rbp], rcx
|
|
000ce 0f b6 c8 movzx ecx, al
|
|
000d1 48 8b 85 f8 00
|
|
00 00 mov rax, QWORD PTR tv145[rbp]
|
|
000d8 8b 40 18 mov eax, DWORD PTR [rax+24]
|
|
000db d3 e8 shr eax, cl
|
|
000dd 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
000e4 89 41 18 mov DWORD PTR [rcx+24], eax
|
|
|
|
; 4801 : a->num_bits -= s;
|
|
|
|
000e7 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR a$[rbp]
|
|
000ee 8b 4d 24 mov ecx, DWORD PTR s$[rbp]
|
|
000f1 8b 40 10 mov eax, DWORD PTR [rax+16]
|
|
000f4 2b c1 sub eax, ecx
|
|
000f6 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
000fd 89 41 10 mov DWORD PTR [rcx+16], eax
|
|
|
|
; 4802 : return b & 511;
|
|
|
|
00100 8b 45 04 mov eax, DWORD PTR b$[rbp]
|
|
00103 25 ff 01 00 00 and eax, 511 ; 000001ffH
|
|
00108 eb 13 jmp SHORT $LN1@stbi__zhuf
|
|
$LN7@stbi__zhuf:
|
|
|
|
; 4803 : }
|
|
; 4804 : return stbi__zhuffman_decode_slowpath(a, z);
|
|
|
|
0010a 48 8b 95 28 01
|
|
00 00 mov rdx, QWORD PTR z$[rbp]
|
|
00111 48 8b 8d 20 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
00118 e8 00 00 00 00 call stbi__zhuffman_decode_slowpath
|
|
$LN1@stbi__zhuf:
|
|
|
|
; 4805 : }
|
|
|
|
0011d 48 8d a5 08 01
|
|
00 00 lea rsp, QWORD PTR [rbp+264]
|
|
00124 5f pop rdi
|
|
00125 5d pop rbp
|
|
00126 c3 ret 0
|
|
stbi__zhuffman_decode ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4756 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 4757 : int b, s, k;
|
|
; 4758 : // not resolved by fast table, so compute it the slow way
|
|
; 4759 : // use jpeg approach, which requires MSbits at top
|
|
; 4760 : 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 18 mov ecx, DWORD PTR [rax+24]
|
|
00034 e8 00 00 00 00 call stbi__bit_reverse
|
|
00039 89 45 44 mov DWORD PTR k$[rbp], eax
|
|
|
|
; 4761 : 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:
|
|
|
|
; 4762 : 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
|
|
|
|
; 4763 : break;
|
|
|
|
00064 eb 02 jmp SHORT $LN3@stbi__zhuf
|
|
$LN5@stbi__zhuf:
|
|
00066 eb dd jmp SHORT $LN2@stbi__zhuf
|
|
$LN3@stbi__zhuf:
|
|
|
|
; 4764 : if (s >= 16)
|
|
|
|
00068 83 7d 24 10 cmp DWORD PTR s$[rbp], 16
|
|
0006c 7c 0a jl SHORT $LN6@stbi__zhuf
|
|
|
|
; 4765 : 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:
|
|
|
|
; 4766 : // code size is s, so:
|
|
; 4767 : 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
|
|
|
|
; 4768 : 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
|
|
|
|
; 4769 : 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:
|
|
|
|
; 4770 : 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
|
|
|
|
; 4771 : 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:
|
|
|
|
; 4772 : 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 18 mov eax, DWORD PTR [rax+24]
|
|
00102 d3 e8 shr eax, cl
|
|
00104 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR a$[rbp]
|
|
0010b 89 41 18 mov DWORD PTR [rcx+24], eax
|
|
|
|
; 4773 : 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
|
|
|
|
; 4774 : 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:
|
|
|
|
; 4775 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__zreceive
|
|
_TEXT SEGMENT
|
|
k$ = 4
|
|
tv84 = 212
|
|
tv90 = 216
|
|
z$ = 256
|
|
n$ = 264
|
|
stbi__zreceive PROC ; COMDAT
|
|
|
|
; 4745 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 4746 : unsigned int k;
|
|
; 4747 : 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
|
|
|
|
; 4748 : 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:
|
|
|
|
; 4749 : 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 18 mov ecx, DWORD PTR [rcx+24]
|
|
0006b 23 c8 and ecx, eax
|
|
0006d 8b c1 mov eax, ecx
|
|
0006f 89 45 04 mov DWORD PTR k$[rbp], eax
|
|
|
|
; 4750 : 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 18 mov eax, DWORD PTR [rax+24]
|
|
00093 d3 e8 shr eax, cl
|
|
00095 48 8b 8d 00 01
|
|
00 00 mov rcx, QWORD PTR z$[rbp]
|
|
0009c 89 41 18 mov DWORD PTR [rcx+24], eax
|
|
|
|
; 4751 : 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
|
|
|
|
; 4752 : return k;
|
|
|
|
000bb 8b 45 04 mov eax, DWORD PTR k$[rbp]
|
|
|
|
; 4753 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__fill_bits
|
|
_TEXT SEGMENT
|
|
tv92 = 192
|
|
z$ = 240
|
|
stbi__fill_bits PROC ; COMDAT
|
|
|
|
; 4733 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
$LN4@stbi__fill:
|
|
|
|
; 4734 : do {
|
|
; 4735 : 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 18 cmp DWORD PTR [rcx+24], eax
|
|
0004a 72 17 jb SHORT $LN5@stbi__fill
|
|
|
|
; 4736 : 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
|
|
|
|
; 4737 : return;
|
|
|
|
00061 eb 5b jmp SHORT $LN1@stbi__fill
|
|
$LN5@stbi__fill:
|
|
|
|
; 4738 : }
|
|
; 4739 : 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 18 mov ecx, DWORD PTR [rcx+24]
|
|
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 18 mov DWORD PTR [rcx+24], eax
|
|
|
|
; 4740 : 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
|
|
|
|
; 4741 : } 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:
|
|
|
|
; 4742 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__zget8
|
|
_TEXT SEGMENT
|
|
tv73 = 192
|
|
z$ = 240
|
|
stbi__zget8 PROC ; COMDAT
|
|
|
|
; 4728 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 4729 : 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]
|
|
|
|
; 4730 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__zeof
|
|
_TEXT SEGMENT
|
|
tv67 = 192
|
|
z$ = 240
|
|
stbi__zeof PROC ; COMDAT
|
|
|
|
; 4723 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 4724 : 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]
|
|
|
|
; 4725 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4655 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00053 90 npad 1
|
|
|
|
; 4656 : int i, k = 0;
|
|
|
|
00054 c7 45 24 00 00
|
|
00 00 mov DWORD PTR k$[rbp], 0
|
|
|
|
; 4657 : int code, next_code[16], sizes[17];
|
|
; 4658 :
|
|
; 4659 : // DEFLATE spec for generating codes
|
|
; 4660 : 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
|
|
|
|
; 4661 : 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
|
|
|
|
; 4662 : 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
|
|
|
|
; 4663 : ++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:
|
|
|
|
; 4664 : 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
|
|
|
|
; 4665 : 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
|
|
|
|
; 4666 : 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
|
|
|
|
; 4667 : 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:
|
|
|
|
; 4668 : code = 0;
|
|
|
|
0012b c7 45 44 00 00
|
|
00 00 mov DWORD PTR code$[rbp], 0
|
|
|
|
; 4669 : 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
|
|
|
|
; 4670 : 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
|
|
|
|
; 4671 : 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
|
|
|
|
; 4672 : 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
|
|
|
|
; 4673 : 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
|
|
|
|
; 4674 : 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
|
|
|
|
; 4675 : 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
|
|
|
|
; 4676 : 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:
|
|
|
|
; 4677 : 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
|
|
|
|
; 4678 : 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
|
|
|
|
; 4679 : 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
|
|
|
|
; 4680 : }
|
|
|
|
0020e e9 28 ff ff ff jmp $LN8@stbi__zbui
|
|
$LN9@stbi__zbui:
|
|
|
|
; 4681 : 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
|
|
|
|
; 4682 : 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
|
|
|
|
; 4683 : 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
|
|
|
|
; 4684 : 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
|
|
|
|
; 4685 : 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
|
|
|
|
; 4686 : 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
|
|
|
|
; 4687 : 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
|
|
|
|
; 4688 : 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
|
|
|
|
; 4689 : 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
|
|
|
|
; 4690 : 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:
|
|
|
|
; 4691 : 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
|
|
|
|
; 4692 : 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
|
|
|
|
; 4693 : 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
|
|
|
|
; 4694 : }
|
|
|
|
00370 eb ad jmp SHORT $LN14@stbi__zbui
|
|
$LN15@stbi__zbui:
|
|
$LN20@stbi__zbui:
|
|
|
|
; 4695 : }
|
|
; 4696 : ++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:
|
|
|
|
; 4697 : }
|
|
; 4698 : }
|
|
|
|
0038a e9 a8 fe ff ff jmp $LN11@stbi__zbui
|
|
$LN12@stbi__zbui:
|
|
|
|
; 4699 : return 1;
|
|
|
|
0038f b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__zbui:
|
|
|
|
; 4700 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__bit_reverse
|
|
_TEXT SEGMENT
|
|
v$ = 224
|
|
bits$ = 232
|
|
stbi__bit_reverse PROC ; COMDAT
|
|
|
|
; 4647 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00022 90 npad 1
|
|
|
|
; 4648 : 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 28 12 00
|
|
00 mov r8d, 4648 ; 00001228H
|
|
00032 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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_:
|
|
|
|
; 4649 : // to bit reverse n bits, reverse 16 and shift
|
|
; 4650 : // e.g. 11 bits, bit reverse and shift away 5
|
|
; 4651 : 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
|
|
|
|
; 4652 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__bitreverse16
|
|
_TEXT SEGMENT
|
|
n$ = 224
|
|
stbi__bitreverse16 PROC ; COMDAT
|
|
|
|
; 4638 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 4639 : 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
|
|
|
|
; 4640 : 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
|
|
|
|
; 4641 : 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
|
|
|
|
; 4642 : 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
|
|
|
|
; 4643 : return n;
|
|
|
|
000b1 8b 85 e0 00 00
|
|
00 mov eax, DWORD PTR n$[rbp]
|
|
|
|
; 4644 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__jpeg_info_raw
|
|
_TEXT SEGMENT
|
|
tv80 = 192
|
|
j$ = 240
|
|
x$ = 248
|
|
y$ = 256
|
|
comp$ = 264
|
|
stbi__jpeg_info_raw PROC ; COMDAT
|
|
|
|
; 4584 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 4585 : 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
|
|
|
|
; 4586 : 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
|
|
|
|
; 4587 : return 0;
|
|
|
|
00054 33 c0 xor eax, eax
|
|
00056 e9 83 00 00 00 jmp $LN1@stbi__jpeg
|
|
$LN2@stbi__jpeg:
|
|
|
|
; 4588 : }
|
|
; 4589 : 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
|
|
|
|
; 4590 : *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:
|
|
|
|
; 4591 : 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
|
|
|
|
; 4592 : *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:
|
|
|
|
; 4593 : 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
|
|
|
|
; 4594 : *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:
|
|
|
|
; 4595 : return 1;
|
|
|
|
000d9 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__jpeg:
|
|
|
|
; 4596 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4359 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 4360 : int n, decode_n, is_rgb;
|
|
; 4361 : 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
|
|
|
|
; 4362 :
|
|
; 4363 : // validate req_comp
|
|
; 4364 : 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_:
|
|
|
|
; 4365 : 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_:
|
|
|
|
; 4366 :
|
|
; 4367 : // load a jpeg image from whichever source, but leave in YCbCr format
|
|
; 4368 : 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_
|
|
|
|
; 4369 : 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
|
|
|
|
; 4370 : return NULL;
|
|
|
|
000cd 33 c0 xor eax, eax
|
|
000cf e9 d6 11 00 00 jmp $LN1@load_jpeg_
|
|
$LN43@load_jpeg_:
|
|
|
|
; 4371 : }
|
|
; 4372 :
|
|
; 4373 : // determine actual number of components to generate
|
|
; 4374 : 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
|
|
|
|
; 4375 :
|
|
; 4376 : 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
|
|
|
|
; 4377 :
|
|
; 4378 : 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_
|
|
|
|
; 4379 : 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_:
|
|
|
|
; 4380 : else
|
|
; 4381 : 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_:
|
|
|
|
; 4382 :
|
|
; 4383 : // nothing to do if no components requested; check this now to avoid
|
|
; 4384 : // accessing uninitialized coutput[0] later
|
|
; 4385 : if (decode_n <= 0) {
|
|
|
|
001ba 83 7d 24 00 cmp DWORD PTR decode_n$[rbp], 0
|
|
001be 7f 14 jg SHORT $LN46@load_jpeg_
|
|
|
|
; 4386 : 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
|
|
|
|
; 4387 : return NULL;
|
|
|
|
001cd 33 c0 xor eax, eax
|
|
001cf e9 d6 10 00 00 jmp $LN1@load_jpeg_
|
|
$LN46@load_jpeg_:
|
|
|
|
; 4388 : }
|
|
; 4389 :
|
|
; 4390 : // resample and color-convert
|
|
; 4391 : {
|
|
; 4392 : int k;
|
|
; 4393 : unsigned int i, j;
|
|
; 4394 : stbi_uc *output;
|
|
; 4395 : 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
|
|
|
|
; 4396 :
|
|
; 4397 : stbi__resample res_comp[4];
|
|
; 4398 :
|
|
; 4399 : 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_
|
|
|
|
; 4400 : 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
|
|
|
|
; 4401 :
|
|
; 4402 : // allocate line buffer big enough for upsampling off the edges
|
|
; 4403 : // with upsample factor of 4
|
|
; 4404 : 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
|
|
|
|
; 4405 : 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_
|
|
|
|
; 4406 : 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
|
|
|
|
; 4407 : 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_:
|
|
|
|
; 4408 : }
|
|
; 4409 :
|
|
; 4410 : 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
|
|
|
|
; 4411 : 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
|
|
|
|
; 4412 : 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
|
|
|
|
; 4413 : 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
|
|
|
|
; 4414 : 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
|
|
|
|
; 4415 : 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
|
|
|
|
; 4416 :
|
|
; 4417 : 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_
|
|
|
|
; 4418 : 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_:
|
|
|
|
; 4419 : 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_
|
|
|
|
; 4420 : 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_:
|
|
|
|
; 4421 : 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_
|
|
|
|
; 4422 : 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_:
|
|
|
|
; 4423 : 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_
|
|
|
|
; 4424 : 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_:
|
|
|
|
; 4425 : else
|
|
; 4426 : 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_:
|
|
|
|
; 4427 : }
|
|
|
|
00493 e9 71 fd ff ff jmp $LN2@load_jpeg_
|
|
$LN3@load_jpeg_:
|
|
|
|
; 4428 :
|
|
; 4429 : // can't error after this so, this is safe
|
|
; 4430 : 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
|
|
|
|
; 4431 : 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_
|
|
|
|
; 4432 : 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
|
|
|
|
; 4433 : 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_:
|
|
|
|
; 4434 : }
|
|
; 4435 :
|
|
; 4436 : // now go ahead and resample
|
|
; 4437 : 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_
|
|
|
|
; 4438 : 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
|
|
|
|
; 4439 : 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_
|
|
|
|
; 4440 : 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
|
|
|
|
; 4441 : 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
|
|
|
|
; 4442 : 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
|
|
|
|
; 4443 : y_bot ? r->line1 : r->line0,
|
|
; 4444 : y_bot ? r->line0 : r->line1, r->w_lores,
|
|
; 4445 : r->hs);
|
|
; 4446 : 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_
|
|
|
|
; 4447 : 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
|
|
|
|
; 4448 : 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
|
|
|
|
; 4449 : 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_
|
|
|
|
; 4450 : 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_:
|
|
|
|
; 4451 : }
|
|
; 4452 : }
|
|
|
|
0075c e9 1c fe ff ff jmp $LN8@load_jpeg_
|
|
$LN9@load_jpeg_:
|
|
|
|
; 4453 : 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_
|
|
|
|
; 4454 : 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
|
|
|
|
; 4455 : 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_
|
|
|
|
; 4456 : 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_
|
|
|
|
; 4457 : 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_
|
|
|
|
; 4458 : 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
|
|
|
|
; 4459 : 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
|
|
|
|
; 4460 : 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
|
|
|
|
; 4461 : 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
|
|
|
|
; 4462 : 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
|
|
|
|
; 4463 : }
|
|
|
|
00882 e9 26 ff ff ff jmp $LN11@load_jpeg_
|
|
$LN12@load_jpeg_:
|
|
|
|
; 4464 : } else {
|
|
|
|
00887 eb 57 jmp SHORT $LN64@load_jpeg_
|
|
$LN63@load_jpeg_:
|
|
|
|
; 4465 : 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_:
|
|
|
|
; 4466 : coutput[2], z->s->img_x, n);
|
|
; 4467 : }
|
|
|
|
008e0 e9 2d 04 00 00 jmp $LN62@load_jpeg_
|
|
$LN61@load_jpeg_:
|
|
|
|
; 4468 : } 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_
|
|
|
|
; 4469 : 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_
|
|
|
|
; 4470 : 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_
|
|
|
|
; 4471 : 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
|
|
|
|
; 4472 : 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
|
|
|
|
; 4473 : 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
|
|
|
|
; 4474 : 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
|
|
|
|
; 4475 : 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
|
|
|
|
; 4476 : 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
|
|
|
|
; 4477 : }
|
|
|
|
00a3a e9 da fe ff ff jmp $LN14@load_jpeg_
|
|
$LN15@load_jpeg_:
|
|
|
|
; 4478 : } 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_
|
|
|
|
; 4479 : 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
|
|
|
|
; 4480 : coutput[2], z->s->img_x, n);
|
|
; 4481 : 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_
|
|
|
|
; 4482 : 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
|
|
|
|
; 4483 : 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
|
|
|
|
; 4484 : 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
|
|
|
|
; 4485 : 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
|
|
|
|
; 4486 : 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
|
|
|
|
; 4487 : }
|
|
|
|
00bd7 e9 df fe ff ff jmp $LN17@load_jpeg_
|
|
$LN18@load_jpeg_:
|
|
|
|
; 4488 : } else { // YCbCr + alpha? Ignore the fourth channel for now
|
|
|
|
00bdc eb 57 jmp SHORT $LN70@load_jpeg_
|
|
$LN69@load_jpeg_:
|
|
|
|
; 4489 : 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_:
|
|
|
|
; 4490 : coutput[2], z->s->img_x, n);
|
|
; 4491 : }
|
|
; 4492 : } else
|
|
|
|
00c35 e9 d8 00 00 00 jmp $LN66@load_jpeg_
|
|
$LN65@load_jpeg_:
|
|
|
|
; 4493 : 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_
|
|
|
|
; 4494 : 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
|
|
|
|
; 4495 : 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
|
|
|
|
; 4496 : 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
|
|
|
|
; 4497 : }
|
|
|
|
00d0d e9 34 ff ff ff jmp $LN20@load_jpeg_
|
|
$LN21@load_jpeg_:
|
|
$LN66@load_jpeg_:
|
|
$LN62@load_jpeg_:
|
|
|
|
; 4498 : } else {
|
|
|
|
00d12 e9 10 05 00 00 jmp $LN60@load_jpeg_
|
|
$LN59@load_jpeg_:
|
|
|
|
; 4499 : 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_
|
|
|
|
; 4500 : 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_
|
|
|
|
; 4501 : 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_
|
|
|
|
; 4502 : *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_:
|
|
|
|
; 4503 : coutput[1][i],
|
|
; 4504 : coutput[2][i]);
|
|
|
|
00de7 e9 db 00 00 00 jmp $LN74@load_jpeg_
|
|
$LN73@load_jpeg_:
|
|
|
|
; 4505 : else {
|
|
; 4506 : 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_
|
|
|
|
; 4507 : 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
|
|
|
|
; 4508 : coutput[1][i],
|
|
; 4509 : coutput[2][i]);
|
|
; 4510 : 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
|
|
|
|
; 4511 : }
|
|
|
|
00ec2 e9 31 ff ff ff jmp $LN26@load_jpeg_
|
|
$LN27@load_jpeg_:
|
|
$LN74@load_jpeg_:
|
|
|
|
; 4512 : }
|
|
|
|
00ec7 e9 5b 03 00 00 jmp $LN72@load_jpeg_
|
|
$LN71@load_jpeg_:
|
|
|
|
; 4513 : } 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_
|
|
|
|
; 4514 : 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_
|
|
|
|
; 4515 : 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
|
|
|
|
; 4516 : 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
|
|
|
|
; 4517 : 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
|
|
|
|
; 4518 : 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
|
|
|
|
; 4519 : 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
|
|
|
|
; 4520 : 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
|
|
|
|
; 4521 : 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
|
|
|
|
; 4522 : }
|
|
|
|
0103a e9 c1 fe ff ff jmp $LN29@load_jpeg_
|
|
$LN30@load_jpeg_:
|
|
|
|
; 4523 : } 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_
|
|
|
|
; 4524 : 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_
|
|
|
|
; 4525 : 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
|
|
|
|
; 4526 : coutput[3][i]);
|
|
; 4527 : 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
|
|
|
|
; 4528 : 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
|
|
|
|
; 4529 : }
|
|
|
|
01135 e9 3e ff ff ff jmp $LN32@load_jpeg_
|
|
$LN33@load_jpeg_:
|
|
|
|
; 4530 : } else {
|
|
|
|
0113a e9 e8 00 00 00 jmp $LN78@load_jpeg_
|
|
$LN77@load_jpeg_:
|
|
|
|
; 4531 : 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
|
|
|
|
; 4532 : if (n == 1)
|
|
|
|
01157 83 7d 04 01 cmp DWORD PTR n$[rbp], 1
|
|
0115b 75 54 jne SHORT $LN79@load_jpeg_
|
|
|
|
; 4533 : 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_
|
|
|
|
; 4534 : 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_:
|
|
|
|
; 4535 : else
|
|
; 4536 : 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_
|
|
|
|
; 4537 : *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
|
|
|
|
; 4538 : *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
|
|
|
|
; 4539 : }
|
|
|
|
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_:
|
|
|
|
; 4540 : }
|
|
; 4541 : }
|
|
; 4542 : }
|
|
|
|
01227 e9 f2 f2 ff ff jmp $LN5@load_jpeg_
|
|
$LN6@load_jpeg_:
|
|
|
|
; 4543 : 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
|
|
|
|
; 4544 : *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
|
|
|
|
; 4545 : *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
|
|
|
|
; 4546 : 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_
|
|
|
|
; 4547 : *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_:
|
|
|
|
; 4548 : return output;
|
|
|
|
012a3 48 8b 85 c8 00
|
|
00 00 mov rax, QWORD PTR output$8[rbp]
|
|
$LN1@load_jpeg_:
|
|
|
|
; 4549 : }
|
|
; 4550 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__blinn_8x8
|
|
_TEXT SEGMENT
|
|
t$ = 4
|
|
x$ = 256
|
|
y$ = 264
|
|
stbi__blinn_8x8 PROC ; COMDAT
|
|
|
|
; 4353 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00022 90 npad 1
|
|
|
|
; 4354 : 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
|
|
|
|
; 4355 : 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
|
|
|
|
; 4356 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__cleanup_jpeg
|
|
_TEXT SEGMENT
|
|
j$ = 224
|
|
stbi__cleanup_jpeg PROC ; COMDAT
|
|
|
|
; 4338 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 4339 : 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
|
|
|
|
; 4340 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__setup_jpeg
|
|
_TEXT SEGMENT
|
|
j$ = 224
|
|
stbi__setup_jpeg PROC ; COMDAT
|
|
|
|
; 4316 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 4317 : 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
|
|
|
|
; 4318 : 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
|
|
|
|
; 4319 : 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
|
|
|
|
; 4320 :
|
|
; 4321 : #ifdef STBI_SSE2
|
|
; 4322 : 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
|
|
|
|
; 4323 : 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
|
|
|
|
; 4324 : 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
|
|
|
|
; 4325 : 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:
|
|
|
|
; 4326 : }
|
|
; 4327 : #endif
|
|
; 4328 :
|
|
; 4329 : #ifdef STBI_NEON
|
|
; 4330 : j->idct_block_kernel = stbi__idct_simd;
|
|
; 4331 : j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;
|
|
; 4332 : j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;
|
|
; 4333 : #endif
|
|
; 4334 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4165 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 4166 : int i = 0;
|
|
|
|
0002f c7 45 04 00 00
|
|
00 00 mov DWORD PTR i$[rbp], 0
|
|
|
|
; 4167 :
|
|
; 4168 : #ifdef STBI_SSE2
|
|
; 4169 : // step == 3 is pretty ugly on the final interleave, and i'm not convinced
|
|
; 4170 : // it's useful in practice (you wouldn't use it for textures, for example).
|
|
; 4171 : // so just accelerate step == 4 case.
|
|
; 4172 : 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
|
|
|
|
; 4173 : // this is a fairly straightforward implementation and not super-optimized.
|
|
; 4174 : __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
|
|
|
|
; 4175 : __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
|
|
|
|
; 4176 : __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
|
|
|
|
; 4177 : __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
|
|
|
|
; 4178 : __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
|
|
|
|
; 4179 : __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
|
|
|
|
; 4180 : __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
|
|
|
|
; 4181 :
|
|
; 4182 : 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
|
|
|
|
; 4183 : // load
|
|
; 4184 : __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
|
|
|
|
; 4185 : __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
|
|
|
|
; 4186 : __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
|
|
|
|
; 4187 : __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
|
|
|
|
; 4188 : __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
|
|
|
|
; 4189 :
|
|
; 4190 : // unpack to short (and left-shift cr, cb by 8)
|
|
; 4191 : __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
|
|
|
|
; 4192 : __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
|
|
|
|
; 4193 : __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
|
|
|
|
; 4194 :
|
|
; 4195 : // color transform
|
|
; 4196 : __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
|
|
|
|
; 4197 : __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
|
|
|
|
; 4198 : __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
|
|
|
|
; 4199 : __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
|
|
|
|
; 4200 : __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
|
|
|
|
; 4201 : __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
|
|
|
|
; 4202 : __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
|
|
|
|
; 4203 : __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
|
|
|
|
; 4204 : __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
|
|
|
|
; 4205 :
|
|
; 4206 : // descale
|
|
; 4207 : __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
|
|
|
|
; 4208 : __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
|
|
|
|
; 4209 : __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
|
|
|
|
; 4210 :
|
|
; 4211 : // back to byte, set up for transpose
|
|
; 4212 : __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
|
|
|
|
; 4213 : __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
|
|
|
|
; 4214 :
|
|
; 4215 : // transpose to interleave channels
|
|
; 4216 : __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
|
|
|
|
; 4217 : __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
|
|
|
|
; 4218 : __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
|
|
|
|
; 4219 : __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
|
|
|
|
; 4220 :
|
|
; 4221 : // store
|
|
; 4222 : _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
|
|
|
|
; 4223 : _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
|
|
|
|
; 4224 : 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
|
|
|
|
; 4225 : }
|
|
|
|
00366 e9 44 fd ff ff jmp $LN2@stbi__YCbC
|
|
$LN3@stbi__YCbC:
|
|
$LN8@stbi__YCbC:
|
|
|
|
; 4226 : }
|
|
; 4227 : #endif
|
|
; 4228 :
|
|
; 4229 : #ifdef STBI_NEON
|
|
; 4230 : // in this version, step=3 support would be easy to add. but is there demand?
|
|
; 4231 : if (step == 4) {
|
|
; 4232 : // this is a fairly straightforward implementation and not super-optimized.
|
|
; 4233 : uint8x8_t signflip = vdup_n_u8(0x80);
|
|
; 4234 : int16x8_t cr_const0 = vdupq_n_s16((short)(1.40200f * 4096.0f + 0.5f));
|
|
; 4235 : int16x8_t cr_const1 = vdupq_n_s16(-(short)(0.71414f * 4096.0f + 0.5f));
|
|
; 4236 : int16x8_t cb_const0 = vdupq_n_s16(-(short)(0.34414f * 4096.0f + 0.5f));
|
|
; 4237 : int16x8_t cb_const1 = vdupq_n_s16((short)(1.77200f * 4096.0f + 0.5f));
|
|
; 4238 :
|
|
; 4239 : for (; i + 7 < count; i += 8) {
|
|
; 4240 : // load
|
|
; 4241 : uint8x8_t y_bytes = vld1_u8(y + i);
|
|
; 4242 : uint8x8_t cr_bytes = vld1_u8(pcr + i);
|
|
; 4243 : uint8x8_t cb_bytes = vld1_u8(pcb + i);
|
|
; 4244 : int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip));
|
|
; 4245 : int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip));
|
|
; 4246 :
|
|
; 4247 : // expand to s16
|
|
; 4248 : int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4));
|
|
; 4249 : int16x8_t crw = vshll_n_s8(cr_biased, 7);
|
|
; 4250 : int16x8_t cbw = vshll_n_s8(cb_biased, 7);
|
|
; 4251 :
|
|
; 4252 : // color transform
|
|
; 4253 : int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0);
|
|
; 4254 : int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0);
|
|
; 4255 : int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1);
|
|
; 4256 : int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1);
|
|
; 4257 : int16x8_t rws = vaddq_s16(yws, cr0);
|
|
; 4258 : int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1);
|
|
; 4259 : int16x8_t bws = vaddq_s16(yws, cb1);
|
|
; 4260 :
|
|
; 4261 : // undo scaling, round, convert to byte
|
|
; 4262 : uint8x8x4_t o;
|
|
; 4263 : o.val[0] = vqrshrun_n_s16(rws, 4);
|
|
; 4264 : o.val[1] = vqrshrun_n_s16(gws, 4);
|
|
; 4265 : o.val[2] = vqrshrun_n_s16(bws, 4);
|
|
; 4266 : o.val[3] = vdup_n_u8(255);
|
|
; 4267 :
|
|
; 4268 : // store, interleaving r/g/b/a
|
|
; 4269 : vst4_u8(out, o);
|
|
; 4270 : out += 8 * 4;
|
|
; 4271 : }
|
|
; 4272 : }
|
|
; 4273 : #endif
|
|
; 4274 :
|
|
; 4275 : 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
|
|
|
|
; 4276 : 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
|
|
|
|
; 4277 : int r, g, b;
|
|
; 4278 : 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
|
|
|
|
; 4279 : 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
|
|
|
|
; 4280 : 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
|
|
|
|
; 4281 : 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
|
|
|
|
; 4282 : ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000);
|
|
; 4283 : 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
|
|
|
|
; 4284 : 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
|
|
|
|
; 4285 : 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
|
|
|
|
; 4286 : 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
|
|
|
|
; 4287 : 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
|
|
|
|
; 4288 : 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
|
|
|
|
; 4289 : 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:
|
|
|
|
; 4290 : else
|
|
; 4291 : 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:
|
|
|
|
; 4292 : }
|
|
; 4293 : 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
|
|
|
|
; 4294 : 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
|
|
|
|
; 4295 : 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:
|
|
|
|
; 4296 : else
|
|
; 4297 : 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:
|
|
|
|
; 4298 : }
|
|
; 4299 : 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
|
|
|
|
; 4300 : 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
|
|
|
|
; 4301 : 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:
|
|
|
|
; 4302 : else
|
|
; 4303 : 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:
|
|
|
|
; 4304 : }
|
|
; 4305 : 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
|
|
|
|
; 4306 : 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
|
|
|
|
; 4307 : 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
|
|
|
|
; 4308 : 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
|
|
|
|
; 4309 : 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
|
|
|
|
; 4310 : }
|
|
|
|
00560 e9 08 fe ff ff jmp $LN5@stbi__YCbC
|
|
$LN6@stbi__YCbC:
|
|
|
|
; 4311 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4122 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 4123 : int i;
|
|
; 4124 : 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
|
|
|
|
; 4125 : 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
|
|
|
|
; 4126 : int r, g, b;
|
|
; 4127 : 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
|
|
|
|
; 4128 : 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
|
|
|
|
; 4129 : 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
|
|
|
|
; 4130 : 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
|
|
|
|
; 4131 : ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000);
|
|
; 4132 : 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
|
|
|
|
; 4133 : 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
|
|
|
|
; 4134 : 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
|
|
|
|
; 4135 : 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
|
|
|
|
; 4136 : 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
|
|
|
|
; 4137 : if (r < 0)
|
|
|
|
00118 83 7d 44 00 cmp DWORD PTR r$2[rbp], 0
|
|
0011c 7d 09 jge SHORT $LN6@stbi__YCbC
|
|
|
|
; 4138 : 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:
|
|
|
|
; 4139 : else
|
|
; 4140 : r = 255;
|
|
|
|
00127 c7 45 44 ff 00
|
|
00 00 mov DWORD PTR r$2[rbp], 255 ; 000000ffH
|
|
$LN7@stbi__YCbC:
|
|
$LN5@stbi__YCbC:
|
|
|
|
; 4141 : }
|
|
; 4142 : 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
|
|
|
|
; 4143 : if (g < 0)
|
|
|
|
00137 83 7d 64 00 cmp DWORD PTR g$3[rbp], 0
|
|
0013b 7d 09 jge SHORT $LN9@stbi__YCbC
|
|
|
|
; 4144 : 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:
|
|
|
|
; 4145 : else
|
|
; 4146 : g = 255;
|
|
|
|
00146 c7 45 64 ff 00
|
|
00 00 mov DWORD PTR g$3[rbp], 255 ; 000000ffH
|
|
$LN10@stbi__YCbC:
|
|
$LN8@stbi__YCbC:
|
|
|
|
; 4147 : }
|
|
; 4148 : 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
|
|
|
|
; 4149 : 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
|
|
|
|
; 4150 : 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:
|
|
|
|
; 4151 : else
|
|
; 4152 : 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:
|
|
|
|
; 4153 : }
|
|
; 4154 : 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
|
|
|
|
; 4155 : 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
|
|
|
|
; 4156 : 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
|
|
|
|
; 4157 : 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
|
|
|
|
; 4158 : 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
|
|
|
|
; 4159 : }
|
|
|
|
001ef e9 44 fe ff ff jmp $LN2@stbi__YCbC
|
|
$LN3@stbi__YCbC:
|
|
|
|
; 4160 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4107 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 4108 : // resample with nearest-neighbor
|
|
; 4109 : int i, j;
|
|
; 4110 : STBI_NOTUSED(in_far);
|
|
; 4111 : 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
|
|
|
|
; 4112 : 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
|
|
|
|
; 4113 : 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:
|
|
|
|
; 4114 : return out;
|
|
|
|
00095 48 8b 85 20 01
|
|
00 00 mov rax, QWORD PTR out$[rbp]
|
|
|
|
; 4115 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3990 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 3991 : // need to generate 2x2 samples for every one in input
|
|
; 3992 : int i = 0, t0, t1;
|
|
|
|
0002f c7 45 04 00 00
|
|
00 00 mov DWORD PTR i$[rbp], 0
|
|
|
|
; 3993 :
|
|
; 3994 : 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
|
|
|
|
; 3995 : 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
|
|
|
|
; 3996 : 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:
|
|
|
|
; 3997 : }
|
|
; 3998 :
|
|
; 3999 : 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
|
|
|
|
; 4000 : // process groups of 8 pixels for as long as we can.
|
|
; 4001 : // note we can't handle the last pixel in a row in this loop
|
|
; 4002 : // because we need to handle the filter boundary conditions.
|
|
; 4003 : 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
|
|
|
|
; 4004 : #if defined(STBI_SSE2)
|
|
; 4005 : // load and perform the vertical filtering pass
|
|
; 4006 : // this uses 3*x + y = 4*x + (y - x)
|
|
; 4007 : __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
|
|
|
|
; 4008 : __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
|
|
|
|
; 4009 : __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
|
|
|
|
; 4010 : __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
|
|
|
|
; 4011 : __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
|
|
|
|
; 4012 : __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
|
|
|
|
; 4013 : __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
|
|
|
|
; 4014 : __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
|
|
|
|
; 4015 :
|
|
; 4016 : // horizontal filter works the same based on shifted vers of current
|
|
; 4017 : // row. "prev" is current row shifted right by 1 pixel; we need to
|
|
; 4018 : // insert the previous pixel value (from t1).
|
|
; 4019 : // "next" is current row shifted left by 1 pixel, with first pixel
|
|
; 4020 : // of next block of 8 pixels added in.
|
|
; 4021 : __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
|
|
|
|
; 4022 : __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
|
|
|
|
; 4023 : __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
|
|
|
|
; 4024 : __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
|
|
|
|
; 4025 :
|
|
; 4026 : // horizontal filter, polyphase implementation since it's convenient:
|
|
; 4027 : // even pixels = 3*cur + prev = cur*4 + (prev - cur)
|
|
; 4028 : // odd pixels = 3*cur + next = cur*4 + (next - cur)
|
|
; 4029 : // note the shared term.
|
|
; 4030 : __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
|
|
|
|
; 4031 : __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
|
|
|
|
; 4032 : __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
|
|
|
|
; 4033 : __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
|
|
|
|
; 4034 : __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
|
|
|
|
; 4035 : __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
|
|
|
|
; 4036 : __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
|
|
|
|
; 4037 :
|
|
; 4038 : // interleave even and odd pixels, then undo scaling.
|
|
; 4039 : __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
|
|
|
|
; 4040 : __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
|
|
|
|
; 4041 : __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
|
|
|
|
; 4042 : __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
|
|
|
|
; 4043 :
|
|
; 4044 : // pack and write output
|
|
; 4045 : __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
|
|
|
|
; 4046 : _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
|
|
|
|
; 4047 : #elif defined(STBI_NEON)
|
|
; 4048 : // load and perform the vertical filtering pass
|
|
; 4049 : // this uses 3*x + y = 4*x + (y - x)
|
|
; 4050 : uint8x8_t farb = vld1_u8(in_far + i);
|
|
; 4051 : uint8x8_t nearb = vld1_u8(in_near + i);
|
|
; 4052 : int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb));
|
|
; 4053 : int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2));
|
|
; 4054 : int16x8_t curr = vaddq_s16(nears, diff); // current row
|
|
; 4055 :
|
|
; 4056 : // horizontal filter works the same based on shifted vers of current
|
|
; 4057 : // row. "prev" is current row shifted right by 1 pixel; we need to
|
|
; 4058 : // insert the previous pixel value (from t1).
|
|
; 4059 : // "next" is current row shifted left by 1 pixel, with first pixel
|
|
; 4060 : // of next block of 8 pixels added in.
|
|
; 4061 : int16x8_t prv0 = vextq_s16(curr, curr, 7);
|
|
; 4062 : int16x8_t nxt0 = vextq_s16(curr, curr, 1);
|
|
; 4063 : int16x8_t prev = vsetq_lane_s16(t1, prv0, 0);
|
|
; 4064 : int16x8_t next = vsetq_lane_s16(3 * in_near[i + 8] + in_far[i + 8], nxt0, 7);
|
|
; 4065 :
|
|
; 4066 : // horizontal filter, polyphase implementation since it's convenient:
|
|
; 4067 : // even pixels = 3*cur + prev = cur*4 + (prev - cur)
|
|
; 4068 : // odd pixels = 3*cur + next = cur*4 + (next - cur)
|
|
; 4069 : // note the shared term.
|
|
; 4070 : int16x8_t curs = vshlq_n_s16(curr, 2);
|
|
; 4071 : int16x8_t prvd = vsubq_s16(prev, curr);
|
|
; 4072 : int16x8_t nxtd = vsubq_s16(next, curr);
|
|
; 4073 : int16x8_t even = vaddq_s16(curs, prvd);
|
|
; 4074 : int16x8_t odd = vaddq_s16(curs, nxtd);
|
|
; 4075 :
|
|
; 4076 : // undo scaling and round, then store with even/odd phases interleaved
|
|
; 4077 : uint8x8x2_t o;
|
|
; 4078 : o.val[0] = vqrshrun_n_s16(even, 4);
|
|
; 4079 : o.val[1] = vqrshrun_n_s16(odd, 4);
|
|
; 4080 : vst2_u8(out + i * 2, o);
|
|
; 4081 : #endif
|
|
; 4082 :
|
|
; 4083 : // "previous" value for next iter
|
|
; 4084 : 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
|
|
|
|
; 4085 : }
|
|
|
|
00397 e9 4d fd ff ff jmp $LN2@stbi__resa
|
|
$LN3@stbi__resa:
|
|
|
|
; 4086 :
|
|
; 4087 : t0 = t1;
|
|
|
|
0039c 8b 45 44 mov eax, DWORD PTR t1$[rbp]
|
|
0039f 89 45 24 mov DWORD PTR t0$[rbp], eax
|
|
|
|
; 4088 : 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
|
|
|
|
; 4089 : 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
|
|
|
|
; 4090 :
|
|
; 4091 : 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
|
|
|
|
; 4092 : t0 = t1;
|
|
|
|
00405 8b 45 44 mov eax, DWORD PTR t1$[rbp]
|
|
00408 89 45 24 mov DWORD PTR t0$[rbp], eax
|
|
|
|
; 4093 : 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
|
|
|
|
; 4094 : 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
|
|
|
|
; 4095 : 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
|
|
|
|
; 4096 : }
|
|
|
|
00473 e9 7a ff ff ff jmp $LN5@stbi__resa
|
|
$LN6@stbi__resa:
|
|
|
|
; 4097 : 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
|
|
|
|
; 4098 :
|
|
; 4099 : STBI_NOTUSED(hs);
|
|
; 4100 :
|
|
; 4101 : return out;
|
|
|
|
00498 48 8b 85 40 07
|
|
00 00 mov rax, QWORD PTR out$[rbp]
|
|
$LN1@stbi__resa:
|
|
|
|
; 4102 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3964 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 3965 : // need to generate 2x2 samples for every one in input
|
|
; 3966 : int i, t0, t1;
|
|
; 3967 : 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
|
|
|
|
; 3968 : 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
|
|
|
|
; 3969 : 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:
|
|
|
|
; 3970 : }
|
|
; 3971 :
|
|
; 3972 : 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
|
|
|
|
; 3973 : 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
|
|
|
|
; 3974 : 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
|
|
|
|
; 3975 : t0 = t1;
|
|
|
|
00118 8b 45 44 mov eax, DWORD PTR t1$[rbp]
|
|
0011b 89 45 24 mov DWORD PTR t0$[rbp], eax
|
|
|
|
; 3976 : 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
|
|
|
|
; 3977 : 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
|
|
|
|
; 3978 : 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
|
|
|
|
; 3979 : }
|
|
|
|
00186 e9 7a ff ff ff jmp $LN2@stbi__resa
|
|
$LN3@stbi__resa:
|
|
|
|
; 3980 : 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
|
|
|
|
; 3981 :
|
|
; 3982 : STBI_NOTUSED(hs);
|
|
; 3983 :
|
|
; 3984 : return out;
|
|
|
|
001ab 48 8b 85 40 01
|
|
00 00 mov rax, QWORD PTR out$[rbp]
|
|
$LN1@stbi__resa:
|
|
|
|
; 3985 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3933 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 3934 : // need to generate two samples horizontally for every one in input
|
|
; 3935 : int i;
|
|
; 3936 : 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
|
|
|
|
; 3937 :
|
|
; 3938 : 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
|
|
|
|
; 3939 : // if only one sample, can't do any interpolation
|
|
; 3940 : 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
|
|
|
|
; 3941 : 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:
|
|
|
|
; 3942 : }
|
|
; 3943 :
|
|
; 3944 : 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
|
|
|
|
; 3945 : 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
|
|
|
|
; 3946 : 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
|
|
|
|
; 3947 : 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
|
|
|
|
; 3948 : 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
|
|
|
|
; 3949 : 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
|
|
|
|
; 3950 : }
|
|
|
|
0018b e9 79 ff ff ff jmp $LN2@stbi__resa
|
|
$LN3@stbi__resa:
|
|
|
|
; 3951 : 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
|
|
|
|
; 3952 : 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
|
|
|
|
; 3953 :
|
|
; 3954 : STBI_NOTUSED(in_far);
|
|
; 3955 : STBI_NOTUSED(hs);
|
|
; 3956 :
|
|
; 3957 : return out;
|
|
|
|
001f9 48 8b 85 40 01
|
|
00 00 mov rax, QWORD PTR out$[rbp]
|
|
$LN1@stbi__resa:
|
|
|
|
; 3958 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3922 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 3923 : // need to generate two samples vertically for every one in input
|
|
; 3924 : int i;
|
|
; 3925 : STBI_NOTUSED(hs);
|
|
; 3926 : 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
|
|
|
|
; 3927 : 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:
|
|
|
|
; 3928 : return out;
|
|
|
|
00083 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR out$[rbp]
|
|
|
|
; 3929 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT resample_row_1
|
|
_TEXT SEGMENT
|
|
out$ = 224
|
|
in_near$ = 232
|
|
in_far$ = 240
|
|
w$ = 248
|
|
hs$ = 256
|
|
resample_row_1 PROC ; COMDAT
|
|
|
|
; 3912 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 3913 : STBI_NOTUSED(out);
|
|
; 3914 : STBI_NOTUSED(in_far);
|
|
; 3915 : STBI_NOTUSED(w);
|
|
; 3916 : STBI_NOTUSED(hs);
|
|
; 3917 : return in_near;
|
|
|
|
0002f 48 8b 85 e8 00
|
|
00 00 mov rax, QWORD PTR in_near$[rbp]
|
|
|
|
; 3918 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__decode_jpeg_image
|
|
_TEXT SEGMENT
|
|
m$ = 4
|
|
Ld$1 = 36
|
|
NL$2 = 68
|
|
j$ = 320
|
|
stbi__decode_jpeg_image PROC ; COMDAT
|
|
|
|
; 3863 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 3864 : int m;
|
|
; 3865 : 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
|
|
|
|
; 3866 : 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
|
|
|
|
; 3867 : 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
|
|
|
|
; 3868 : }
|
|
|
|
0006d eb ba jmp SHORT $LN2@stbi__deco
|
|
$LN3@stbi__deco:
|
|
|
|
; 3869 : 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
|
|
|
|
; 3870 : 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
|
|
|
|
; 3871 : return 0;
|
|
|
|
00092 33 c0 xor eax, eax
|
|
00094 e9 8e 01 00 00 jmp $LN1@stbi__deco
|
|
$LN7@stbi__deco:
|
|
|
|
; 3872 : 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:
|
|
|
|
; 3873 : 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
|
|
|
|
; 3874 : 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
|
|
|
|
; 3875 : 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
|
|
|
|
; 3876 : return 0;
|
|
|
|
000d5 33 c0 xor eax, eax
|
|
000d7 e9 4b 01 00 00 jmp $LN1@stbi__deco
|
|
$LN10@stbi__deco:
|
|
|
|
; 3877 : 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
|
|
|
|
; 3878 : return 0;
|
|
|
|
000ec 33 c0 xor eax, eax
|
|
000ee e9 34 01 00 00 jmp $LN1@stbi__deco
|
|
$LN11@stbi__deco:
|
|
|
|
; 3879 : 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
|
|
|
|
; 3880 : 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:
|
|
|
|
; 3881 : // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0
|
|
; 3882 : }
|
|
; 3883 : 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
|
|
|
|
; 3884 : 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
|
|
|
|
; 3885 : 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:
|
|
|
|
; 3886 : } 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
|
|
|
|
; 3887 : 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
|
|
|
|
; 3888 : 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
|
|
|
|
; 3889 : if (Ld != 4)
|
|
|
|
00189 83 7d 24 04 cmp DWORD PTR Ld$1[rbp], 4
|
|
0018d 74 11 je SHORT $LN16@stbi__deco
|
|
|
|
; 3890 : 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:
|
|
|
|
; 3891 : 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
|
|
|
|
; 3892 : 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:
|
|
|
|
; 3893 : 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
|
|
|
|
; 3894 : } else {
|
|
|
|
001d2 eb 2c jmp SHORT $LN15@stbi__deco
|
|
$LN14@stbi__deco:
|
|
|
|
; 3895 : 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
|
|
|
|
; 3896 : return 1;
|
|
|
|
001e7 b8 01 00 00 00 mov eax, 1
|
|
001ec eb 39 jmp SHORT $LN1@stbi__deco
|
|
$LN18@stbi__deco:
|
|
|
|
; 3897 : 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:
|
|
|
|
; 3898 : }
|
|
; 3899 : }
|
|
|
|
00200 e9 a6 fe ff ff jmp $LN5@stbi__deco
|
|
$LN6@stbi__deco:
|
|
|
|
; 3900 : 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
|
|
|
|
; 3901 : 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:
|
|
|
|
; 3902 : return 1;
|
|
|
|
00222 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__deco:
|
|
|
|
; 3903 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__skip_jpeg_junk_at_end
|
|
_TEXT SEGMENT
|
|
x$1 = 4
|
|
j$ = 256
|
|
stbi__skip_jpeg_junk_at_end PROC ; COMDAT
|
|
|
|
; 3839 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
$LN2@stbi__skip:
|
|
|
|
; 3840 : // some JPEGs have junk at end, skip over it but if we find what looks
|
|
; 3841 : // like a valid marker, resume there
|
|
; 3842 : 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 63 jne SHORT $LN3@stbi__skip
|
|
|
|
; 3843 : stbi_uc 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 88 45 04 mov BYTE PTR x$1[rbp], al
|
|
$LN4@stbi__skip:
|
|
|
|
; 3844 : while (x == 0xff) { // might be a marker
|
|
|
|
00045 0f b6 45 04 movzx eax, BYTE PTR x$1[rbp]
|
|
00049 3d ff 00 00 00 cmp eax, 255 ; 000000ffH
|
|
0004e 75 44 jne SHORT $LN5@stbi__skip
|
|
|
|
; 3845 : if (stbi__at_eof(j->s))
|
|
|
|
00050 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR j$[rbp]
|
|
00057 48 8b 08 mov rcx, QWORD PTR [rax]
|
|
0005a e8 00 00 00 00 call stbi__at_eof
|
|
0005f 85 c0 test eax, eax
|
|
00061 74 04 je SHORT $LN6@stbi__skip
|
|
|
|
; 3846 : return STBI__MARKER_none;
|
|
|
|
00063 b0 ff mov al, 255 ; 000000ffH
|
|
00065 eb 31 jmp SHORT $LN1@stbi__skip
|
|
$LN6@stbi__skip:
|
|
|
|
; 3847 : x = stbi__get8(j->s);
|
|
|
|
00067 48 8b 85 00 01
|
|
00 00 mov rax, QWORD PTR j$[rbp]
|
|
0006e 48 8b 08 mov rcx, QWORD PTR [rax]
|
|
00071 e8 00 00 00 00 call stbi__get8
|
|
00076 88 45 04 mov BYTE PTR x$1[rbp], al
|
|
|
|
; 3848 : if (x != 0x00 && x != 0xff) {
|
|
|
|
00079 0f b6 45 04 movzx eax, BYTE PTR x$1[rbp]
|
|
0007d 85 c0 test eax, eax
|
|
0007f 74 11 je SHORT $LN7@stbi__skip
|
|
00081 0f b6 45 04 movzx eax, BYTE PTR x$1[rbp]
|
|
00085 3d ff 00 00 00 cmp eax, 255 ; 000000ffH
|
|
0008a 74 06 je SHORT $LN7@stbi__skip
|
|
|
|
; 3849 : // not a stuffed zero or lead-in to another marker, looks
|
|
; 3850 : // like an actual marker, return it
|
|
; 3851 : return x;
|
|
|
|
0008c 0f b6 45 04 movzx eax, BYTE PTR x$1[rbp]
|
|
00090 eb 06 jmp SHORT $LN1@stbi__skip
|
|
$LN7@stbi__skip:
|
|
|
|
; 3852 : }
|
|
; 3853 : // stuffed zero has x=0 now which ends the loop, meaning we go
|
|
; 3854 : // back to regular scan loop.
|
|
; 3855 : // repeated 0xff keeps trying to read the next byte of the marker.
|
|
; 3856 : }
|
|
|
|
00092 eb b1 jmp SHORT $LN4@stbi__skip
|
|
$LN5@stbi__skip:
|
|
|
|
; 3857 : }
|
|
|
|
00094 eb 8a jmp SHORT $LN2@stbi__skip
|
|
$LN3@stbi__skip:
|
|
|
|
; 3858 : return STBI__MARKER_none;
|
|
|
|
00096 b0 ff mov al, 255 ; 000000ffH
|
|
$LN1@stbi__skip:
|
|
|
|
; 3859 : }
|
|
|
|
00098 48 8d a5 e8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+232]
|
|
0009f 5f pop rdi
|
|
000a0 5d pop rbp
|
|
000a1 c3 ret 0
|
|
stbi__skip_jpeg_junk_at_end ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__decode_jpeg_header
|
|
_TEXT SEGMENT
|
|
m$ = 4
|
|
tv131 = 212
|
|
z$ = 256
|
|
scan$ = 264
|
|
stbi__decode_jpeg_header PROC ; COMDAT
|
|
|
|
; 3810 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 3811 : int m;
|
|
; 3812 : 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
|
|
|
|
; 3813 : 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
|
|
|
|
; 3814 : 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
|
|
|
|
; 3815 : 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
|
|
|
|
; 3816 : 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
|
|
|
|
; 3817 : 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:
|
|
|
|
; 3818 : 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
|
|
|
|
; 3819 : return 1;
|
|
|
|
00089 b8 01 00 00 00 mov eax, 1
|
|
0008e e9 f1 00 00 00 jmp $LN1@stbi__deco
|
|
$LN7@stbi__deco:
|
|
|
|
; 3820 : 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:
|
|
|
|
; 3821 : 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
|
|
|
|
; 3822 : 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
|
|
|
|
; 3823 : return 0;
|
|
|
|
000d7 33 c0 xor eax, eax
|
|
000d9 e9 a6 00 00 00 jmp $LN1@stbi__deco
|
|
$LN8@stbi__deco:
|
|
|
|
; 3824 : 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:
|
|
|
|
; 3825 : 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
|
|
|
|
; 3826 : // some files have extra padding after their blocks, so ok, we'll scan
|
|
; 3827 : 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
|
|
|
|
; 3828 : 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:
|
|
|
|
; 3829 : 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
|
|
|
|
; 3830 : }
|
|
|
|
0012c eb c2 jmp SHORT $LN4@stbi__deco
|
|
$LN5@stbi__deco:
|
|
|
|
; 3831 : }
|
|
|
|
0012e e9 72 ff ff ff jmp $LN2@stbi__deco
|
|
$LN3@stbi__deco:
|
|
|
|
; 3832 : 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
|
|
|
|
; 3833 : 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
|
|
|
|
; 3834 : return 0;
|
|
|
|
0017b 33 c0 xor eax, eax
|
|
0017d eb 05 jmp SHORT $LN1@stbi__deco
|
|
$LN10@stbi__deco:
|
|
|
|
; 3835 : return 1;
|
|
|
|
0017f b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__deco:
|
|
|
|
; 3836 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3677 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 3678 : 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
|
|
|
|
; 3679 : 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
|
|
|
|
; 3680 : 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
|
|
|
|
; 3681 : if (Lf < 11)
|
|
|
|
00052 83 7d 24 0b cmp DWORD PTR Lf$[rbp], 11
|
|
00056 7d 11 jge SHORT $LN17@stbi__proc
|
|
|
|
; 3682 : 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:
|
|
|
|
; 3683 : 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
|
|
|
|
; 3684 : if (p != 8)
|
|
|
|
00078 83 7d 44 08 cmp DWORD PTR p$[rbp], 8
|
|
0007c 74 11 je SHORT $LN18@stbi__proc
|
|
|
|
; 3685 : 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:
|
|
|
|
; 3686 : "JPEG format not supported: 8-bit only"); // JPEG baseline
|
|
; 3687 : 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
|
|
|
|
; 3688 : 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
|
|
|
|
; 3689 : 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:
|
|
|
|
; 3690 : "no header height",
|
|
; 3691 : "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG
|
|
; 3692 : 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
|
|
|
|
; 3693 : 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
|
|
|
|
; 3694 : 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:
|
|
|
|
; 3695 : 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
|
|
|
|
; 3696 : 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:
|
|
|
|
; 3697 : 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
|
|
|
|
; 3698 : 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:
|
|
|
|
; 3699 : 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
|
|
|
|
; 3700 : 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
|
|
|
|
; 3701 : 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:
|
|
|
|
; 3702 : 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
|
|
|
|
; 3703 : 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
|
|
|
|
; 3704 : 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
|
|
|
|
; 3705 : 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
|
|
|
|
; 3706 : }
|
|
|
|
001bb eb b5 jmp SHORT $LN2@stbi__proc
|
|
$LN3@stbi__proc:
|
|
|
|
; 3707 :
|
|
; 3708 : 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
|
|
|
|
; 3709 : 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:
|
|
|
|
; 3710 :
|
|
; 3711 : 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
|
|
|
|
; 3712 : 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
|
|
|
|
; 3713 : static const unsigned char rgb[3] = { 'R', 'G', 'B' };
|
|
; 3714 : 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
|
|
|
|
; 3715 : 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
|
|
|
|
; 3716 : ++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:
|
|
|
|
; 3717 : 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
|
|
|
|
; 3718 : 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
|
|
|
|
; 3719 : 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:
|
|
|
|
; 3720 : 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:
|
|
|
|
; 3721 : 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
|
|
|
|
; 3722 : 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:
|
|
|
|
; 3723 : 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:
|
|
|
|
; 3724 : 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
|
|
|
|
; 3725 : 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
|
|
|
|
; 3726 : 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:
|
|
|
|
; 3727 : }
|
|
|
|
003a1 e9 52 fe ff ff jmp $LN5@stbi__proc
|
|
$LN6@stbi__proc:
|
|
|
|
; 3728 :
|
|
; 3729 : 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
|
|
|
|
; 3730 : return 1;
|
|
|
|
003af b8 01 00 00 00 mov eax, 1
|
|
003b4 e9 c1 05 00 00 jmp $LN1@stbi__proc
|
|
$LN31@stbi__proc:
|
|
|
|
; 3731 :
|
|
; 3732 : 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
|
|
|
|
; 3733 : 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:
|
|
|
|
; 3734 :
|
|
; 3735 : 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
|
|
|
|
; 3736 : 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
|
|
|
|
; 3737 : 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:
|
|
|
|
; 3738 : 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
|
|
|
|
; 3739 : 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:
|
|
|
|
; 3740 : }
|
|
|
|
0047c e9 73 ff ff ff jmp $LN8@stbi__proc
|
|
$LN9@stbi__proc:
|
|
|
|
; 3741 :
|
|
; 3742 : // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios
|
|
; 3743 : // and I've never seen a non-corrupted JPEG file actually use them
|
|
; 3744 : 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
|
|
|
|
; 3745 : 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
|
|
|
|
; 3746 : 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:
|
|
|
|
; 3747 : 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
|
|
|
|
; 3748 : 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:
|
|
|
|
; 3749 : }
|
|
|
|
00528 e9 5d ff ff ff jmp $LN11@stbi__proc
|
|
$LN12@stbi__proc:
|
|
|
|
; 3750 :
|
|
; 3751 : // compute interleaved mcu info
|
|
; 3752 : 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
|
|
|
|
; 3753 : 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
|
|
|
|
; 3754 : 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
|
|
|
|
; 3755 : 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
|
|
|
|
; 3756 : // these sizes can't be more than 17 bits
|
|
; 3757 : 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
|
|
|
|
; 3758 : 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
|
|
|
|
; 3759 :
|
|
; 3760 : 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
|
|
|
|
; 3761 : // number of effective pixels (e.g. for non-interleaved MCU)
|
|
; 3762 : 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
|
|
|
|
; 3763 : 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
|
|
|
|
; 3764 : // to simplify generation, we'll allocate enough memory to decode
|
|
; 3765 : // the bogus oversized data from using interleaved MCUs and their
|
|
; 3766 : // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't
|
|
; 3767 : // discard the extra data until colorspace conversion
|
|
; 3768 : //
|
|
; 3769 : // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier)
|
|
; 3770 : // so these muls can't overflow with 32-bit ints (which we require)
|
|
; 3771 : 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
|
|
|
|
; 3772 : 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
|
|
|
|
; 3773 : 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
|
|
|
|
; 3774 : 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
|
|
|
|
; 3775 : 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
|
|
|
|
; 3776 : 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
|
|
|
|
; 3777 : stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15);
|
|
; 3778 : 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
|
|
|
|
; 3779 : 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:
|
|
|
|
; 3780 : stbi__err("outofmem", "Out of memory"));
|
|
; 3781 : // align blocks for idct using mmx/sse
|
|
; 3782 : 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
|
|
|
|
; 3783 : 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
|
|
|
|
; 3784 : // w2, h2 are multiples of 8 (see above)
|
|
; 3785 : 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
|
|
|
|
; 3786 : 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
|
|
|
|
; 3787 : 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
|
|
|
|
; 3788 : z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15);
|
|
; 3789 : 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
|
|
|
|
; 3790 : 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:
|
|
|
|
; 3791 : z, i + 1, stbi__err("outofmem", "Out of memory"));
|
|
; 3792 : 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:
|
|
|
|
; 3793 : (short *)(((size_t)z->img_comp[i].raw_coeff + 15) & ~15);
|
|
; 3794 : }
|
|
; 3795 : }
|
|
|
|
00970 e9 7a fc ff ff jmp $LN14@stbi__proc
|
|
$LN15@stbi__proc:
|
|
|
|
; 3796 :
|
|
; 3797 : return 1;
|
|
|
|
00975 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__proc:
|
|
|
|
; 3798 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__free_jpeg_components
|
|
_TEXT SEGMENT
|
|
i$ = 4
|
|
z$ = 256
|
|
ncomp$ = 264
|
|
why$ = 272
|
|
stbi__free_jpeg_components PROC ; COMDAT
|
|
|
|
; 3655 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00028 90 npad 1
|
|
|
|
; 3656 : int i;
|
|
; 3657 : 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
|
|
|
|
; 3658 : 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
|
|
|
|
; 3659 : 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
|
|
|
|
; 3660 : 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
|
|
|
|
; 3661 : 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:
|
|
|
|
; 3662 : }
|
|
; 3663 : 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
|
|
|
|
; 3664 : 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
|
|
|
|
; 3665 : 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
|
|
|
|
; 3666 : 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:
|
|
|
|
; 3667 : }
|
|
; 3668 : 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
|
|
|
|
; 3669 : 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
|
|
|
|
; 3670 : 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:
|
|
|
|
; 3671 : }
|
|
; 3672 : }
|
|
|
|
00178 e9 b5 fe ff ff jmp $LN2@stbi__free
|
|
$LN3@stbi__free:
|
|
|
|
; 3673 : return why;
|
|
|
|
0017d 8b 85 10 01 00
|
|
00 mov eax, DWORD PTR why$[rbp]
|
|
|
|
; 3674 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3606 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 3607 : int i;
|
|
; 3608 : 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
|
|
|
|
; 3609 : 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
|
|
|
|
; 3610 : 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:
|
|
|
|
; 3611 : 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:
|
|
|
|
; 3612 : 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
|
|
|
|
; 3613 : 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:
|
|
|
|
; 3614 : 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
|
|
|
|
; 3615 : 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
|
|
|
|
; 3616 : 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
|
|
|
|
; 3617 : 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
|
|
|
|
; 3618 : 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
|
|
|
|
; 3619 : break;
|
|
|
|
00157 eb 02 jmp SHORT $LN6@stbi__proc
|
|
$LN11@stbi__proc:
|
|
00159 eb c7 jmp SHORT $LN5@stbi__proc
|
|
$LN6@stbi__proc:
|
|
|
|
; 3620 : 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
|
|
|
|
; 3621 : return 0; // no match
|
|
|
|
0016d 33 c0 xor eax, eax
|
|
0016f e9 0c 02 00 00 jmp $LN1@stbi__proc
|
|
$LN12@stbi__proc:
|
|
|
|
; 3622 : 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
|
|
|
|
; 3623 : 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
|
|
|
|
; 3624 : 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:
|
|
|
|
; 3625 : 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
|
|
|
|
; 3626 : 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
|
|
|
|
; 3627 : 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:
|
|
|
|
; 3628 : 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
|
|
|
|
; 3629 : }
|
|
|
|
0021b e9 ae fe ff ff jmp $LN2@stbi__proc
|
|
$LN3@stbi__proc:
|
|
|
|
; 3630 :
|
|
; 3631 : {
|
|
; 3632 : int aa;
|
|
; 3633 : 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
|
|
|
|
; 3634 : 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
|
|
|
|
; 3635 : 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
|
|
|
|
; 3636 : 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
|
|
|
|
; 3637 : 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
|
|
|
|
; 3638 : 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
|
|
|
|
; 3639 : if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end ||
|
|
; 3640 : 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:
|
|
|
|
; 3641 : 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:
|
|
|
|
; 3642 : } else {
|
|
|
|
0031c eb 5d jmp SHORT $LN16@stbi__proc
|
|
$LN15@stbi__proc:
|
|
|
|
; 3643 : 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
|
|
|
|
; 3644 : 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:
|
|
|
|
; 3645 : 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:
|
|
|
|
; 3646 : 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:
|
|
|
|
; 3647 : 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:
|
|
|
|
; 3648 : }
|
|
; 3649 : }
|
|
; 3650 :
|
|
; 3651 : return 1;
|
|
|
|
0037b b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__proc:
|
|
|
|
; 3652 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3491 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0004d 90 npad 1
|
|
|
|
; 3492 : int L;
|
|
; 3493 : 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:
|
|
|
|
; 3494 : case STBI__MARKER_none: // no marker found
|
|
; 3495 : 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:
|
|
|
|
; 3496 :
|
|
; 3497 : case 0xDD: // DRI - specify restart interval
|
|
; 3498 : 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
|
|
|
|
; 3499 : 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:
|
|
|
|
; 3500 : 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
|
|
|
|
; 3501 : return 1;
|
|
|
|
000e5 b8 01 00 00 00 mov eax, 1
|
|
000ea e9 56 06 00 00 jmp $LN1@stbi__proc
|
|
$LN26@stbi__proc:
|
|
|
|
; 3502 :
|
|
; 3503 : case 0xDB: // DQT - define quantization table
|
|
; 3504 : 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:
|
|
|
|
; 3505 : 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
|
|
|
|
; 3506 : 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
|
|
|
|
; 3507 : 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
|
|
|
|
; 3508 : 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
|
|
|
|
; 3509 : 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
|
|
|
|
; 3510 : 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:
|
|
|
|
; 3511 : 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
|
|
|
|
; 3512 : 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:
|
|
|
|
; 3513 :
|
|
; 3514 : 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
|
|
|
|
; 3515 : 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:
|
|
|
|
; 3516 : (stbi__uint16)(sixteen ? stbi__get16be(z->s) :
|
|
; 3517 : stbi__get8(z->s));
|
|
; 3518 : 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
|
|
|
|
; 3519 : }
|
|
|
|
00257 e9 a8 fe ff ff jmp $LN4@stbi__proc
|
|
$LN5@stbi__proc:
|
|
|
|
; 3520 : 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:
|
|
|
|
; 3521 :
|
|
; 3522 : case 0xC4: // DHT - define huffman table
|
|
; 3523 : 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:
|
|
|
|
; 3524 : 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
|
|
|
|
; 3525 : stbi_uc *v;
|
|
; 3526 : int sizes[16], i, n = 0;
|
|
|
|
002a2 c7 85 64 01 00
|
|
00 00 00 00 00 mov DWORD PTR n$12[rbp], 0
|
|
|
|
; 3527 : 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
|
|
|
|
; 3528 : 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
|
|
|
|
; 3529 : 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
|
|
|
|
; 3530 : 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:
|
|
|
|
; 3531 : 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:
|
|
|
|
; 3532 : 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
|
|
|
|
; 3533 : 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
|
|
|
|
; 3534 : 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
|
|
|
|
; 3535 : }
|
|
|
|
00366 eb a9 jmp SHORT $LN11@stbi__proc
|
|
$LN12@stbi__proc:
|
|
|
|
; 3536 : 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
|
|
|
|
; 3537 : 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:
|
|
|
|
; 3538 : "bad DHT header",
|
|
; 3539 : "Corrupt JPEG"); // Loop over i < n would write past end of values!
|
|
; 3540 : 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
|
|
|
|
; 3541 : 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
|
|
|
|
; 3542 : 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
|
|
|
|
; 3543 : return 0;
|
|
|
|
003c4 33 c0 xor eax, eax
|
|
003c6 e9 7a 03 00 00 jmp $LN1@stbi__proc
|
|
$LN35@stbi__proc:
|
|
|
|
; 3544 : 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
|
|
|
|
; 3545 : } else {
|
|
|
|
003ef eb 5b jmp SHORT $LN34@stbi__proc
|
|
$LN33@stbi__proc:
|
|
|
|
; 3546 : 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
|
|
|
|
; 3547 : return 0;
|
|
|
|
00421 33 c0 xor eax, eax
|
|
00423 e9 1d 03 00 00 jmp $LN1@stbi__proc
|
|
$LN36@stbi__proc:
|
|
|
|
; 3548 : 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:
|
|
|
|
; 3549 : }
|
|
; 3550 : 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
|
|
|
|
; 3551 : 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:
|
|
|
|
; 3552 : 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
|
|
|
|
; 3553 : 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:
|
|
|
|
; 3554 : 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
|
|
|
|
; 3555 : }
|
|
|
|
004f2 e9 a1 fd ff ff jmp $LN9@stbi__proc
|
|
$LN10@stbi__proc:
|
|
|
|
; 3556 : 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:
|
|
|
|
; 3557 : }
|
|
; 3558 :
|
|
; 3559 : // check for comment block or APP blocks
|
|
; 3560 : 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:
|
|
|
|
; 3561 : 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
|
|
|
|
; 3562 : if (L < 2) {
|
|
|
|
00558 83 7d 04 02 cmp DWORD PTR L$[rbp], 2
|
|
0055c 7d 30 jge SHORT $LN41@stbi__proc
|
|
|
|
; 3563 : 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
|
|
|
|
; 3564 : 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:
|
|
|
|
; 3565 : else
|
|
; 3566 : 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:
|
|
|
|
; 3567 : }
|
|
; 3568 : 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
|
|
|
|
; 3569 :
|
|
; 3570 : 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
|
|
|
|
; 3571 : static const unsigned char tag[5] = { 'J', 'F', 'I', 'F', '\0' };
|
|
; 3572 : int ok = 1;
|
|
|
|
005b1 c7 85 e4 01 00
|
|
00 01 00 00 00 mov DWORD PTR ok$16[rbp], 1
|
|
|
|
; 3573 : int i;
|
|
; 3574 : 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
|
|
|
|
; 3575 : 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
|
|
|
|
; 3576 : 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:
|
|
|
|
; 3577 : 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
|
|
|
|
; 3578 : 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
|
|
|
|
; 3579 : 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:
|
|
|
|
; 3580 : } 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
|
|
|
|
; 3581 : static const unsigned char tag[6] = { 'A', 'd', 'o', 'b', 'e', '\0' };
|
|
; 3582 : int ok = 1;
|
|
|
|
00654 c7 85 24 02 00
|
|
00 01 00 00 00 mov DWORD PTR ok$18[rbp], 1
|
|
|
|
; 3583 : int i;
|
|
; 3584 : 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
|
|
|
|
; 3585 : 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
|
|
|
|
; 3586 : 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:
|
|
|
|
; 3587 : 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
|
|
|
|
; 3588 : 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
|
|
|
|
; 3589 : 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
|
|
|
|
; 3590 : 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
|
|
|
|
; 3591 : 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
|
|
|
|
; 3592 : 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
|
|
|
|
; 3593 : 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:
|
|
|
|
; 3594 : }
|
|
; 3595 : }
|
|
; 3596 :
|
|
; 3597 : 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
|
|
|
|
; 3598 : return 1;
|
|
|
|
00732 b8 01 00 00 00 mov eax, 1
|
|
00737 eb 0c jmp SHORT $LN1@stbi__proc
|
|
$LN38@stbi__proc:
|
|
|
|
; 3599 : }
|
|
; 3600 :
|
|
; 3601 : 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:
|
|
|
|
; 3602 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3468 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 3469 : 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
|
|
|
|
; 3470 : // dequantize and idct the data
|
|
; 3471 : int i, j, n;
|
|
; 3472 : 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
|
|
|
|
; 3473 : 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
|
|
|
|
; 3474 : 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
|
|
|
|
; 3475 : 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
|
|
|
|
; 3476 : 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
|
|
|
|
; 3477 : 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
|
|
|
|
; 3478 : 64 * (i + j * z->img_comp[n].coeff_w);
|
|
; 3479 : 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
|
|
|
|
; 3480 : 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
|
|
|
|
; 3481 : z->img_comp[n].w2 * j * 8 +
|
|
; 3482 : i * 8,
|
|
; 3483 : z->img_comp[n].w2, data);
|
|
; 3484 : }
|
|
|
|
001d6 e9 ea fe ff ff jmp $LN8@stbi__jpeg
|
|
$LN9@stbi__jpeg:
|
|
|
|
; 3485 : }
|
|
|
|
001db e9 c5 fe ff ff jmp $LN5@stbi__jpeg
|
|
$LN6@stbi__jpeg:
|
|
|
|
; 3486 : }
|
|
|
|
001e0 e9 58 fe ff ff jmp $LN2@stbi__jpeg
|
|
$LN3@stbi__jpeg:
|
|
$LN11@stbi__jpeg:
|
|
|
|
; 3487 : }
|
|
; 3488 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__jpeg_dequantize
|
|
_TEXT SEGMENT
|
|
i$ = 4
|
|
data$ = 256
|
|
dequant$ = 264
|
|
stbi__jpeg_dequantize PROC ; COMDAT
|
|
|
|
; 3461 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 3462 : int i;
|
|
; 3463 : 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
|
|
|
|
; 3464 : 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:
|
|
|
|
; 3465 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 3291 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00049 90 npad 1
|
|
|
|
; 3292 : 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
|
|
|
|
; 3293 : 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
|
|
|
|
; 3294 : 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
|
|
|
|
; 3295 : int i, j;
|
|
; 3296 : STBI_SIMD_ALIGN(short, data[64]);
|
|
; 3297 : 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
|
|
|
|
; 3298 : // non-interleaved data, we just need to process one block at a time,
|
|
; 3299 : // in trivial scanline order
|
|
; 3300 : // number of blocks to do just depends on how many actual "pixels" this
|
|
; 3301 : // component has, independent of interleaved MCU blocking and such
|
|
; 3302 : 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
|
|
|
|
; 3303 : 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
|
|
|
|
; 3304 : 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
|
|
|
|
; 3305 : 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
|
|
|
|
; 3306 : 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
|
|
|
|
; 3307 : 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
|
|
|
|
; 3308 : z, data, z->huff_dc + z->img_comp[n].hd,
|
|
; 3309 : z->huff_ac + ha, z->fast_ac[ha], n,
|
|
; 3310 : z->dequant[z->img_comp[n].tq]))
|
|
; 3311 : return 0;
|
|
|
|
00207 33 c0 xor eax, eax
|
|
00209 e9 6f 0a 00 00 jmp $LN1@stbi__pars
|
|
$LN48@stbi__pars:
|
|
|
|
; 3312 : 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
|
|
|
|
; 3313 : z->img_comp[n].w2 * j * 8 +
|
|
; 3314 : i * 8,
|
|
; 3315 : z->img_comp[n].w2, data);
|
|
; 3316 : // every data block is an MCU, so countdown the restart interval
|
|
; 3317 : 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
|
|
|
|
; 3318 : 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
|
|
|
|
; 3319 : 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:
|
|
|
|
; 3320 : // if it's NOT a restart, then just bail, so we get corrupt data
|
|
; 3321 : // rather than no data
|
|
; 3322 : 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:
|
|
|
|
; 3323 : return 1;
|
|
|
|
002fe b8 01 00 00 00 mov eax, 1
|
|
00303 e9 75 09 00 00 jmp $LN1@stbi__pars
|
|
$LN51@stbi__pars:
|
|
|
|
; 3324 : 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:
|
|
|
|
; 3325 : }
|
|
; 3326 : }
|
|
|
|
00315 e9 f5 fd ff ff jmp $LN5@stbi__pars
|
|
$LN6@stbi__pars:
|
|
|
|
; 3327 : }
|
|
|
|
0031a e9 d0 fd ff ff jmp $LN2@stbi__pars
|
|
$LN3@stbi__pars:
|
|
|
|
; 3328 : return 1;
|
|
|
|
0031f b8 01 00 00 00 mov eax, 1
|
|
00324 e9 54 09 00 00 jmp $LN1@stbi__pars
|
|
|
|
; 3329 : } else { // interleaved
|
|
|
|
00329 e9 aa 03 00 00 jmp $LN47@stbi__pars
|
|
$LN46@stbi__pars:
|
|
|
|
; 3330 : int i, j, k, x, y;
|
|
; 3331 : STBI_SIMD_ALIGN(short, data[64]);
|
|
; 3332 : 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
|
|
|
|
; 3333 : 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
|
|
|
|
; 3334 : // scan an interleaved mcu... process scan_n components in order
|
|
; 3335 : 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
|
|
|
|
; 3336 : 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
|
|
|
|
; 3337 : // scan out an mcu's worth of this component; that's just determined
|
|
; 3338 : // by the basic H and V specified for the component
|
|
; 3339 : 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
|
|
|
|
; 3340 : 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
|
|
|
|
; 3341 : 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
|
|
|
|
; 3342 : (i * z->img_comp[n].h + x) *
|
|
; 3343 : 8;
|
|
; 3344 : 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
|
|
|
|
; 3345 : (j * z->img_comp[n].v + y) *
|
|
; 3346 : 8;
|
|
; 3347 : 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
|
|
|
|
; 3348 : 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
|
|
|
|
; 3349 : z, data,
|
|
; 3350 : z->huff_dc +
|
|
; 3351 : z->img_comp[n]
|
|
; 3352 : .hd,
|
|
; 3353 : z->huff_ac + ha,
|
|
; 3354 : z->fast_ac[ha], n,
|
|
; 3355 : z->dequant[z->img_comp[n]
|
|
; 3356 : .tq]))
|
|
; 3357 : return 0;
|
|
|
|
005a6 33 c0 xor eax, eax
|
|
005a8 e9 d0 06 00 00 jmp $LN1@stbi__pars
|
|
$LN53@stbi__pars:
|
|
|
|
; 3358 : 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
|
|
|
|
; 3359 : z->img_comp[n].data +
|
|
; 3360 : z->img_comp[n].w2 *
|
|
; 3361 : y2 +
|
|
; 3362 : x2,
|
|
; 3363 : z->img_comp[n].w2, data);
|
|
; 3364 : }
|
|
|
|
00626 e9 02 fe ff ff jmp $LN20@stbi__pars
|
|
$LN21@stbi__pars:
|
|
|
|
; 3365 : }
|
|
|
|
0062b e9 be fd ff ff jmp $LN17@stbi__pars
|
|
$LN18@stbi__pars:
|
|
|
|
; 3366 : }
|
|
|
|
00630 e9 6b fd ff ff jmp $LN14@stbi__pars
|
|
$LN15@stbi__pars:
|
|
|
|
; 3367 : // after all interleaved components, that's an interleaved MCU,
|
|
; 3368 : // so now count down the restart interval
|
|
; 3369 : 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
|
|
|
|
; 3370 : 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
|
|
|
|
; 3371 : 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:
|
|
|
|
; 3372 : 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:
|
|
|
|
; 3373 : return 1;
|
|
|
|
006ad b8 01 00 00 00 mov eax, 1
|
|
006b2 e9 c6 05 00 00 jmp $LN1@stbi__pars
|
|
$LN56@stbi__pars:
|
|
|
|
; 3374 : 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:
|
|
|
|
; 3375 : }
|
|
; 3376 : }
|
|
|
|
006c4 e9 a4 fc ff ff jmp $LN11@stbi__pars
|
|
$LN12@stbi__pars:
|
|
|
|
; 3377 : }
|
|
|
|
006c9 e9 6c fc ff ff jmp $LN8@stbi__pars
|
|
$LN9@stbi__pars:
|
|
|
|
; 3378 : return 1;
|
|
|
|
006ce b8 01 00 00 00 mov eax, 1
|
|
006d3 e9 a5 05 00 00 jmp $LN1@stbi__pars
|
|
$LN47@stbi__pars:
|
|
|
|
; 3379 : }
|
|
; 3380 : } else {
|
|
|
|
006d8 e9 a0 05 00 00 jmp $LN45@stbi__pars
|
|
$LN44@stbi__pars:
|
|
|
|
; 3381 : 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
|
|
|
|
; 3382 : int i, j;
|
|
; 3383 : 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
|
|
|
|
; 3384 : // non-interleaved data, we just need to process one block at a time,
|
|
; 3385 : // in trivial scanline order
|
|
; 3386 : // number of blocks to do just depends on how many actual "pixels" this
|
|
; 3387 : // component has, independent of interleaved MCU blocking and such
|
|
; 3388 : 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
|
|
|
|
; 3389 : 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
|
|
|
|
; 3390 : 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
|
|
|
|
; 3391 : 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
|
|
|
|
; 3392 : 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
|
|
|
|
; 3393 : 64 * (i + j * z->img_comp[n].coeff_w);
|
|
; 3394 : 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
|
|
|
|
; 3395 : 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
|
|
|
|
; 3396 : z, data, &z->huff_dc[z->img_comp[n].hd],
|
|
; 3397 : n))
|
|
; 3398 : return 0;
|
|
|
|
00868 33 c0 xor eax, eax
|
|
0086a e9 0e 04 00 00 jmp $LN1@stbi__pars
|
|
$LN62@stbi__pars:
|
|
|
|
; 3399 : } else {
|
|
|
|
0086f eb 7d jmp SHORT $LN61@stbi__pars
|
|
$LN60@stbi__pars:
|
|
|
|
; 3400 : 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
|
|
|
|
; 3401 : 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
|
|
|
|
; 3402 : z, data, &z->huff_ac[ha],
|
|
; 3403 : z->fast_ac[ha]))
|
|
; 3404 : return 0;
|
|
|
|
008e7 33 c0 xor eax, eax
|
|
008e9 e9 8f 03 00 00 jmp $LN1@stbi__pars
|
|
$LN63@stbi__pars:
|
|
$LN61@stbi__pars:
|
|
|
|
; 3405 : }
|
|
; 3406 : // every data block is an MCU, so countdown the restart interval
|
|
; 3407 : 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
|
|
|
|
; 3408 : 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
|
|
|
|
; 3409 : 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:
|
|
|
|
; 3410 : 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:
|
|
|
|
; 3411 : return 1;
|
|
|
|
00966 b8 01 00 00 00 mov eax, 1
|
|
0096b e9 0d 03 00 00 jmp $LN1@stbi__pars
|
|
$LN66@stbi__pars:
|
|
|
|
; 3412 : 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:
|
|
|
|
; 3413 : }
|
|
; 3414 : }
|
|
|
|
0097d e9 0e fe ff ff jmp $LN26@stbi__pars
|
|
$LN27@stbi__pars:
|
|
|
|
; 3415 : }
|
|
|
|
00982 e9 dd fd ff ff jmp $LN23@stbi__pars
|
|
$LN24@stbi__pars:
|
|
|
|
; 3416 : return 1;
|
|
|
|
00987 b8 01 00 00 00 mov eax, 1
|
|
0098c e9 ec 02 00 00 jmp $LN1@stbi__pars
|
|
|
|
; 3417 : } else { // interleaved
|
|
|
|
00991 e9 e7 02 00 00 jmp $LN59@stbi__pars
|
|
$LN58@stbi__pars:
|
|
|
|
; 3418 : int i, j, k, x, y;
|
|
; 3419 : 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
|
|
|
|
; 3420 : 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
|
|
|
|
; 3421 : // scan an interleaved mcu... process scan_n components in order
|
|
; 3422 : 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
|
|
|
|
; 3423 : 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
|
|
|
|
; 3424 : // scan out an mcu's worth of this component; that's just determined
|
|
; 3425 : // by the basic H and V specified for the component
|
|
; 3426 : 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
|
|
|
|
; 3427 : 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
|
|
|
|
; 3428 : 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
|
|
|
|
; 3429 : 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
|
|
|
|
; 3430 : 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
|
|
|
|
; 3431 : z->img_comp[n].coeff +
|
|
; 3432 : 64 * (x2 +
|
|
; 3433 : y2 * z->img_comp[n]
|
|
; 3434 : .coeff_w);
|
|
; 3435 : 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
|
|
|
|
; 3436 : z, data,
|
|
; 3437 : &z->huff_dc[z->img_comp[n]
|
|
; 3438 : .hd],
|
|
; 3439 : n))
|
|
; 3440 : return 0;
|
|
|
|
00bcc 33 c0 xor eax, eax
|
|
00bce e9 aa 00 00 00 jmp $LN1@stbi__pars
|
|
$LN68@stbi__pars:
|
|
|
|
; 3441 : }
|
|
|
|
00bd3 e9 bd fe ff ff jmp $LN41@stbi__pars
|
|
$LN42@stbi__pars:
|
|
|
|
; 3442 : }
|
|
|
|
00bd8 e9 79 fe ff ff jmp $LN38@stbi__pars
|
|
$LN39@stbi__pars:
|
|
|
|
; 3443 : }
|
|
|
|
00bdd e9 26 fe ff ff jmp $LN35@stbi__pars
|
|
$LN36@stbi__pars:
|
|
|
|
; 3444 : // after all interleaved components, that's an interleaved MCU,
|
|
; 3445 : // so now count down the restart interval
|
|
; 3446 : 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
|
|
|
|
; 3447 : 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
|
|
|
|
; 3448 : 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:
|
|
|
|
; 3449 : 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:
|
|
|
|
; 3450 : return 1;
|
|
|
|
00c5a b8 01 00 00 00 mov eax, 1
|
|
00c5f eb 1c jmp SHORT $LN1@stbi__pars
|
|
$LN71@stbi__pars:
|
|
|
|
; 3451 : 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:
|
|
|
|
; 3452 : }
|
|
; 3453 : }
|
|
|
|
00c6e e9 62 fd ff ff jmp $LN32@stbi__pars
|
|
$LN33@stbi__pars:
|
|
|
|
; 3454 : }
|
|
|
|
00c73 e9 2a fd ff ff jmp $LN29@stbi__pars
|
|
$LN30@stbi__pars:
|
|
|
|
; 3455 : return 1;
|
|
|
|
00c78 b8 01 00 00 00 mov eax, 1
|
|
$LN59@stbi__pars:
|
|
$LN45@stbi__pars:
|
|
$LN1@stbi__pars:
|
|
|
|
; 3456 : }
|
|
; 3457 : }
|
|
; 3458 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__jpeg_reset
|
|
_TEXT SEGMENT
|
|
tv88 = 192
|
|
j$ = 240
|
|
stbi__jpeg_reset PROC ; COMDAT
|
|
|
|
; 3277 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 3278 : 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
|
|
|
|
; 3279 : 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
|
|
|
|
; 3280 : 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
|
|
|
|
; 3281 : 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
|
|
|
|
; 3282 : j->img_comp[3].dc_pred = 0;
|
|
; 3283 : 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
|
|
|
|
; 3284 : 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
|
|
|
|
; 3285 : 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
|
|
|
|
; 3286 : // no more than 1<<31 MCUs if no restart_interal? that's plenty safe,
|
|
; 3287 : // since we don't even allow 1<<30 pixels
|
|
; 3288 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__get_marker
|
|
_TEXT SEGMENT
|
|
x$ = 4
|
|
j$ = 256
|
|
stbi__get_marker PROC ; COMDAT
|
|
|
|
; 3255 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 3256 : stbi_uc x;
|
|
; 3257 : 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_
|
|
|
|
; 3258 : 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
|
|
|
|
; 3259 : 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
|
|
|
|
; 3260 : return x;
|
|
|
|
00054 0f b6 45 04 movzx eax, BYTE PTR x$[rbp]
|
|
00058 eb 44 jmp SHORT $LN1@stbi__get_
|
|
$LN4@stbi__get_:
|
|
|
|
; 3261 : }
|
|
; 3262 : 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
|
|
|
|
; 3263 : 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_
|
|
|
|
; 3264 : 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_:
|
|
|
|
; 3265 : 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_
|
|
|
|
; 3266 : 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_:
|
|
|
|
; 3267 : return x;
|
|
|
|
0009a 0f b6 45 04 movzx eax, BYTE PTR x$[rbp]
|
|
$LN1@stbi__get_:
|
|
|
|
; 3268 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 2813 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 2814 : // This is constructed to match our regular (generic) integer IDCT exactly.
|
|
; 2815 : __m128i row0, row1, row2, row3, row4, row5, row6, row7;
|
|
; 2816 : __m128i tmp;
|
|
; 2817 :
|
|
; 2818 : // dot product constant: even elems=x, odd elems=y
|
|
; 2819 : #define dct_const(x, y) _mm_setr_epi16((x), (y), (x), (y), (x), (y), (x), (y))
|
|
; 2820 :
|
|
; 2821 : // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit)
|
|
; 2822 : // out(1) = c1[even]*x + c1[odd]*y
|
|
; 2823 : #define dct_rot(out0, out1, x, y, c0, c1) \
|
|
; 2824 : __m128i c0##lo = _mm_unpacklo_epi16((x), (y)); \
|
|
; 2825 : __m128i c0##hi = _mm_unpackhi_epi16((x), (y)); \
|
|
; 2826 : __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \
|
|
; 2827 : __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \
|
|
; 2828 : __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \
|
|
; 2829 : __m128i out1##_h = _mm_madd_epi16(c0##hi, c1)
|
|
; 2830 :
|
|
; 2831 : // out = in << 12 (in 16-bit, out 32-bit)
|
|
; 2832 : #define dct_widen(out, in) \
|
|
; 2833 : __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \
|
|
; 2834 : __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4)
|
|
; 2835 :
|
|
; 2836 : // wide add
|
|
; 2837 : #define dct_wadd(out, a, b) \
|
|
; 2838 : __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \
|
|
; 2839 : __m128i out##_h = _mm_add_epi32(a##_h, b##_h)
|
|
; 2840 :
|
|
; 2841 : // wide sub
|
|
; 2842 : #define dct_wsub(out, a, b) \
|
|
; 2843 : __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \
|
|
; 2844 : __m128i out##_h = _mm_sub_epi32(a##_h, b##_h)
|
|
; 2845 :
|
|
; 2846 : // butterfly a/b, add bias, then shift by "s" and pack
|
|
; 2847 : #define dct_bfly32o(out0, out1, a, b, bias, s) \
|
|
; 2848 : { \
|
|
; 2849 : __m128i abiased_l = _mm_add_epi32(a##_l, bias); \
|
|
; 2850 : __m128i abiased_h = _mm_add_epi32(a##_h, bias); \
|
|
; 2851 : dct_wadd(sum, abiased, b); \
|
|
; 2852 : dct_wsub(dif, abiased, b); \
|
|
; 2853 : out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \
|
|
; 2854 : out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \
|
|
; 2855 : }
|
|
; 2856 :
|
|
; 2857 : // 8-bit interleave step (for transposes)
|
|
; 2858 : #define dct_interleave8(a, b) \
|
|
; 2859 : tmp = a; \
|
|
; 2860 : a = _mm_unpacklo_epi8(a, b); \
|
|
; 2861 : b = _mm_unpackhi_epi8(tmp, b)
|
|
; 2862 :
|
|
; 2863 : // 16-bit interleave step (for transposes)
|
|
; 2864 : #define dct_interleave16(a, b) \
|
|
; 2865 : tmp = a; \
|
|
; 2866 : a = _mm_unpacklo_epi16(a, b); \
|
|
; 2867 : b = _mm_unpackhi_epi16(tmp, b)
|
|
; 2868 :
|
|
; 2869 : #define dct_pass(bias, shift) \
|
|
; 2870 : { \
|
|
; 2871 : /* even part */ \
|
|
; 2872 : dct_rot(t2e, t3e, row2, row6, rot0_0, rot0_1); \
|
|
; 2873 : __m128i sum04 = _mm_add_epi16(row0, row4); \
|
|
; 2874 : __m128i dif04 = _mm_sub_epi16(row0, row4); \
|
|
; 2875 : dct_widen(t0e, sum04); \
|
|
; 2876 : dct_widen(t1e, dif04); \
|
|
; 2877 : dct_wadd(x0, t0e, t3e); \
|
|
; 2878 : dct_wsub(x3, t0e, t3e); \
|
|
; 2879 : dct_wadd(x1, t1e, t2e); \
|
|
; 2880 : dct_wsub(x2, t1e, t2e); \
|
|
; 2881 : /* odd part */ \
|
|
; 2882 : dct_rot(y0o, y2o, row7, row3, rot2_0, rot2_1); \
|
|
; 2883 : dct_rot(y1o, y3o, row5, row1, rot3_0, rot3_1); \
|
|
; 2884 : __m128i sum17 = _mm_add_epi16(row1, row7); \
|
|
; 2885 : __m128i sum35 = _mm_add_epi16(row3, row5); \
|
|
; 2886 : dct_rot(y4o, y5o, sum17, sum35, rot1_0, rot1_1); \
|
|
; 2887 : dct_wadd(x4, y0o, y4o); \
|
|
; 2888 : dct_wadd(x5, y1o, y5o); \
|
|
; 2889 : dct_wadd(x6, y2o, y5o); \
|
|
; 2890 : dct_wadd(x7, y3o, y4o); \
|
|
; 2891 : dct_bfly32o(row0, row7, x0, x7, bias, shift); \
|
|
; 2892 : dct_bfly32o(row1, row6, x1, x6, bias, shift); \
|
|
; 2893 : dct_bfly32o(row2, row5, x2, x5, bias, shift); \
|
|
; 2894 : dct_bfly32o(row3, row4, x3, x4, bias, shift); \
|
|
; 2895 : }
|
|
; 2896 :
|
|
; 2897 : __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
|
|
|
|
; 2898 : dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f));
|
|
; 2899 : __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
|
|
|
|
; 2900 : dct_const(stbi__f2f(0.5411961f) + stbi__f2f(0.765366865f), stbi__f2f(0.5411961f));
|
|
; 2901 : __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
|
|
|
|
; 2902 : stbi__f2f(1.175875602f));
|
|
; 2903 : __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
|
|
|
|
; 2904 : stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f));
|
|
; 2905 : __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
|
|
|
|
; 2906 : stbi__f2f(-1.961570560f));
|
|
; 2907 : __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
|
|
|
|
; 2908 : stbi__f2f(-1.961570560f) + stbi__f2f(3.072711026f));
|
|
; 2909 : __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
|
|
|
|
; 2910 : stbi__f2f(-0.390180644f));
|
|
; 2911 : __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
|
|
|
|
; 2912 : stbi__f2f(-0.390180644f) + stbi__f2f(1.501321110f));
|
|
; 2913 :
|
|
; 2914 : // rounding biases in column/row passes, see stbi__idct_block for explanation.
|
|
; 2915 : __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
|
|
|
|
; 2916 : __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
|
|
|
|
; 2917 :
|
|
; 2918 : // load
|
|
; 2919 : 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
|
|
|
|
; 2920 : 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
|
|
|
|
; 2921 : 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
|
|
|
|
; 2922 : 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
|
|
|
|
; 2923 : 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
|
|
|
|
; 2924 : 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
|
|
|
|
; 2925 : 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
|
|
|
|
; 2926 : 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
|
|
|
|
; 2927 :
|
|
; 2928 : // column pass
|
|
; 2929 : 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
|
|
|
|
; 2930 :
|
|
; 2931 : {
|
|
; 2932 : // 16bit 8x8 transpose pass 1
|
|
; 2933 : 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
|
|
|
|
; 2934 : 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
|
|
|
|
; 2935 : 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
|
|
|
|
; 2936 : 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
|
|
|
|
; 2937 :
|
|
; 2938 : // transpose pass 2
|
|
; 2939 : 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
|
|
|
|
; 2940 : 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
|
|
|
|
; 2941 : 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
|
|
|
|
; 2942 : 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
|
|
|
|
; 2943 :
|
|
; 2944 : // transpose pass 3
|
|
; 2945 : 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
|
|
|
|
; 2946 : 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
|
|
|
|
; 2947 : 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
|
|
|
|
; 2948 : 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
|
|
|
|
; 2949 : }
|
|
; 2950 :
|
|
; 2951 : // row pass
|
|
; 2952 : 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
|
|
|
|
; 2953 :
|
|
; 2954 : {
|
|
; 2955 : // pack
|
|
; 2956 : __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
|
|
|
|
; 2957 : __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
|
|
|
|
; 2958 : __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
|
|
|
|
; 2959 : __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
|
|
|
|
; 2960 :
|
|
; 2961 : // 8bit 8x8 transpose pass 1
|
|
; 2962 : 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
|
|
|
|
; 2963 : 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
|
|
|
|
; 2964 :
|
|
; 2965 : // transpose pass 2
|
|
; 2966 : 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
|
|
|
|
; 2967 : 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
|
|
|
|
; 2968 :
|
|
; 2969 : // transpose pass 3
|
|
; 2970 : 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
|
|
|
|
; 2971 : 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
|
|
|
|
; 2972 :
|
|
; 2973 : // store
|
|
; 2974 : _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
|
|
|
|
; 2975 : 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
|
|
|
|
; 2976 : _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
|
|
|
|
; 2977 : 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
|
|
|
|
; 2978 : _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
|
|
|
|
; 2979 : 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
|
|
|
|
; 2980 : _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
|
|
|
|
; 2981 : 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
|
|
|
|
; 2982 : _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
|
|
|
|
; 2983 : 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
|
|
|
|
; 2984 : _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
|
|
|
|
; 2985 : 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
|
|
|
|
; 2986 : _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
|
|
|
|
; 2987 : 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
|
|
|
|
; 2988 : _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
|
|
|
|
; 2989 : }
|
|
; 2990 :
|
|
; 2991 : #undef dct_const
|
|
; 2992 : #undef dct_rot
|
|
; 2993 : #undef dct_widen
|
|
; 2994 : #undef dct_wadd
|
|
; 2995 : #undef dct_wsub
|
|
; 2996 : #undef dct_bfly32o
|
|
; 2997 : #undef dct_interleave8
|
|
; 2998 : #undef dct_interleave16
|
|
; 2999 : #undef dct_pass
|
|
; 3000 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 2747 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00052 90 npad 1
|
|
|
|
; 2748 : 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
|
|
|
|
; 2749 : stbi_uc *o;
|
|
; 2750 : 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
|
|
|
|
; 2751 :
|
|
; 2752 : // columns
|
|
; 2753 : 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
|
|
|
|
; 2754 : // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing
|
|
; 2755 : if (d[8] == 0 && d[16] == 0 && d[24] == 0 && d[32] == 0 && d[40] == 0 &&
|
|
; 2756 : 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
|
|
|
|
; 2757 : // no shortcut 0 seconds
|
|
; 2758 : // (1|2|3|4|5|6|7)==0 0 seconds
|
|
; 2759 : // all separate -0.047 seconds
|
|
; 2760 : // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds
|
|
; 2761 : 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
|
|
|
|
; 2762 : 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
|
|
|
|
; 2763 : } else {
|
|
|
|
00254 e9 ac 04 00 00 jmp $LN9@stbi__idct
|
|
$LN8@stbi__idct:
|
|
|
|
; 2764 : 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
|
|
|
|
; 2765 : // constants scaled things up by 1<<12; let's bring them back
|
|
; 2766 : // down, but keep 2 extra bits of precision
|
|
; 2767 : 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
|
|
|
|
; 2768 : 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
|
|
|
|
; 2769 : 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
|
|
|
|
; 2770 : 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
|
|
|
|
; 2771 : 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
|
|
|
|
; 2772 : 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
|
|
|
|
; 2773 : 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
|
|
|
|
; 2774 : 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
|
|
|
|
; 2775 : 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
|
|
|
|
; 2776 : 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
|
|
|
|
; 2777 : 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
|
|
|
|
; 2778 : 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:
|
|
|
|
; 2779 : }
|
|
; 2780 : }
|
|
|
|
00705 e9 6b f9 ff ff jmp $LN2@stbi__idct
|
|
$LN3@stbi__idct:
|
|
|
|
; 2781 :
|
|
; 2782 : 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
|
|
|
|
; 2783 : // no fast case since the first 1D IDCT spread components out
|
|
; 2784 : 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
|
|
|
|
; 2785 : // constants scaled things up by 1<<12, plus we had 1<<2 from first
|
|
; 2786 : // loop, plus horizontal and vertical each scale by sqrt(8) so together
|
|
; 2787 : // we've got an extra 1<<3, so 1<<17 total we need to remove.
|
|
; 2788 : // so we want to round that, which means adding 0.5 * 1<<17,
|
|
; 2789 : // aka 65536. Also, we'll end up with -128 to 127 that we want
|
|
; 2790 : // to encode as 0..255 by adding 128, so we'll add that before the shift
|
|
; 2791 : 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
|
|
|
|
; 2792 : 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
|
|
|
|
; 2793 : 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
|
|
|
|
; 2794 : 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
|
|
|
|
; 2795 : // tried computing the shifts into temps, or'ing the temps to see
|
|
; 2796 : // if any were out of range, but that was slower
|
|
; 2797 : 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
|
|
|
|
; 2798 : 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
|
|
|
|
; 2799 : 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
|
|
|
|
; 2800 : 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
|
|
|
|
; 2801 : 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
|
|
|
|
; 2802 : 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
|
|
|
|
; 2803 : 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
|
|
|
|
; 2804 : 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
|
|
|
|
; 2805 : }
|
|
|
|
00c47 e9 e0 fa ff ff jmp $LN5@stbi__idct
|
|
$LN6@stbi__idct:
|
|
|
|
; 2806 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__clamp
|
|
_TEXT SEGMENT
|
|
x$ = 224
|
|
stbi__clamp PROC ; COMDAT
|
|
|
|
; 2694 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 2695 : // trick to use a single test to catch both cases
|
|
; 2696 : 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
|
|
|
|
; 2697 : 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
|
|
|
|
; 2698 : return 0;
|
|
|
|
00034 32 c0 xor al, al
|
|
00036 eb 17 jmp SHORT $LN1@stbi__clam
|
|
$LN3@stbi__clam:
|
|
|
|
; 2699 : 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
|
|
|
|
; 2700 : return 255;
|
|
|
|
00044 b0 ff mov al, 255 ; 000000ffH
|
|
00046 eb 07 jmp SHORT $LN1@stbi__clam
|
|
$LN4@stbi__clam:
|
|
$LN2@stbi__clam:
|
|
|
|
; 2701 : }
|
|
; 2702 : return (stbi_uc)x;
|
|
|
|
00048 0f b6 85 e0 00
|
|
00 00 movzx eax, BYTE PTR x$[rbp]
|
|
$LN1@stbi__clam:
|
|
|
|
; 2703 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 2561 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 2562 : int k;
|
|
; 2563 : 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
|
|
|
|
; 2564 : 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:
|
|
|
|
; 2565 :
|
|
; 2566 : 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
|
|
|
|
; 2567 : 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
|
|
|
|
; 2568 :
|
|
; 2569 : 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
|
|
|
|
; 2570 : --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
|
|
|
|
; 2571 : return 1;
|
|
|
|
000a0 b8 01 00 00 00 mov eax, 1
|
|
000a5 e9 1b 06 00 00 jmp $LN1@stbi__jpeg
|
|
$LN16@stbi__jpeg:
|
|
|
|
; 2572 : }
|
|
; 2573 :
|
|
; 2574 : 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:
|
|
|
|
; 2575 : do {
|
|
; 2576 : unsigned int zig;
|
|
; 2577 : int c, r, s;
|
|
; 2578 : 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
|
|
|
|
; 2579 : 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:
|
|
|
|
; 2580 : 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
|
|
|
|
; 2581 : 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
|
|
|
|
; 2582 : 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
|
|
|
|
; 2583 : 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
|
|
|
|
; 2584 : 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
|
|
|
|
; 2585 : 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
|
|
|
|
; 2586 : 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:
|
|
|
|
; 2587 : "bad huffman code",
|
|
; 2588 : "Combined length longer than code bits available");
|
|
; 2589 : 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
|
|
|
|
; 2590 : 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
|
|
|
|
; 2591 : 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
|
|
|
|
; 2592 : 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
|
|
|
|
; 2593 : } else {
|
|
|
|
001f1 e9 47 01 00 00 jmp $LN19@stbi__jpeg
|
|
$LN18@stbi__jpeg:
|
|
|
|
; 2594 : 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
|
|
|
|
; 2595 : 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
|
|
|
|
; 2596 : 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:
|
|
|
|
; 2597 : 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
|
|
|
|
; 2598 : 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
|
|
|
|
; 2599 : 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
|
|
|
|
; 2600 : 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
|
|
|
|
; 2601 : 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
|
|
|
|
; 2602 : 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
|
|
|
|
; 2603 : 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:
|
|
|
|
; 2604 : --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
|
|
|
|
; 2605 : break;
|
|
|
|
002d7 eb 7a jmp SHORT $LN3@stbi__jpeg
|
|
$LN24@stbi__jpeg:
|
|
|
|
; 2606 : }
|
|
; 2607 : 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
|
|
|
|
; 2608 : } else {
|
|
|
|
002e2 eb 59 jmp SHORT $LN23@stbi__jpeg
|
|
$LN22@stbi__jpeg:
|
|
|
|
; 2609 : 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
|
|
|
|
; 2610 : 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
|
|
|
|
; 2611 : 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:
|
|
|
|
; 2612 : (short)(stbi__extend_receive(j, s) * (1 << shift));
|
|
; 2613 : }
|
|
; 2614 : }
|
|
; 2615 : } 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:
|
|
|
|
; 2616 : } else {
|
|
|
|
00353 e9 68 03 00 00 jmp $LN15@stbi__jpeg
|
|
$LN14@stbi__jpeg:
|
|
|
|
; 2617 : // refinement scan for these AC coefficients
|
|
; 2618 :
|
|
; 2619 : 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
|
|
|
|
; 2620 :
|
|
; 2621 : 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
|
|
|
|
; 2622 : --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
|
|
|
|
; 2623 : 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
|
|
|
|
; 2624 : 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
|
|
|
|
; 2625 : 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
|
|
|
|
; 2626 : 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
|
|
|
|
; 2627 : 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
|
|
|
|
; 2628 : 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
|
|
|
|
; 2629 : *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:
|
|
|
|
; 2630 : else
|
|
; 2631 : *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:
|
|
|
|
; 2632 : }
|
|
; 2633 : }
|
|
|
|
00486 e9 39 ff ff ff jmp $LN5@stbi__jpeg
|
|
$LN6@stbi__jpeg:
|
|
|
|
; 2634 : } else {
|
|
|
|
0048b e9 30 02 00 00 jmp $LN27@stbi__jpeg
|
|
$LN26@stbi__jpeg:
|
|
|
|
; 2635 : 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:
|
|
|
|
; 2636 : do {
|
|
; 2637 : int r, s;
|
|
; 2638 : 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
|
|
|
|
; 2639 : j,
|
|
; 2640 : hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh
|
|
; 2641 : 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
|
|
|
|
; 2642 : 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:
|
|
|
|
; 2643 : 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
|
|
|
|
; 2644 : 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
|
|
|
|
; 2645 : 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
|
|
|
|
; 2646 : 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
|
|
|
|
; 2647 : 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
|
|
|
|
; 2648 : 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
|
|
|
|
; 2649 : 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:
|
|
|
|
; 2650 : 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:
|
|
|
|
; 2651 : } else {
|
|
; 2652 : // r=15 s=0 should write 16 0s, so we just do
|
|
; 2653 : // a run of 15 0s and then write s (which is 0),
|
|
; 2654 : // so we don't have to do anything special here
|
|
; 2655 : }
|
|
; 2656 : } else {
|
|
|
|
0056d eb 48 jmp SHORT $LN35@stbi__jpeg
|
|
$LN34@stbi__jpeg:
|
|
|
|
; 2657 : 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
|
|
|
|
; 2658 : 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:
|
|
|
|
; 2659 : "Corrupt JPEG");
|
|
; 2660 : // sign bit
|
|
; 2661 : 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
|
|
|
|
; 2662 : 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:
|
|
|
|
; 2663 : else
|
|
; 2664 : 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:
|
|
|
|
; 2665 : }
|
|
; 2666 :
|
|
; 2667 : // advance by r
|
|
; 2668 : 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
|
|
|
|
; 2669 : 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
|
|
|
|
; 2670 : 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
|
|
|
|
; 2671 : 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
|
|
|
|
; 2672 : 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
|
|
|
|
; 2673 : 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
|
|
|
|
; 2674 : *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:
|
|
|
|
; 2675 : else
|
|
; 2676 : *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:
|
|
|
|
; 2677 : }
|
|
; 2678 : } else {
|
|
|
|
00679 eb 2a jmp SHORT $LN43@stbi__jpeg
|
|
$LN42@stbi__jpeg:
|
|
|
|
; 2679 : 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
|
|
|
|
; 2680 : *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
|
|
|
|
; 2681 : break;
|
|
|
|
00695 eb 13 jmp SHORT $LN12@stbi__jpeg
|
|
$LN48@stbi__jpeg:
|
|
|
|
; 2682 : }
|
|
; 2683 : --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:
|
|
|
|
; 2684 : }
|
|
; 2685 : }
|
|
|
|
006a5 e9 0d ff ff ff jmp $LN11@stbi__jpeg
|
|
$LN12@stbi__jpeg:
|
|
|
|
; 2686 : } 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:
|
|
|
|
; 2687 : }
|
|
; 2688 : }
|
|
; 2689 : return 1;
|
|
|
|
006c0 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__jpeg:
|
|
|
|
; 2690 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__jpeg_decode_block_prog_dc
|
|
_TEXT SEGMENT
|
|
diff$ = 4
|
|
dc$ = 36
|
|
t$ = 68
|
|
tv87 = 276
|
|
tv206 = 276
|
|
tv210 = 276
|
|
j$ = 320
|
|
data$ = 328
|
|
hdc$ = 336
|
|
b$ = 344
|
|
stbi__jpeg_decode_block_prog_dc PROC ; COMDAT
|
|
|
|
; 2525 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 2526 : int diff, dc;
|
|
; 2527 : int t;
|
|
; 2528 : 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
|
|
|
|
; 2529 : 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 f5 01 00 00 jmp $LN1@stbi__jpeg
|
|
$LN2@stbi__jpeg:
|
|
|
|
; 2530 :
|
|
; 2531 : 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
|
|
|
|
; 2532 : 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:
|
|
|
|
; 2533 :
|
|
; 2534 : 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 6c 01 00
|
|
00 jne $LN4@stbi__jpeg
|
|
|
|
; 2535 : // first scan for DC coefficient, must be first
|
|
; 2536 : memset(data, 0, 64 * sizeof(data[0])); // 0 all the ac values now
|
|
|
|
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
|
|
|
|
; 2537 : 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
|
|
|
|
; 2538 : 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:
|
|
|
|
; 2539 : 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 7c 01 00 00 jmp $LN1@stbi__jpeg
|
|
$LN6@stbi__jpeg:
|
|
|
|
; 2540 : 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
|
|
|
|
; 2541 :
|
|
; 2542 : 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
|
|
|
|
; 2543 : 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 16 01 00 00 jmp $LN1@stbi__jpeg
|
|
$LN8@stbi__jpeg:
|
|
|
|
; 2544 : 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
|
|
|
|
; 2545 : 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
|
|
|
|
; 2546 : 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 tv206[rbp], ecx
|
|
00182 0f b6 c8 movzx ecx, al
|
|
00185 8b 85 14 01 00
|
|
00 mov eax, DWORD PTR tv206[rbp]
|
|
0018b d3 e0 shl eax, cl
|
|
0018d 8b d0 mov edx, eax
|
|
0018f 8b 4d 24 mov ecx, DWORD PTR dc$[rbp]
|
|
00192 e8 00 00 00 00 call stbi__mul2shorts_valid
|
|
00197 85 c0 test eax, eax
|
|
00199 75 11 jne SHORT $LN9@stbi__jpeg
|
|
|
|
; 2547 : return stbi__err("can't merge dc and ac", "Corrupt JPEG");
|
|
|
|
0019b 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@
|
|
001a2 e8 00 00 00 00 call stbi__err
|
|
001a7 e9 99 00 00 00 jmp $LN1@stbi__jpeg
|
|
$LN9@stbi__jpeg:
|
|
|
|
; 2548 : data[0] = (short)(dc * (1 << j->succ_low));
|
|
|
|
001ac 48 8b 85 40 01
|
|
00 00 mov rax, QWORD PTR j$[rbp]
|
|
001b3 8b 80 40 48 00
|
|
00 mov eax, DWORD PTR [rax+18496]
|
|
001b9 b9 01 00 00 00 mov ecx, 1
|
|
001be 89 8d 14 01 00
|
|
00 mov DWORD PTR tv210[rbp], ecx
|
|
001c4 0f b6 c8 movzx ecx, al
|
|
001c7 8b 85 14 01 00
|
|
00 mov eax, DWORD PTR tv210[rbp]
|
|
001cd d3 e0 shl eax, cl
|
|
001cf 8b 4d 24 mov ecx, DWORD PTR dc$[rbp]
|
|
001d2 0f af c8 imul ecx, eax
|
|
001d5 8b c1 mov eax, ecx
|
|
001d7 b9 02 00 00 00 mov ecx, 2
|
|
001dc 48 6b c9 00 imul rcx, rcx, 0
|
|
001e0 48 8b 95 48 01
|
|
00 00 mov rdx, QWORD PTR data$[rbp]
|
|
001e7 66 89 04 0a mov WORD PTR [rdx+rcx], ax
|
|
|
|
; 2549 : } else {
|
|
|
|
001eb eb 53 jmp SHORT $LN5@stbi__jpeg
|
|
$LN4@stbi__jpeg:
|
|
|
|
; 2550 : // refinement scan for DC coefficient
|
|
; 2551 : if (stbi__jpeg_get_bit(j))
|
|
|
|
001ed 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR j$[rbp]
|
|
001f4 e8 00 00 00 00 call stbi__jpeg_get_bit
|
|
001f9 85 c0 test eax, eax
|
|
001fb 74 43 je SHORT $LN10@stbi__jpeg
|
|
|
|
; 2552 : data[0] += (short)(1 << j->succ_low);
|
|
|
|
001fd b8 02 00 00 00 mov eax, 2
|
|
00202 48 6b c0 00 imul rax, rax, 0
|
|
00206 48 8b 8d 40 01
|
|
00 00 mov rcx, QWORD PTR j$[rbp]
|
|
0020d 8b 89 40 48 00
|
|
00 mov ecx, DWORD PTR [rcx+18496]
|
|
00213 ba 01 00 00 00 mov edx, 1
|
|
00218 d3 e2 shl edx, cl
|
|
0021a 8b ca mov ecx, edx
|
|
0021c 0f bf c9 movsx ecx, cx
|
|
0021f 48 8b 95 48 01
|
|
00 00 mov rdx, QWORD PTR data$[rbp]
|
|
00226 0f bf 04 02 movsx eax, WORD PTR [rdx+rax]
|
|
0022a 03 c1 add eax, ecx
|
|
0022c b9 02 00 00 00 mov ecx, 2
|
|
00231 48 6b c9 00 imul rcx, rcx, 0
|
|
00235 48 8b 95 48 01
|
|
00 00 mov rdx, QWORD PTR data$[rbp]
|
|
0023c 66 89 04 0a mov WORD PTR [rdx+rcx], ax
|
|
$LN10@stbi__jpeg:
|
|
$LN5@stbi__jpeg:
|
|
|
|
; 2553 : }
|
|
; 2554 : return 1;
|
|
|
|
00240 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__jpeg:
|
|
|
|
; 2555 : }
|
|
|
|
00245 48 8d a5 28 01
|
|
00 00 lea rsp, QWORD PTR [rbp+296]
|
|
0024c 5f pop rdi
|
|
0024d 5d pop rbp
|
|
0024e c3 ret 0
|
|
stbi__jpeg_decode_block_prog_dc ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; 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
|
|
tv276 = 472
|
|
j$ = 512
|
|
data$ = 520
|
|
hdc$ = 528
|
|
hac$ = 536
|
|
fac$ = 544
|
|
b$ = 552
|
|
dequant$ = 560
|
|
stbi__jpeg_decode_block PROC ; COMDAT
|
|
|
|
; 2461 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 2462 : int diff, dc, k;
|
|
; 2463 : int t;
|
|
; 2464 :
|
|
; 2465 : 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
|
|
|
|
; 2466 : 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:
|
|
|
|
; 2467 : 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
|
|
|
|
; 2468 : 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:
|
|
|
|
; 2469 : 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 53 03 00 00 jmp $LN1@stbi__jpeg
|
|
$LN6@stbi__jpeg:
|
|
|
|
; 2470 :
|
|
; 2471 : // 0 all the ac values now so we can do it 32-bits at a time
|
|
; 2472 : 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
|
|
|
|
; 2473 :
|
|
; 2474 : 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
|
|
|
|
; 2475 : 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
|
|
|
|
; 2476 : 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 d8 02 00 00 jmp $LN1@stbi__jpeg
|
|
$LN8@stbi__jpeg:
|
|
|
|
; 2477 : 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
|
|
|
|
; 2478 : 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
|
|
|
|
; 2479 : 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 04 01 movzx eax, WORD PTR [rcx+rax]
|
|
00149 8b d0 mov edx, eax
|
|
0014b 8b 4d 24 mov ecx, DWORD PTR dc$[rbp]
|
|
0014e e8 00 00 00 00 call stbi__mul2shorts_valid
|
|
00153 85 c0 test eax, eax
|
|
00155 75 11 jne SHORT $LN9@stbi__jpeg
|
|
|
|
; 2480 : return stbi__err("can't merge dc and ac", "Corrupt JPEG");
|
|
|
|
00157 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BG@PJBJDAGM@can?8t?5merge?5dc?5and?5ac@
|
|
0015e e8 00 00 00 00 call stbi__err
|
|
00163 e9 6a 02 00 00 jmp $LN1@stbi__jpeg
|
|
$LN9@stbi__jpeg:
|
|
|
|
; 2481 : data[0] = (short)(dc * dequant[0]);
|
|
|
|
00168 b8 02 00 00 00 mov eax, 2
|
|
0016d 48 6b c0 00 imul rax, rax, 0
|
|
00171 48 8b 8d 30 02
|
|
00 00 mov rcx, QWORD PTR dequant$[rbp]
|
|
00178 0f b7 04 01 movzx eax, WORD PTR [rcx+rax]
|
|
0017c 8b 4d 24 mov ecx, DWORD PTR dc$[rbp]
|
|
0017f 0f af c8 imul ecx, eax
|
|
00182 8b c1 mov eax, ecx
|
|
00184 b9 02 00 00 00 mov ecx, 2
|
|
00189 48 6b c9 00 imul rcx, rcx, 0
|
|
0018d 48 8b 95 08 02
|
|
00 00 mov rdx, QWORD PTR data$[rbp]
|
|
00194 66 89 04 0a mov WORD PTR [rdx+rcx], ax
|
|
|
|
; 2482 :
|
|
; 2483 : // decode AC components, see JPEG spec
|
|
; 2484 : k = 1;
|
|
|
|
00198 c7 45 44 01 00
|
|
00 00 mov DWORD PTR k$[rbp], 1
|
|
$LN4@stbi__jpeg:
|
|
|
|
; 2485 : do {
|
|
; 2486 : unsigned int zig;
|
|
; 2487 : int c, r, s;
|
|
; 2488 : if (j->code_bits < 16)
|
|
|
|
0019f 48 8b 85 00 02
|
|
00 00 mov rax, QWORD PTR j$[rbp]
|
|
001a6 83 b8 24 48 00
|
|
00 10 cmp DWORD PTR [rax+18468], 16
|
|
001ad 7d 0d jge SHORT $LN10@stbi__jpeg
|
|
|
|
; 2489 : stbi__grow_buffer_unsafe(j);
|
|
|
|
001af 48 8b 8d 00 02
|
|
00 00 mov rcx, QWORD PTR j$[rbp]
|
|
001b6 e8 00 00 00 00 call stbi__grow_buffer_unsafe
|
|
001bb 90 npad 1
|
|
$LN10@stbi__jpeg:
|
|
|
|
; 2490 : c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1);
|
|
|
|
001bc 48 8b 85 00 02
|
|
00 00 mov rax, QWORD PTR j$[rbp]
|
|
001c3 8b 80 20 48 00
|
|
00 mov eax, DWORD PTR [rax+18464]
|
|
001c9 c1 e8 17 shr eax, 23
|
|
001cc 25 ff 01 00 00 and eax, 511 ; 000001ffH
|
|
001d1 89 85 a4 00 00
|
|
00 mov DWORD PTR c$2[rbp], eax
|
|
|
|
; 2491 : r = fac[c];
|
|
|
|
001d7 48 63 85 a4 00
|
|
00 00 movsxd rax, DWORD PTR c$2[rbp]
|
|
001de 48 8b 8d 20 02
|
|
00 00 mov rcx, QWORD PTR fac$[rbp]
|
|
001e5 0f bf 04 41 movsx eax, WORD PTR [rcx+rax*2]
|
|
001e9 89 85 c4 00 00
|
|
00 mov DWORD PTR r$3[rbp], eax
|
|
|
|
; 2492 : if (r) { // fast-AC path
|
|
|
|
001ef 83 bd c4 00 00
|
|
00 00 cmp DWORD PTR r$3[rbp], 0
|
|
001f6 0f 84 f0 00 00
|
|
00 je $LN11@stbi__jpeg
|
|
|
|
; 2493 : k += (r >> 4) & 15; // run
|
|
|
|
001fc 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR r$3[rbp]
|
|
00202 c1 f8 04 sar eax, 4
|
|
00205 83 e0 0f and eax, 15
|
|
00208 8b 4d 44 mov ecx, DWORD PTR k$[rbp]
|
|
0020b 03 c8 add ecx, eax
|
|
0020d 8b c1 mov eax, ecx
|
|
0020f 89 45 44 mov DWORD PTR k$[rbp], eax
|
|
|
|
; 2494 : s = r & 15; // combined length
|
|
|
|
00212 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR r$3[rbp]
|
|
00218 83 e0 0f and eax, 15
|
|
0021b 89 85 e4 00 00
|
|
00 mov DWORD PTR s$4[rbp], eax
|
|
|
|
; 2495 : if (s > j->code_bits)
|
|
|
|
00221 48 8b 85 00 02
|
|
00 00 mov rax, QWORD PTR j$[rbp]
|
|
00228 8b 80 24 48 00
|
|
00 mov eax, DWORD PTR [rax+18468]
|
|
0022e 39 85 e4 00 00
|
|
00 cmp DWORD PTR s$4[rbp], eax
|
|
00234 7e 11 jle SHORT $LN13@stbi__jpeg
|
|
|
|
; 2496 : return stbi__err("bad huffman code",
|
|
|
|
00236 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@
|
|
0023d e8 00 00 00 00 call stbi__err
|
|
00242 e9 8b 01 00 00 jmp $LN1@stbi__jpeg
|
|
$LN13@stbi__jpeg:
|
|
|
|
; 2497 : "Combined length longer than code bits available");
|
|
; 2498 : j->code_buffer <<= s;
|
|
|
|
00247 8b 85 e4 00 00
|
|
00 mov eax, DWORD PTR s$4[rbp]
|
|
0024d 48 8b 8d 00 02
|
|
00 00 mov rcx, QWORD PTR j$[rbp]
|
|
00254 48 89 8d d8 01
|
|
00 00 mov QWORD PTR tv276[rbp], rcx
|
|
0025b 0f b6 c8 movzx ecx, al
|
|
0025e 48 8b 85 d8 01
|
|
00 00 mov rax, QWORD PTR tv276[rbp]
|
|
00265 8b 80 20 48 00
|
|
00 mov eax, DWORD PTR [rax+18464]
|
|
0026b d3 e0 shl eax, cl
|
|
0026d 48 8b 8d 00 02
|
|
00 00 mov rcx, QWORD PTR j$[rbp]
|
|
00274 89 81 20 48 00
|
|
00 mov DWORD PTR [rcx+18464], eax
|
|
|
|
; 2499 : j->code_bits -= s;
|
|
|
|
0027a 48 8b 85 00 02
|
|
00 00 mov rax, QWORD PTR j$[rbp]
|
|
00281 8b 8d e4 00 00
|
|
00 mov ecx, DWORD PTR s$4[rbp]
|
|
00287 8b 80 24 48 00
|
|
00 mov eax, DWORD PTR [rax+18468]
|
|
0028d 2b c1 sub eax, ecx
|
|
0028f 48 8b 8d 00 02
|
|
00 00 mov rcx, QWORD PTR j$[rbp]
|
|
00296 89 81 24 48 00
|
|
00 mov DWORD PTR [rcx+18468], eax
|
|
|
|
; 2500 : // decode into unzigzag'd location
|
|
; 2501 : zig = stbi__jpeg_dezigzag[k++];
|
|
|
|
0029c 48 63 45 44 movsxd rax, DWORD PTR k$[rbp]
|
|
002a0 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag
|
|
002a7 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
002ab 89 85 84 00 00
|
|
00 mov DWORD PTR zig$1[rbp], eax
|
|
002b1 8b 45 44 mov eax, DWORD PTR k$[rbp]
|
|
002b4 ff c0 inc eax
|
|
002b6 89 45 44 mov DWORD PTR k$[rbp], eax
|
|
|
|
; 2502 : data[zig] = (short)((r >> 8) * dequant[zig]);
|
|
|
|
002b9 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR r$3[rbp]
|
|
002bf c1 f8 08 sar eax, 8
|
|
002c2 8b 8d 84 00 00
|
|
00 mov ecx, DWORD PTR zig$1[rbp]
|
|
002c8 48 8b 95 30 02
|
|
00 00 mov rdx, QWORD PTR dequant$[rbp]
|
|
002cf 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2]
|
|
002d3 0f af c1 imul eax, ecx
|
|
002d6 8b 8d 84 00 00
|
|
00 mov ecx, DWORD PTR zig$1[rbp]
|
|
002dc 48 8b 95 08 02
|
|
00 00 mov rdx, QWORD PTR data$[rbp]
|
|
002e3 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax
|
|
|
|
; 2503 : } else {
|
|
|
|
002e7 e9 d7 00 00 00 jmp $LN12@stbi__jpeg
|
|
$LN11@stbi__jpeg:
|
|
|
|
; 2504 : int rs = stbi__jpeg_huff_decode(j, hac);
|
|
|
|
002ec 48 8b 95 18 02
|
|
00 00 mov rdx, QWORD PTR hac$[rbp]
|
|
002f3 48 8b 8d 00 02
|
|
00 00 mov rcx, QWORD PTR j$[rbp]
|
|
002fa e8 00 00 00 00 call stbi__jpeg_huff_decode
|
|
002ff 89 85 04 01 00
|
|
00 mov DWORD PTR rs$5[rbp], eax
|
|
|
|
; 2505 : if (rs < 0)
|
|
|
|
00305 83 bd 04 01 00
|
|
00 00 cmp DWORD PTR rs$5[rbp], 0
|
|
0030c 7d 11 jge SHORT $LN14@stbi__jpeg
|
|
|
|
; 2506 : return stbi__err("bad huffman code", "Corrupt JPEG");
|
|
|
|
0030e 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_0BB@IIMLINA@bad?5huffman?5code@
|
|
00315 e8 00 00 00 00 call stbi__err
|
|
0031a e9 b3 00 00 00 jmp $LN1@stbi__jpeg
|
|
$LN14@stbi__jpeg:
|
|
|
|
; 2507 : s = rs & 15;
|
|
|
|
0031f 8b 85 04 01 00
|
|
00 mov eax, DWORD PTR rs$5[rbp]
|
|
00325 83 e0 0f and eax, 15
|
|
00328 89 85 e4 00 00
|
|
00 mov DWORD PTR s$4[rbp], eax
|
|
|
|
; 2508 : r = rs >> 4;
|
|
|
|
0032e 8b 85 04 01 00
|
|
00 mov eax, DWORD PTR rs$5[rbp]
|
|
00334 c1 f8 04 sar eax, 4
|
|
00337 89 85 c4 00 00
|
|
00 mov DWORD PTR r$3[rbp], eax
|
|
|
|
; 2509 : if (s == 0) {
|
|
|
|
0033d 83 bd e4 00 00
|
|
00 00 cmp DWORD PTR s$4[rbp], 0
|
|
00344 75 19 jne SHORT $LN15@stbi__jpeg
|
|
|
|
; 2510 : if (rs != 0xf0)
|
|
|
|
00346 81 bd 04 01 00
|
|
00 f0 00 00 00 cmp DWORD PTR rs$5[rbp], 240 ; 000000f0H
|
|
00350 74 02 je SHORT $LN17@stbi__jpeg
|
|
|
|
; 2511 : break; // end block
|
|
|
|
00352 eb 79 jmp SHORT $LN3@stbi__jpeg
|
|
$LN17@stbi__jpeg:
|
|
|
|
; 2512 : k += 16;
|
|
|
|
00354 8b 45 44 mov eax, DWORD PTR k$[rbp]
|
|
00357 83 c0 10 add eax, 16
|
|
0035a 89 45 44 mov DWORD PTR k$[rbp], eax
|
|
|
|
; 2513 : } else {
|
|
|
|
0035d eb 64 jmp SHORT $LN16@stbi__jpeg
|
|
$LN15@stbi__jpeg:
|
|
|
|
; 2514 : k += r;
|
|
|
|
0035f 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR r$3[rbp]
|
|
00365 8b 4d 44 mov ecx, DWORD PTR k$[rbp]
|
|
00368 03 c8 add ecx, eax
|
|
0036a 8b c1 mov eax, ecx
|
|
0036c 89 45 44 mov DWORD PTR k$[rbp], eax
|
|
|
|
; 2515 : // decode into unzigzag'd location
|
|
; 2516 : zig = stbi__jpeg_dezigzag[k++];
|
|
|
|
0036f 48 63 45 44 movsxd rax, DWORD PTR k$[rbp]
|
|
00373 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:stbi__jpeg_dezigzag
|
|
0037a 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
|
0037e 89 85 84 00 00
|
|
00 mov DWORD PTR zig$1[rbp], eax
|
|
00384 8b 45 44 mov eax, DWORD PTR k$[rbp]
|
|
00387 ff c0 inc eax
|
|
00389 89 45 44 mov DWORD PTR k$[rbp], eax
|
|
|
|
; 2517 : data[zig] = (short)(stbi__extend_receive(j, s) * dequant[zig]);
|
|
|
|
0038c 8b 95 e4 00 00
|
|
00 mov edx, DWORD PTR s$4[rbp]
|
|
00392 48 8b 8d 00 02
|
|
00 00 mov rcx, QWORD PTR j$[rbp]
|
|
00399 e8 00 00 00 00 call stbi__extend_receive
|
|
0039e 8b 8d 84 00 00
|
|
00 mov ecx, DWORD PTR zig$1[rbp]
|
|
003a4 48 8b 95 30 02
|
|
00 00 mov rdx, QWORD PTR dequant$[rbp]
|
|
003ab 0f b7 0c 4a movzx ecx, WORD PTR [rdx+rcx*2]
|
|
003af 0f af c1 imul eax, ecx
|
|
003b2 8b 8d 84 00 00
|
|
00 mov ecx, DWORD PTR zig$1[rbp]
|
|
003b8 48 8b 95 08 02
|
|
00 00 mov rdx, QWORD PTR data$[rbp]
|
|
003bf 66 89 04 4a mov WORD PTR [rdx+rcx*2], ax
|
|
$LN16@stbi__jpeg:
|
|
$LN12@stbi__jpeg:
|
|
|
|
; 2518 : }
|
|
; 2519 : }
|
|
; 2520 : } while (k < 64);
|
|
|
|
003c3 83 7d 44 40 cmp DWORD PTR k$[rbp], 64 ; 00000040H
|
|
003c7 0f 8c d2 fd ff
|
|
ff jl $LN4@stbi__jpeg
|
|
$LN3@stbi__jpeg:
|
|
|
|
; 2521 : return 1;
|
|
|
|
003cd b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__jpeg:
|
|
|
|
; 2522 : }
|
|
|
|
003d2 48 8d a5 e8 01
|
|
00 00 lea rsp, QWORD PTR [rbp+488]
|
|
003d9 5f pop rdi
|
|
003da 5d pop rbp
|
|
003db c3 ret 0
|
|
stbi__jpeg_decode_block ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__jpeg_get_bit
|
|
_TEXT SEGMENT
|
|
k$ = 4
|
|
j$ = 256
|
|
stbi__jpeg_get_bit PROC ; COMDAT
|
|
|
|
; 2435 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 2436 : unsigned int k;
|
|
; 2437 : 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
|
|
|
|
; 2438 : 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:
|
|
|
|
; 2439 : 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
|
|
|
|
; 2440 : 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:
|
|
|
|
; 2441 : 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
|
|
|
|
; 2442 : 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
|
|
|
|
; 2443 : --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
|
|
|
|
; 2444 : 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:
|
|
|
|
; 2445 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__jpeg_get_bits
|
|
_TEXT SEGMENT
|
|
k$ = 4
|
|
j$ = 256
|
|
n$ = 264
|
|
stbi__jpeg_get_bits PROC ; COMDAT
|
|
|
|
; 2421 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 2422 : unsigned int k;
|
|
; 2423 : 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
|
|
|
|
; 2424 : 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:
|
|
|
|
; 2425 : 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
|
|
|
|
; 2426 : 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:
|
|
|
|
; 2427 : 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
|
|
|
|
; 2428 : 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
|
|
|
|
; 2429 : 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
|
|
|
|
; 2430 : 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
|
|
|
|
; 2431 : return k;
|
|
|
|
000e1 8b 45 04 mov eax, DWORD PTR k$[rbp]
|
|
$LN1@stbi__jpeg:
|
|
|
|
; 2432 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__extend_receive
|
|
_TEXT SEGMENT
|
|
k$ = 4
|
|
sgn$ = 36
|
|
j$ = 288
|
|
n$ = 296
|
|
stbi__extend_receive PROC ; COMDAT
|
|
|
|
; 2402 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 2403 : unsigned int k;
|
|
; 2404 : int sgn;
|
|
; 2405 : 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
|
|
|
|
; 2406 : 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:
|
|
|
|
; 2407 : 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
|
|
|
|
; 2408 : 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:
|
|
|
|
; 2409 :
|
|
; 2410 : 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
|
|
|
|
; 2411 : 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative)
|
|
; 2412 : 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
|
|
|
|
; 2413 : 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
|
|
|
|
; 2414 : 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
|
|
|
|
; 2415 : 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
|
|
|
|
; 2416 : 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:
|
|
|
|
; 2417 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 2343 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 2344 : unsigned int temp;
|
|
; 2345 : int c, k;
|
|
; 2346 :
|
|
; 2347 : 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
|
|
|
|
; 2348 : 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:
|
|
|
|
; 2349 :
|
|
; 2350 : // look at the top FAST_BITS and determine what symbol ID it is,
|
|
; 2351 : // if the code is <= FAST_BITS
|
|
; 2352 : 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
|
|
|
|
; 2353 : 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
|
|
|
|
; 2354 : 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
|
|
|
|
; 2355 : 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
|
|
|
|
; 2356 : 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
|
|
|
|
; 2357 : return -1;
|
|
|
|
000a1 b8 ff ff ff ff mov eax, -1
|
|
000a6 e9 41 02 00 00 jmp $LN1@stbi__jpeg
|
|
$LN7@stbi__jpeg:
|
|
|
|
; 2358 : 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
|
|
|
|
; 2359 : 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
|
|
|
|
; 2360 : 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:
|
|
|
|
; 2361 : }
|
|
; 2362 :
|
|
; 2363 : // naive test is to shift the code_buffer down so k bits are
|
|
; 2364 : // valid, then test against maxcode. To speed this up, we've
|
|
; 2365 : // preshifted maxcode left so that it has (16-k) 0s at the
|
|
; 2366 : // end; in other words, regardless of the number of bits, it
|
|
; 2367 : // wants to be compared against something shifted to have 16;
|
|
; 2368 : // that way we don't need to shift inside the loop.
|
|
; 2369 : 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
|
|
|
|
; 2370 : 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:
|
|
|
|
; 2371 : 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
|
|
|
|
; 2372 : break;
|
|
|
|
0014d eb 02 jmp SHORT $LN3@stbi__jpeg
|
|
$LN8@stbi__jpeg:
|
|
0014f eb dd jmp SHORT $LN2@stbi__jpeg
|
|
$LN3@stbi__jpeg:
|
|
|
|
; 2373 : if (k == 17) {
|
|
|
|
00151 83 7d 44 11 cmp DWORD PTR k$[rbp], 17
|
|
00155 75 27 jne SHORT $LN9@stbi__jpeg
|
|
|
|
; 2374 : // error! code not found
|
|
; 2375 : 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
|
|
|
|
; 2376 : return -1;
|
|
|
|
00174 b8 ff ff ff ff mov eax, -1
|
|
00179 e9 6e 01 00 00 jmp $LN1@stbi__jpeg
|
|
$LN9@stbi__jpeg:
|
|
|
|
; 2377 : }
|
|
; 2378 :
|
|
; 2379 : 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
|
|
|
|
; 2380 : return -1;
|
|
|
|
00190 b8 ff ff ff ff mov eax, -1
|
|
00195 e9 52 01 00 00 jmp $LN1@stbi__jpeg
|
|
$LN10@stbi__jpeg:
|
|
|
|
; 2381 :
|
|
; 2382 : // convert the huffman code to the symbol id
|
|
; 2383 : 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
|
|
|
|
; 2384 : 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:
|
|
|
|
; 2385 : return -1;
|
|
|
|
001f4 b8 ff ff ff ff mov eax, -1
|
|
001f9 e9 ee 00 00 00 jmp $LN1@stbi__jpeg
|
|
$LN11@stbi__jpeg:
|
|
|
|
; 2386 : 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 53 09 00
|
|
00 mov r8d, 2387 ; 00000953H
|
|
00274 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 2387 : h->code[c]);
|
|
; 2388 :
|
|
; 2389 : // convert the id to a symbol
|
|
; 2390 : 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
|
|
|
|
; 2391 : 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
|
|
|
|
; 2392 : 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:
|
|
|
|
; 2393 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__grow_buffer_unsafe
|
|
_TEXT SEGMENT
|
|
b$1 = 4
|
|
c$2 = 36
|
|
tv70 = 244
|
|
j$ = 288
|
|
stbi__grow_buffer_unsafe PROC ; COMDAT
|
|
|
|
; 2319 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
$LN4@stbi__grow:
|
|
|
|
; 2320 : do {
|
|
; 2321 : 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
|
|
|
|
; 2322 : 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
|
|
|
|
; 2323 : 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:
|
|
|
|
; 2324 : 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
|
|
|
|
; 2325 : 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:
|
|
|
|
; 2326 : if (c != 0) {
|
|
|
|
0009b 83 7d 24 00 cmp DWORD PTR c$2[rbp], 0
|
|
0009f 74 24 je SHORT $LN8@stbi__grow
|
|
|
|
; 2327 : 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
|
|
|
|
; 2328 : 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
|
|
|
|
; 2329 : return;
|
|
|
|
000c3 eb 6b jmp SHORT $LN1@stbi__grow
|
|
$LN8@stbi__grow:
|
|
$LN7@stbi__grow:
|
|
|
|
; 2330 : }
|
|
; 2331 : }
|
|
; 2332 : 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
|
|
|
|
; 2333 : 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
|
|
|
|
; 2334 : } 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:
|
|
|
|
; 2335 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 2291 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 2292 : int i;
|
|
; 2293 : 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
|
|
|
|
; 2294 : 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
|
|
|
|
; 2295 : 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
|
|
|
|
; 2296 : 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
|
|
|
|
; 2297 : 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
|
|
|
|
; 2298 : 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
|
|
|
|
; 2299 : 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
|
|
|
|
; 2300 : 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
|
|
|
|
; 2301 :
|
|
; 2302 : 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
|
|
|
|
; 2303 : // magnitude code followed by receive_extend code
|
|
; 2304 : 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
|
|
|
|
; 2305 : (FAST_BITS - magbits);
|
|
; 2306 : 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
|
|
|
|
; 2307 : 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
|
|
|
|
; 2308 : 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:
|
|
|
|
; 2309 : // if the result is small enough, we can fit it in fast_ac table
|
|
; 2310 : 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
|
|
|
|
; 2311 : 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:
|
|
|
|
; 2312 : (len + magbits));
|
|
; 2313 : }
|
|
; 2314 : }
|
|
; 2315 : }
|
|
|
|
001a9 e9 80 fe ff ff jmp $LN2@stbi__buil
|
|
$LN3@stbi__buil:
|
|
|
|
; 2316 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 2242 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 2243 : int i, j, k = 0;
|
|
|
|
00025 c7 45 44 00 00
|
|
00 00 mov DWORD PTR k$[rbp], 0
|
|
|
|
; 2244 : unsigned int code;
|
|
; 2245 : // build size list for each symbol (from JPEG spec)
|
|
; 2246 : 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
|
|
|
|
; 2247 : 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
|
|
|
|
; 2248 : 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
|
|
|
|
; 2249 : 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
|
|
|
|
; 2250 : 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:
|
|
|
|
; 2251 : }
|
|
|
|
000a0 eb aa jmp SHORT $LN5@stbi__buil
|
|
$LN6@stbi__buil:
|
|
|
|
; 2252 : }
|
|
|
|
000a2 eb 91 jmp SHORT $LN2@stbi__buil
|
|
$LN3@stbi__buil:
|
|
|
|
; 2253 : 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
|
|
|
|
; 2254 :
|
|
; 2255 : // compute actual symbols (from jpeg spec)
|
|
; 2256 : code = 0;
|
|
|
|
000b7 c7 45 64 00 00
|
|
00 00 mov DWORD PTR code$[rbp], 0
|
|
|
|
; 2257 : k = 0;
|
|
|
|
000be c7 45 44 00 00
|
|
00 00 mov DWORD PTR k$[rbp], 0
|
|
|
|
; 2258 : 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
|
|
|
|
; 2259 : // compute delta to add to code to compute symbol id
|
|
; 2260 : 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
|
|
|
|
; 2261 : 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:
|
|
|
|
; 2262 : 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
|
|
|
|
; 2263 : 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:
|
|
|
|
; 2264 : 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
|
|
|
|
; 2265 : 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:
|
|
|
|
; 2266 : }
|
|
; 2267 : // compute largest code + 1 for this size, preshifted as needed later
|
|
; 2268 : 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
|
|
|
|
; 2269 : 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
|
|
|
|
; 2270 : }
|
|
|
|
001a5 e9 24 ff ff ff jmp $LN8@stbi__buil
|
|
$LN9@stbi__buil:
|
|
|
|
; 2271 : 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
|
|
|
|
; 2272 :
|
|
; 2273 : // build non-spec acceleration table; 255 is flag for not-accelerated
|
|
; 2274 : 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
|
|
|
|
; 2275 : 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
|
|
|
|
; 2276 : 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
|
|
|
|
; 2277 : 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
|
|
|
|
; 2278 : 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
|
|
|
|
; 2279 : 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
|
|
|
|
; 2280 : 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
|
|
|
|
; 2281 : 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
|
|
|
|
; 2282 : }
|
|
|
|
002a4 eb ce jmp SHORT $LN16@stbi__buil
|
|
$LN17@stbi__buil:
|
|
$LN22@stbi__buil:
|
|
|
|
; 2283 : }
|
|
; 2284 : }
|
|
|
|
002a6 e9 39 ff ff ff jmp $LN13@stbi__buil
|
|
$LN14@stbi__buil:
|
|
|
|
; 2285 : return 1;
|
|
|
|
002ab b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__buil:
|
|
|
|
; 2286 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1963 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002d 90 npad 1
|
|
|
|
; 1964 : int i, j;
|
|
; 1965 : stbi__uint16 *good;
|
|
; 1966 :
|
|
; 1967 : 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
|
|
|
|
; 1968 : 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:
|
|
|
|
; 1969 : 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 b1 07 00
|
|
00 mov r8d, 1969 ; 000007b1H
|
|
00060 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 1970 :
|
|
; 1971 : 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
|
|
|
|
; 1972 : if (good == NULL) {
|
|
|
|
00099 48 83 7d 48 00 cmp QWORD PTR good$[rbp], 0
|
|
0009e 75 42 jne SHORT $LN44@stbi__conv
|
|
|
|
; 1973 : 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
|
|
|
|
; 1974 : 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:
|
|
|
|
; 1975 : }
|
|
; 1976 :
|
|
; 1977 : 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
|
|
|
|
; 1978 : 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
|
|
|
|
; 1979 : 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
|
|
|
|
; 1980 :
|
|
; 1981 : #define STBI__COMBO(a, b) ((a) * 8 + (b))
|
|
; 1982 : #define STBI__CASE(a, b) \
|
|
; 1983 : case STBI__COMBO(a, b): \
|
|
; 1984 : for (i = x - 1; i >= 0; --i, src += a, dest += b)
|
|
; 1985 : // convert source image with img_n components to one with req_comp components;
|
|
; 1986 : // avoid switch per pixel, so use switch per scanline and massive macros
|
|
; 1987 : 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:
|
|
|
|
; 1988 : 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
|
|
|
|
; 1989 : {
|
|
; 1990 : 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
|
|
|
|
; 1991 : 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
|
|
|
|
; 1992 : }
|
|
|
|
00209 eb 93 jmp SHORT $LN7@stbi__conv
|
|
$LN8@stbi__conv:
|
|
|
|
; 1993 : break;
|
|
|
|
0020b e9 58 08 00 00 jmp $LN5@stbi__conv
|
|
$LN46@stbi__conv:
|
|
|
|
; 1994 : 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
|
|
|
|
; 1995 : {
|
|
; 1996 : 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
|
|
|
|
; 1997 : }
|
|
|
|
002c1 e9 57 ff ff ff jmp $LN10@stbi__conv
|
|
$LN11@stbi__conv:
|
|
|
|
; 1998 : break;
|
|
|
|
002c6 e9 9d 07 00 00 jmp $LN5@stbi__conv
|
|
$LN47@stbi__conv:
|
|
|
|
; 1999 : 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
|
|
|
|
; 2000 : {
|
|
; 2001 : 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
|
|
|
|
; 2002 : 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
|
|
|
|
; 2003 : }
|
|
|
|
00399 e9 3a ff ff ff jmp $LN13@stbi__conv
|
|
$LN14@stbi__conv:
|
|
|
|
; 2004 : break;
|
|
|
|
0039e e9 c5 06 00 00 jmp $LN5@stbi__conv
|
|
$LN48@stbi__conv:
|
|
|
|
; 2005 : 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
|
|
|
|
; 2006 : {
|
|
; 2007 : 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
|
|
|
|
; 2008 : }
|
|
|
|
00402 eb ac jmp SHORT $LN16@stbi__conv
|
|
$LN17@stbi__conv:
|
|
|
|
; 2009 : break;
|
|
|
|
00404 e9 5f 06 00 00 jmp $LN5@stbi__conv
|
|
$LN49@stbi__conv:
|
|
|
|
; 2010 : 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
|
|
|
|
; 2011 : {
|
|
; 2012 : 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
|
|
|
|
; 2013 : }
|
|
|
|
004ba e9 57 ff ff ff jmp $LN19@stbi__conv
|
|
$LN20@stbi__conv:
|
|
|
|
; 2014 : break;
|
|
|
|
004bf e9 a4 05 00 00 jmp $LN5@stbi__conv
|
|
$LN50@stbi__conv:
|
|
|
|
; 2015 : 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
|
|
|
|
; 2016 : {
|
|
; 2017 : 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
|
|
|
|
; 2018 : 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
|
|
|
|
; 2019 : }
|
|
|
|
0059f e9 2d ff ff ff jmp $LN22@stbi__conv
|
|
$LN23@stbi__conv:
|
|
|
|
; 2020 : break;
|
|
|
|
005a4 e9 bf 04 00 00 jmp $LN5@stbi__conv
|
|
$LN51@stbi__conv:
|
|
|
|
; 2021 : 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
|
|
|
|
; 2022 : {
|
|
; 2023 : 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
|
|
|
|
; 2024 : 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
|
|
|
|
; 2025 : 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
|
|
|
|
; 2026 : 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
|
|
|
|
; 2027 : }
|
|
|
|
00671 e9 40 ff ff ff jmp $LN25@stbi__conv
|
|
$LN26@stbi__conv:
|
|
|
|
; 2028 : break;
|
|
|
|
00676 e9 ed 03 00 00 jmp $LN5@stbi__conv
|
|
$LN52@stbi__conv:
|
|
|
|
; 2029 : 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
|
|
|
|
; 2030 : {
|
|
; 2031 : 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
|
|
|
|
; 2032 : }
|
|
|
|
00714 e9 6f ff ff ff jmp $LN28@stbi__conv
|
|
$LN29@stbi__conv:
|
|
|
|
; 2033 : break;
|
|
|
|
00719 e9 4a 03 00 00 jmp $LN5@stbi__conv
|
|
$LN53@stbi__conv:
|
|
|
|
; 2034 : 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
|
|
|
|
; 2035 : {
|
|
; 2036 : 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
|
|
|
|
; 2037 : 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
|
|
|
|
; 2038 : }
|
|
|
|
007d0 e9 56 ff ff ff jmp $LN31@stbi__conv
|
|
$LN32@stbi__conv:
|
|
|
|
; 2039 : break;
|
|
|
|
007d5 e9 8e 02 00 00 jmp $LN5@stbi__conv
|
|
$LN54@stbi__conv:
|
|
|
|
; 2040 : 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
|
|
|
|
; 2041 : {
|
|
; 2042 : 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
|
|
|
|
; 2043 : }
|
|
|
|
00873 e9 6f ff ff ff jmp $LN34@stbi__conv
|
|
$LN35@stbi__conv:
|
|
|
|
; 2044 : break;
|
|
|
|
00878 e9 eb 01 00 00 jmp $LN5@stbi__conv
|
|
$LN55@stbi__conv:
|
|
|
|
; 2045 : 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
|
|
|
|
; 2046 : {
|
|
; 2047 : 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
|
|
|
|
; 2048 : 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
|
|
|
|
; 2049 : }
|
|
|
|
00940 e9 45 ff ff ff jmp $LN37@stbi__conv
|
|
$LN38@stbi__conv:
|
|
|
|
; 2050 : break;
|
|
|
|
00945 e9 1e 01 00 00 jmp $LN5@stbi__conv
|
|
$LN56@stbi__conv:
|
|
|
|
; 2051 : 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
|
|
|
|
; 2052 : {
|
|
; 2053 : 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
|
|
|
|
; 2054 : 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
|
|
|
|
; 2055 : 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
|
|
|
|
; 2056 : }
|
|
|
|
009f5 e9 5d ff ff ff jmp $LN40@stbi__conv
|
|
$LN41@stbi__conv:
|
|
|
|
; 2057 : break;
|
|
|
|
009fa eb 6c jmp SHORT $LN5@stbi__conv
|
|
$LN57@stbi__conv:
|
|
|
|
; 2058 : default:
|
|
; 2059 : 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 0b 08 00
|
|
00 mov r8d, 2059 ; 0000080bH
|
|
00a08 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 2060 : 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
|
|
|
|
; 2061 : 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
|
|
|
|
; 2062 : 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:
|
|
|
|
; 2063 : "Unsupported format conversion");
|
|
; 2064 : }
|
|
; 2065 : #undef STBI__CASE
|
|
; 2066 : }
|
|
|
|
00a68 e9 7e f6 ff ff jmp $LN2@stbi__conv
|
|
$LN3@stbi__conv:
|
|
|
|
; 2067 :
|
|
; 2068 : 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
|
|
|
|
; 2069 : return good;
|
|
|
|
00a7b 48 8b 45 48 mov rax, QWORD PTR good$[rbp]
|
|
$LN1@stbi__conv:
|
|
|
|
; 2070 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__compute_y_16
|
|
_TEXT SEGMENT
|
|
r$ = 224
|
|
g$ = 232
|
|
b$ = 240
|
|
stbi__compute_y_16 PROC ; COMDAT
|
|
|
|
; 1953 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00027 90 npad 1
|
|
|
|
; 1954 : 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
|
|
|
|
; 1955 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1840 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002d 90 npad 1
|
|
|
|
; 1841 : int i, j;
|
|
; 1842 : unsigned char *good;
|
|
; 1843 :
|
|
; 1844 : 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
|
|
|
|
; 1845 : 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:
|
|
|
|
; 1846 : 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 36 07 00
|
|
00 mov r8d, 1846 ; 00000736H
|
|
00060 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 1847 :
|
|
; 1848 : 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
|
|
|
|
; 1849 : if (good == NULL) {
|
|
|
|
00095 48 83 7d 48 00 cmp QWORD PTR good$[rbp], 0
|
|
0009a 75 42 jne SHORT $LN44@stbi__conv
|
|
|
|
; 1850 : 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
|
|
|
|
; 1851 : 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:
|
|
|
|
; 1852 : }
|
|
; 1853 :
|
|
; 1854 : 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
|
|
|
|
; 1855 : 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
|
|
|
|
; 1856 : 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
|
|
|
|
; 1857 :
|
|
; 1858 : #define STBI__COMBO(a, b) ((a) * 8 + (b))
|
|
; 1859 : #define STBI__CASE(a, b) \
|
|
; 1860 : case STBI__COMBO(a, b): \
|
|
; 1861 : for (i = x - 1; i >= 0; --i, src += a, dest += b)
|
|
; 1862 : // convert source image with img_n components to one with req_comp components;
|
|
; 1863 : // avoid switch per pixel, so use switch per scanline and massive macros
|
|
; 1864 : 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:
|
|
|
|
; 1865 : 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
|
|
|
|
; 1866 : {
|
|
; 1867 : 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
|
|
|
|
; 1868 : 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
|
|
|
|
; 1869 : }
|
|
|
|
00202 eb 9a jmp SHORT $LN7@stbi__conv
|
|
$LN8@stbi__conv:
|
|
|
|
; 1870 : break;
|
|
|
|
00204 e9 2b 08 00 00 jmp $LN5@stbi__conv
|
|
$LN46@stbi__conv:
|
|
|
|
; 1871 : 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
|
|
|
|
; 1872 : {
|
|
; 1873 : 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
|
|
|
|
; 1874 : }
|
|
|
|
002b6 e9 5b ff ff ff jmp $LN10@stbi__conv
|
|
$LN11@stbi__conv:
|
|
|
|
; 1875 : break;
|
|
|
|
002bb e9 74 07 00 00 jmp $LN5@stbi__conv
|
|
$LN47@stbi__conv:
|
|
|
|
; 1876 : 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
|
|
|
|
; 1877 : {
|
|
; 1878 : 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
|
|
|
|
; 1879 : 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
|
|
|
|
; 1880 : }
|
|
|
|
00385 e9 43 ff ff ff jmp $LN13@stbi__conv
|
|
$LN14@stbi__conv:
|
|
|
|
; 1881 : break;
|
|
|
|
0038a e9 a5 06 00 00 jmp $LN5@stbi__conv
|
|
$LN48@stbi__conv:
|
|
|
|
; 1882 : 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
|
|
|
|
; 1883 : {
|
|
; 1884 : 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
|
|
|
|
; 1885 : }
|
|
|
|
003ec eb ae jmp SHORT $LN16@stbi__conv
|
|
$LN17@stbi__conv:
|
|
|
|
; 1886 : break;
|
|
|
|
003ee e9 41 06 00 00 jmp $LN5@stbi__conv
|
|
$LN49@stbi__conv:
|
|
|
|
; 1887 : 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
|
|
|
|
; 1888 : {
|
|
; 1889 : 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
|
|
|
|
; 1890 : }
|
|
|
|
004a1 e9 5a ff ff ff jmp $LN19@stbi__conv
|
|
$LN20@stbi__conv:
|
|
|
|
; 1891 : break;
|
|
|
|
004a6 e9 89 05 00 00 jmp $LN5@stbi__conv
|
|
$LN50@stbi__conv:
|
|
|
|
; 1892 : 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
|
|
|
|
; 1893 : {
|
|
; 1894 : 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
|
|
|
|
; 1895 : 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
|
|
|
|
; 1896 : }
|
|
|
|
00582 e9 31 ff ff ff jmp $LN22@stbi__conv
|
|
$LN23@stbi__conv:
|
|
|
|
; 1897 : break;
|
|
|
|
00587 e9 a8 04 00 00 jmp $LN5@stbi__conv
|
|
$LN51@stbi__conv:
|
|
|
|
; 1898 : 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
|
|
|
|
; 1899 : {
|
|
; 1900 : 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
|
|
|
|
; 1901 : 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
|
|
|
|
; 1902 : 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
|
|
|
|
; 1903 : 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
|
|
|
|
; 1904 : }
|
|
|
|
0064c e9 48 ff ff ff jmp $LN25@stbi__conv
|
|
$LN26@stbi__conv:
|
|
|
|
; 1905 : break;
|
|
|
|
00651 e9 de 03 00 00 jmp $LN5@stbi__conv
|
|
$LN52@stbi__conv:
|
|
|
|
; 1906 : 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
|
|
|
|
; 1907 : {
|
|
; 1908 : 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
|
|
|
|
; 1909 : }
|
|
|
|
006ed e9 71 ff ff ff jmp $LN28@stbi__conv
|
|
$LN29@stbi__conv:
|
|
|
|
; 1910 : break;
|
|
|
|
006f2 e9 3d 03 00 00 jmp $LN5@stbi__conv
|
|
$LN53@stbi__conv:
|
|
|
|
; 1911 : 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
|
|
|
|
; 1912 : {
|
|
; 1913 : 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
|
|
|
|
; 1914 : 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
|
|
|
|
; 1915 : }
|
|
|
|
007a3 e9 5c ff ff ff jmp $LN31@stbi__conv
|
|
$LN32@stbi__conv:
|
|
|
|
; 1916 : break;
|
|
|
|
007a8 e9 87 02 00 00 jmp $LN5@stbi__conv
|
|
$LN54@stbi__conv:
|
|
|
|
; 1917 : 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
|
|
|
|
; 1918 : {
|
|
; 1919 : 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
|
|
|
|
; 1920 : }
|
|
|
|
00844 e9 71 ff ff ff jmp $LN34@stbi__conv
|
|
$LN35@stbi__conv:
|
|
|
|
; 1921 : break;
|
|
|
|
00849 e9 e6 01 00 00 jmp $LN5@stbi__conv
|
|
$LN55@stbi__conv:
|
|
|
|
; 1922 : 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
|
|
|
|
; 1923 : {
|
|
; 1924 : 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
|
|
|
|
; 1925 : 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
|
|
|
|
; 1926 : }
|
|
|
|
0090f e9 47 ff ff ff jmp $LN37@stbi__conv
|
|
$LN38@stbi__conv:
|
|
|
|
; 1927 : break;
|
|
|
|
00914 e9 1b 01 00 00 jmp $LN5@stbi__conv
|
|
$LN56@stbi__conv:
|
|
|
|
; 1928 : 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
|
|
|
|
; 1929 : {
|
|
; 1930 : 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
|
|
|
|
; 1931 : 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
|
|
|
|
; 1932 : 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
|
|
|
|
; 1933 : }
|
|
|
|
009c1 e9 60 ff ff ff jmp $LN40@stbi__conv
|
|
$LN41@stbi__conv:
|
|
|
|
; 1934 : break;
|
|
|
|
009c6 eb 6c jmp SHORT $LN5@stbi__conv
|
|
$LN57@stbi__conv:
|
|
|
|
; 1935 : default:
|
|
; 1936 : 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 90 07 00
|
|
00 mov r8d, 1936 ; 00000790H
|
|
009d4 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 1937 : 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
|
|
|
|
; 1938 : 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
|
|
|
|
; 1939 : 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:
|
|
|
|
; 1940 : }
|
|
; 1941 : #undef STBI__CASE
|
|
; 1942 : }
|
|
|
|
00a34 e9 ae f6 ff ff jmp $LN2@stbi__conv
|
|
$LN3@stbi__conv:
|
|
|
|
; 1943 :
|
|
; 1944 : 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
|
|
|
|
; 1945 : return good;
|
|
|
|
00a47 48 8b 45 48 mov rax, QWORD PTR good$[rbp]
|
|
$LN1@stbi__conv:
|
|
|
|
; 1946 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__compute_y
|
|
_TEXT SEGMENT
|
|
r$ = 224
|
|
g$ = 232
|
|
b$ = 240
|
|
stbi__compute_y PROC ; COMDAT
|
|
|
|
; 1828 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00027 90 npad 1
|
|
|
|
; 1829 : 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
|
|
|
|
; 1830 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__get32le
|
|
_TEXT SEGMENT
|
|
z$ = 4
|
|
s$ = 256
|
|
stbi__get32le PROC ; COMDAT
|
|
|
|
; 1802 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1803 : 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
|
|
|
|
; 1804 : 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
|
|
|
|
; 1805 : return z;
|
|
|
|
00048 8b 45 04 mov eax, DWORD PTR z$[rbp]
|
|
|
|
; 1806 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__get16le
|
|
_TEXT SEGMENT
|
|
z$ = 4
|
|
s$ = 256
|
|
stbi__get16le PROC ; COMDAT
|
|
|
|
; 1794 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1795 : 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
|
|
|
|
; 1796 : 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
|
|
|
|
; 1797 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__get32be
|
|
_TEXT SEGMENT
|
|
z$ = 4
|
|
tv66 = 212
|
|
s$ = 256
|
|
stbi__get32be PROC ; COMDAT
|
|
|
|
; 1784 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1785 : 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
|
|
|
|
; 1786 : 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
|
|
|
|
; 1787 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__get16be
|
|
_TEXT SEGMENT
|
|
z$ = 4
|
|
tv67 = 212
|
|
s$ = 256
|
|
stbi__get16be PROC ; COMDAT
|
|
|
|
; 1774 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1775 : 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
|
|
|
|
; 1776 : 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
|
|
|
|
; 1777 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1746 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 1747 : 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
|
|
|
|
; 1748 : 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
|
|
|
|
; 1749 : 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
|
|
|
|
; 1750 : int res, count;
|
|
; 1751 :
|
|
; 1752 : 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
|
|
|
|
; 1753 :
|
|
; 1754 : 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
|
|
|
|
; 1755 : 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
|
|
|
|
; 1756 : 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
|
|
|
|
; 1757 : 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:
|
|
|
|
; 1758 : }
|
|
; 1759 : }
|
|
; 1760 :
|
|
; 1761 : 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
|
|
|
|
; 1762 : 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
|
|
|
|
; 1763 : 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
|
|
|
|
; 1764 : return 1;
|
|
|
|
0018a b8 01 00 00 00 mov eax, 1
|
|
0018f eb 04 jmp SHORT $LN1@stbi__getn
|
|
|
|
; 1765 : } else
|
|
|
|
00191 eb 02 jmp SHORT $LN5@stbi__getn
|
|
$LN4@stbi__getn:
|
|
|
|
; 1766 : return 0;
|
|
|
|
00193 33 c0 xor eax, eax
|
|
$LN5@stbi__getn:
|
|
$LN1@stbi__getn:
|
|
|
|
; 1767 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__skip
|
|
_TEXT SEGMENT
|
|
blen$1 = 4
|
|
s$ = 256
|
|
n$ = 264
|
|
stbi__skip PROC ; COMDAT
|
|
|
|
; 1723 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 1724 : 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
|
|
|
|
; 1725 : return; // already there!
|
|
|
|
0002d e9 cb 00 00 00 jmp $LN1@stbi__skip
|
|
$LN2@stbi__skip:
|
|
|
|
; 1726 : 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
|
|
|
|
; 1727 : 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
|
|
|
|
; 1728 : return;
|
|
|
|
00057 e9 a1 00 00 00 jmp $LN1@stbi__skip
|
|
$LN3@stbi__skip:
|
|
|
|
; 1729 : }
|
|
; 1730 : 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
|
|
|
|
; 1731 : 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
|
|
|
|
; 1732 : 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
|
|
|
|
; 1733 : 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
|
|
|
|
; 1734 : (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
|
|
|
|
; 1735 : return;
|
|
|
|
000d8 eb 23 jmp SHORT $LN1@stbi__skip
|
|
$LN5@stbi__skip:
|
|
$LN4@stbi__skip:
|
|
|
|
; 1736 : }
|
|
; 1737 : }
|
|
; 1738 : 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:
|
|
|
|
; 1739 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__at_eof
|
|
_TEXT SEGMENT
|
|
tv76 = 192
|
|
s$ = 240
|
|
stbi__at_eof PROC ; COMDAT
|
|
|
|
; 1703 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1704 : 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
|
|
|
|
; 1705 : 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
|
|
|
|
; 1706 : return 0;
|
|
|
|
00047 33 c0 xor eax, eax
|
|
00049 eb 4e jmp SHORT $LN1@stbi__at_e
|
|
$LN3@stbi__at_e:
|
|
|
|
; 1707 : // if feof() is true, check if buffer = end
|
|
; 1708 : // special case: we've only got the special 0 character at the end
|
|
; 1709 : 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
|
|
|
|
; 1710 : 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:
|
|
|
|
; 1711 : }
|
|
; 1712 :
|
|
; 1713 : 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:
|
|
|
|
; 1714 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__get8
|
|
_TEXT SEGMENT
|
|
tv72 = 192
|
|
tv81 = 192
|
|
s$ = 240
|
|
stbi__get8 PROC ; COMDAT
|
|
|
|
; 1689 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1690 : 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
|
|
|
|
; 1691 : 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:
|
|
|
|
; 1692 : 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
|
|
|
|
; 1693 : 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
|
|
|
|
; 1694 : 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:
|
|
|
|
; 1695 : }
|
|
; 1696 : return 0;
|
|
|
|
000d6 32 c0 xor al, al
|
|
$LN1@stbi__get8:
|
|
|
|
; 1697 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1526 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1527 : unsigned char *data;
|
|
; 1528 : #ifndef STBI_NO_HDR
|
|
; 1529 : 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
|
|
|
|
; 1530 : stbi__result_info ri;
|
|
; 1531 : 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
|
|
|
|
; 1532 : 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
|
|
|
|
; 1533 : 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:
|
|
|
|
; 1534 : 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:
|
|
|
|
; 1535 : }
|
|
; 1536 : #endif
|
|
; 1537 : 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
|
|
|
|
; 1538 : if (data)
|
|
|
|
00109 48 83 7d 08 00 cmp QWORD PTR data$[rbp], 0
|
|
0010e 74 4b je SHORT $LN4@stbi__load
|
|
|
|
; 1539 : 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:
|
|
|
|
; 1540 : 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:
|
|
|
|
; 1541 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__fopen
|
|
_TEXT SEGMENT
|
|
f$ = 8
|
|
__$ArrayPad$ = 216
|
|
filename$ = 256
|
|
mode$ = 264
|
|
stbi__fopen PROC ; COMDAT
|
|
|
|
; 1396 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0004e 90 npad 1
|
|
|
|
; 1397 : FILE *f;
|
|
; 1398 : #if defined(_WIN32) && defined(STBI_WINDOWS_UTF8)
|
|
; 1399 : wchar_t wMode[64];
|
|
; 1400 : wchar_t wFilename[1024];
|
|
; 1401 : if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename,
|
|
; 1402 : sizeof(wFilename) / sizeof(*wFilename)))
|
|
; 1403 : return 0;
|
|
; 1404 :
|
|
; 1405 : if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode,
|
|
; 1406 : sizeof(wMode) / sizeof(*wMode)))
|
|
; 1407 : return 0;
|
|
; 1408 :
|
|
; 1409 : #if defined(_MSC_VER) && _MSC_VER >= 1400
|
|
; 1410 : if (0 != _wfopen_s(&f, wFilename, wMode))
|
|
; 1411 : f = 0;
|
|
; 1412 : #else
|
|
; 1413 : f = _wfopen(wFilename, wMode);
|
|
; 1414 : #endif
|
|
; 1415 :
|
|
; 1416 : #elif defined(_MSC_VER) && _MSC_VER >= 1400
|
|
; 1417 : 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
|
|
|
|
; 1418 : f = 0;
|
|
|
|
0006b 48 c7 45 08 00
|
|
00 00 00 mov QWORD PTR f$[rbp], 0
|
|
$LN2@stbi__fope:
|
|
|
|
; 1419 : #else
|
|
; 1420 : f = fopen(filename, mode);
|
|
; 1421 : #endif
|
|
; 1422 : return f;
|
|
|
|
00073 48 8b 45 08 mov rax, QWORD PTR f$[rbp]
|
|
|
|
; 1423 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1367 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 1368 : 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
|
|
|
|
; 1369 : 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
|
|
|
|
; 1370 : 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:
|
|
|
|
; 1371 : }
|
|
; 1372 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1338 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1339 : stbi__result_info ri;
|
|
; 1340 : 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
|
|
|
|
; 1341 :
|
|
; 1342 : if (result == NULL)
|
|
|
|
00099 48 83 7d 38 00 cmp QWORD PTR result$[rbp], 0
|
|
0009e 75 07 jne SHORT $LN2@stbi__load
|
|
|
|
; 1343 : return NULL;
|
|
|
|
000a0 33 c0 xor eax, eax
|
|
000a2 e9 36 01 00 00 jmp $LN1@stbi__load
|
|
$LN2@stbi__load:
|
|
|
|
; 1344 :
|
|
; 1345 : // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
|
|
; 1346 : 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 42 05 00
|
|
00 mov r8d, 1346 ; 00000542H
|
|
000b9 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 1347 :
|
|
; 1348 : 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
|
|
|
|
; 1349 : 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
|
|
|
|
; 1350 : req_comp == 0 ? *comp : req_comp);
|
|
; 1351 : ri.bits_per_channel = 16;
|
|
|
|
00122 c7 45 08 10 00
|
|
00 00 mov DWORD PTR ri$[rbp], 16
|
|
$LN3@stbi__load:
|
|
|
|
; 1352 : }
|
|
; 1353 :
|
|
; 1354 : // @TODO: move stbi__convert_format16 to here
|
|
; 1355 : // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision
|
|
; 1356 :
|
|
; 1357 : 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
|
|
|
|
; 1358 : 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
|
|
|
|
; 1359 : 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:
|
|
|
|
; 1360 : }
|
|
; 1361 :
|
|
; 1362 : return (stbi__uint16 *)result;
|
|
|
|
001d9 48 8b 45 38 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi__load:
|
|
|
|
; 1363 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1310 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1311 : stbi__result_info ri;
|
|
; 1312 : 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
|
|
|
|
; 1313 :
|
|
; 1314 : if (result == NULL)
|
|
|
|
00099 48 83 7d 38 00 cmp QWORD PTR result$[rbp], 0
|
|
0009e 75 07 jne SHORT $LN2@stbi__load
|
|
|
|
; 1315 : return NULL;
|
|
|
|
000a0 33 c0 xor eax, eax
|
|
000a2 e9 30 01 00 00 jmp $LN1@stbi__load
|
|
$LN2@stbi__load:
|
|
|
|
; 1316 :
|
|
; 1317 : // it is the responsibility of the loaders to make sure we get either 8 or 16 bit.
|
|
; 1318 : 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 26 05 00
|
|
00 mov r8d, 1318 ; 00000526H
|
|
000b9 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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:
|
|
|
|
; 1319 :
|
|
; 1320 : 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
|
|
|
|
; 1321 : 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
|
|
|
|
; 1322 : req_comp == 0 ? *comp : req_comp);
|
|
; 1323 : ri.bits_per_channel = 8;
|
|
|
|
00122 c7 45 08 08 00
|
|
00 00 mov DWORD PTR ri$[rbp], 8
|
|
$LN3@stbi__load:
|
|
|
|
; 1324 : }
|
|
; 1325 :
|
|
; 1326 : // @TODO: move stbi__convert_format to here
|
|
; 1327 :
|
|
; 1328 : 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
|
|
|
|
; 1329 : 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
|
|
|
|
; 1330 : 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:
|
|
|
|
; 1331 : }
|
|
; 1332 :
|
|
; 1333 : return (unsigned char *)result;
|
|
|
|
001d3 48 8b 45 38 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi__load:
|
|
|
|
; 1334 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1296 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002d 90 npad 1
|
|
|
|
; 1297 : int slice;
|
|
; 1298 : 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
|
|
|
|
; 1299 :
|
|
; 1300 : 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
|
|
|
|
; 1301 : 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
|
|
|
|
; 1302 : 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
|
|
|
|
; 1303 : 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
|
|
|
|
; 1304 : }
|
|
|
|
0009c eb bb jmp SHORT $LN2@stbi__vert
|
|
$LN3@stbi__vert:
|
|
|
|
; 1305 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1271 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00057 90 npad 1
|
|
|
|
; 1272 : int row;
|
|
; 1273 : 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
|
|
|
|
; 1274 : stbi_uc temp[2048];
|
|
; 1275 : 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
|
|
|
|
; 1276 :
|
|
; 1277 : 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
|
|
|
|
; 1278 : 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
|
|
|
|
; 1279 : 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
|
|
|
|
; 1280 : // swap row0 with row1
|
|
; 1281 : 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:
|
|
|
|
; 1282 : 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
|
|
|
|
; 1283 : 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
|
|
|
|
; 1284 : 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
|
|
|
|
; 1285 : 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
|
|
|
|
; 1286 : 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
|
|
|
|
; 1287 : 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
|
|
|
|
; 1288 : 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
|
|
|
|
; 1289 : 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
|
|
|
|
; 1290 : }
|
|
|
|
001d0 e9 1b ff ff ff jmp $LN5@stbi__vert
|
|
$LN6@stbi__vert:
|
|
|
|
; 1291 : }
|
|
|
|
001d5 e9 ab fe ff ff jmp $LN2@stbi__vert
|
|
$LN3@stbi__vert:
|
|
|
|
; 1292 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1252 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002d 90 npad 1
|
|
|
|
; 1253 : int i;
|
|
; 1254 : 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
|
|
|
|
; 1255 : stbi__uint16 *enlarged;
|
|
; 1256 :
|
|
; 1257 : 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
|
|
|
|
; 1258 : if (enlarged == NULL)
|
|
|
|
00058 48 83 7d 48 00 cmp QWORD PTR enlarged$[rbp], 0
|
|
0005d 75 31 jne SHORT $LN5@stbi__conv
|
|
|
|
; 1259 : 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:
|
|
|
|
; 1260 :
|
|
; 1261 : 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
|
|
|
|
; 1262 : 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:
|
|
|
|
; 1263 : (stbi__uint16)((orig[i] << 8) +
|
|
; 1264 : orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff
|
|
; 1265 :
|
|
; 1266 : 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
|
|
|
|
; 1267 : return enlarged;
|
|
|
|
000e8 48 8b 45 48 mov rax, QWORD PTR enlarged$[rbp]
|
|
$LN1@stbi__conv:
|
|
|
|
; 1268 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1233 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002d 90 npad 1
|
|
|
|
; 1234 : int i;
|
|
; 1235 : 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
|
|
|
|
; 1236 : stbi_uc *reduced;
|
|
; 1237 :
|
|
; 1238 : 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
|
|
|
|
; 1239 : if (reduced == NULL)
|
|
|
|
00055 48 83 7d 48 00 cmp QWORD PTR reduced$[rbp], 0
|
|
0005a 75 31 jne SHORT $LN5@stbi__conv
|
|
|
|
; 1240 : 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:
|
|
|
|
; 1241 :
|
|
; 1242 : 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
|
|
|
|
; 1243 : 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:
|
|
|
|
; 1244 : (stbi_uc)((orig[i] >> 8) &
|
|
; 1245 : 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling
|
|
; 1246 :
|
|
; 1247 : 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
|
|
|
|
; 1248 : return reduced;
|
|
|
|
000d8 48 8b 45 48 mov rax, QWORD PTR reduced$[rbp]
|
|
$LN1@stbi__conv:
|
|
|
|
; 1249 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1172 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 1173 : memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields
|
|
|
|
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
|
|
|
|
; 1174 : 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
|
|
|
|
; 1175 : 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
|
|
|
|
; 1176 : STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order
|
|
; 1177 : 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
|
|
|
|
; 1178 :
|
|
; 1179 : // test the formats with a very explicit header first (at least a FOURCC
|
|
; 1180 : // or distinctive magic number first)
|
|
; 1181 : #ifndef STBI_NO_PNG
|
|
; 1182 : 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
|
|
|
|
; 1183 : 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:
|
|
|
|
; 1184 : #endif
|
|
; 1185 : #ifndef STBI_NO_BMP
|
|
; 1186 : 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
|
|
|
|
; 1187 : 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:
|
|
|
|
; 1188 : #endif
|
|
; 1189 : #ifndef STBI_NO_GIF
|
|
; 1190 : 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
|
|
|
|
; 1191 : 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:
|
|
|
|
; 1192 : #endif
|
|
; 1193 : #ifndef STBI_NO_PSD
|
|
; 1194 : 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
|
|
|
|
; 1195 : 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:
|
|
|
|
; 1196 : #else
|
|
; 1197 : STBI_NOTUSED(bpc);
|
|
; 1198 : #endif
|
|
; 1199 : #ifndef STBI_NO_PIC
|
|
; 1200 : 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
|
|
|
|
; 1201 : 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:
|
|
|
|
; 1202 : #endif
|
|
; 1203 :
|
|
; 1204 : // then the formats that can end up attempting to load with just 1 or 2
|
|
; 1205 : // bytes matching expectations; these are prone to false positives, so
|
|
; 1206 : // try them later
|
|
; 1207 : #ifndef STBI_NO_JPEG
|
|
; 1208 : 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
|
|
|
|
; 1209 : 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:
|
|
|
|
; 1210 : #endif
|
|
; 1211 : #ifndef STBI_NO_PNM
|
|
; 1212 : 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
|
|
|
|
; 1213 : 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:
|
|
|
|
; 1214 : #endif
|
|
; 1215 :
|
|
; 1216 : #ifndef STBI_NO_HDR
|
|
; 1217 : 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
|
|
|
|
; 1218 : 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
|
|
|
|
; 1219 : 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:
|
|
|
|
; 1220 : }
|
|
; 1221 : #endif
|
|
; 1222 :
|
|
; 1223 : #ifndef STBI_NO_TGA
|
|
; 1224 : // test tga last because it's a crappy test!
|
|
; 1225 : 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
|
|
|
|
; 1226 : 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:
|
|
|
|
; 1227 : #endif
|
|
; 1228 :
|
|
; 1229 : 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:
|
|
|
|
; 1230 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 2110 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002d 90 npad 1
|
|
|
|
; 2111 : int i, k, n;
|
|
; 2112 : stbi_uc *output;
|
|
; 2113 : 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_
|
|
|
|
; 2114 : return NULL;
|
|
|
|
00038 33 c0 xor eax, eax
|
|
0003a e9 3e 02 00 00 jmp $LN1@stbi__hdr_
|
|
$LN8@stbi__hdr_:
|
|
|
|
; 2115 : 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
|
|
|
|
; 2116 : if (output == NULL) {
|
|
|
|
0005e 48 83 7d 68 00 cmp QWORD PTR output$[rbp], 0
|
|
00063 75 42 jne SHORT $LN9@stbi__hdr_
|
|
|
|
; 2117 : 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
|
|
|
|
; 2118 : 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_:
|
|
|
|
; 2119 : }
|
|
; 2120 : // compute number of non-alpha components
|
|
; 2121 : 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_
|
|
|
|
; 2122 : 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_:
|
|
|
|
; 2123 : else
|
|
; 2124 : 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_:
|
|
|
|
; 2125 : 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_
|
|
|
|
; 2126 : 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_
|
|
|
|
; 2127 : 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
|
|
|
|
; 2128 : stbi__h2l_gamma_i) *
|
|
; 2129 : 255 +
|
|
; 2130 : 0.5f;
|
|
; 2131 : 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_
|
|
|
|
; 2132 : 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_:
|
|
|
|
; 2133 : 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_
|
|
|
|
; 2134 : 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_:
|
|
|
|
; 2135 : 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
|
|
|
|
; 2136 : }
|
|
|
|
001c8 e9 2d ff ff ff jmp $LN5@stbi__hdr_
|
|
$LN6@stbi__hdr_:
|
|
|
|
; 2137 : 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_
|
|
|
|
; 2138 : 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
|
|
|
|
; 2139 : 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_
|
|
|
|
; 2140 : 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_:
|
|
|
|
; 2141 : 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_
|
|
|
|
; 2142 : 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_:
|
|
|
|
; 2143 : 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_:
|
|
|
|
; 2144 : }
|
|
; 2145 : }
|
|
|
|
00266 e9 68 fe ff ff jmp $LN2@stbi__hdr_
|
|
$LN3@stbi__hdr_:
|
|
|
|
; 2146 : 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
|
|
|
|
; 2147 : return output;
|
|
|
|
00279 48 8b 45 68 mov rax, QWORD PTR output$[rbp]
|
|
$LN1@stbi__hdr_:
|
|
|
|
; 2148 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 2075 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002d 90 npad 1
|
|
|
|
; 2076 : int i, k, n;
|
|
; 2077 : float *output;
|
|
; 2078 : 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_
|
|
|
|
; 2079 : return NULL;
|
|
|
|
00038 33 c0 xor eax, eax
|
|
0003a e9 d2 01 00 00 jmp $LN1@stbi__ldr_
|
|
$LN11@stbi__ldr_:
|
|
|
|
; 2080 : 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
|
|
|
|
; 2081 : if (output == NULL) {
|
|
|
|
00069 48 83 7d 68 00 cmp QWORD PTR output$[rbp], 0
|
|
0006e 75 42 jne SHORT $LN12@stbi__ldr_
|
|
|
|
; 2082 : 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
|
|
|
|
; 2083 : 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_:
|
|
|
|
; 2084 : }
|
|
; 2085 : // compute number of non-alpha components
|
|
; 2086 : 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_
|
|
|
|
; 2087 : 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_:
|
|
|
|
; 2088 : else
|
|
; 2089 : 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_:
|
|
|
|
; 2090 : 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_
|
|
|
|
; 2091 : 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_
|
|
|
|
; 2092 : 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
|
|
|
|
; 2093 : (float)(pow(data[i * comp + k] / 255.0f, stbi__l2h_gamma) *
|
|
; 2094 : stbi__l2h_scale);
|
|
; 2095 : }
|
|
|
|
00187 e9 79 ff ff ff jmp $LN5@stbi__ldr_
|
|
$LN6@stbi__ldr_:
|
|
|
|
; 2096 : }
|
|
|
|
0018c e9 4d ff ff ff jmp $LN2@stbi__ldr_
|
|
$LN3@stbi__ldr_:
|
|
|
|
; 2097 : 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_
|
|
|
|
; 2098 : 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_
|
|
|
|
; 2099 : 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
|
|
|
|
; 2100 : }
|
|
|
|
001fd eb a6 jmp SHORT $LN8@stbi__ldr_
|
|
$LN9@stbi__ldr_:
|
|
$LN15@stbi__ldr_:
|
|
|
|
; 2101 : }
|
|
; 2102 : 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
|
|
|
|
; 2103 : return output;
|
|
|
|
0020d 48 8b 45 68 mov rax, QWORD PTR output$[rbp]
|
|
$LN1@stbi__ldr_:
|
|
|
|
; 2104 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__mul2shorts_valid
|
|
_TEXT SEGMENT
|
|
tv69 = 192
|
|
tv73 = 192
|
|
tv77 = 192
|
|
tv80 = 192
|
|
tv68 = 196
|
|
a$ = 240
|
|
b$ = 248
|
|
stbi__mul2shorts_valid PROC ; COMDAT
|
|
|
|
; 1109 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00022 90 npad 1
|
|
|
|
; 1110 : if (b == 0 || b == -1)
|
|
|
|
00023 83 bd f8 00 00
|
|
00 00 cmp DWORD PTR b$[rbp], 0
|
|
0002a 74 09 je SHORT $LN3@stbi__mul2
|
|
0002c 83 bd f8 00 00
|
|
00 ff cmp DWORD PTR b$[rbp], -1
|
|
00033 75 0a jne SHORT $LN2@stbi__mul2
|
|
$LN3@stbi__mul2:
|
|
|
|
; 1111 : return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow
|
|
|
|
00035 b8 01 00 00 00 mov eax, 1
|
|
0003a e9 e9 00 00 00 jmp $LN1@stbi__mul2
|
|
$LN2@stbi__mul2:
|
|
|
|
; 1112 : if ((a >= 0) == (b >= 0))
|
|
|
|
0003f 83 bd f0 00 00
|
|
00 00 cmp DWORD PTR a$[rbp], 0
|
|
00046 7c 0c jl SHORT $LN9@stbi__mul2
|
|
00048 c7 85 c0 00 00
|
|
00 01 00 00 00 mov DWORD PTR tv69[rbp], 1
|
|
00052 eb 0a jmp SHORT $LN10@stbi__mul2
|
|
$LN9@stbi__mul2:
|
|
00054 c7 85 c0 00 00
|
|
00 00 00 00 00 mov DWORD PTR tv69[rbp], 0
|
|
$LN10@stbi__mul2:
|
|
0005e 83 bd f8 00 00
|
|
00 00 cmp DWORD PTR b$[rbp], 0
|
|
00065 7c 0c jl SHORT $LN7@stbi__mul2
|
|
00067 c7 85 c4 00 00
|
|
00 01 00 00 00 mov DWORD PTR tv68[rbp], 1
|
|
00071 eb 0a jmp SHORT $LN8@stbi__mul2
|
|
$LN7@stbi__mul2:
|
|
00073 c7 85 c4 00 00
|
|
00 00 00 00 00 mov DWORD PTR tv68[rbp], 0
|
|
$LN8@stbi__mul2:
|
|
0007d 8b 85 c4 00 00
|
|
00 mov eax, DWORD PTR tv68[rbp]
|
|
00083 39 85 c0 00 00
|
|
00 cmp DWORD PTR tv69[rbp], eax
|
|
00089 75 32 jne SHORT $LN4@stbi__mul2
|
|
|
|
; 1113 : return a <= SHRT_MAX / b; // product is positive, so similar to mul2sizes_valid
|
|
|
|
0008b b8 ff 7f 00 00 mov eax, 32767 ; 00007fffH
|
|
00090 99 cdq
|
|
00091 f7 bd f8 00 00
|
|
00 idiv DWORD PTR b$[rbp]
|
|
00097 39 85 f0 00 00
|
|
00 cmp DWORD PTR a$[rbp], eax
|
|
0009d 7f 0c jg SHORT $LN11@stbi__mul2
|
|
0009f c7 85 c0 00 00
|
|
00 01 00 00 00 mov DWORD PTR tv73[rbp], 1
|
|
000a9 eb 0a jmp SHORT $LN12@stbi__mul2
|
|
$LN11@stbi__mul2:
|
|
000ab c7 85 c0 00 00
|
|
00 00 00 00 00 mov DWORD PTR tv73[rbp], 0
|
|
$LN12@stbi__mul2:
|
|
000b5 8b 85 c0 00 00
|
|
00 mov eax, DWORD PTR tv73[rbp]
|
|
000bb eb 6b jmp SHORT $LN1@stbi__mul2
|
|
$LN4@stbi__mul2:
|
|
|
|
; 1114 : if (b < 0)
|
|
|
|
000bd 83 bd f8 00 00
|
|
00 00 cmp DWORD PTR b$[rbp], 0
|
|
000c4 7d 32 jge SHORT $LN5@stbi__mul2
|
|
|
|
; 1115 : return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN
|
|
|
|
000c6 b8 00 80 ff ff mov eax, -32768 ; ffffffffffff8000H
|
|
000cb 99 cdq
|
|
000cc f7 bd f8 00 00
|
|
00 idiv DWORD PTR b$[rbp]
|
|
000d2 39 85 f0 00 00
|
|
00 cmp DWORD PTR a$[rbp], eax
|
|
000d8 7f 0c jg SHORT $LN13@stbi__mul2
|
|
000da c7 85 c0 00 00
|
|
00 01 00 00 00 mov DWORD PTR tv77[rbp], 1
|
|
000e4 eb 0a jmp SHORT $LN14@stbi__mul2
|
|
$LN13@stbi__mul2:
|
|
000e6 c7 85 c0 00 00
|
|
00 00 00 00 00 mov DWORD PTR tv77[rbp], 0
|
|
$LN14@stbi__mul2:
|
|
000f0 8b 85 c0 00 00
|
|
00 mov eax, DWORD PTR tv77[rbp]
|
|
000f6 eb 30 jmp SHORT $LN1@stbi__mul2
|
|
$LN5@stbi__mul2:
|
|
|
|
; 1116 : return a >= SHRT_MIN / b;
|
|
|
|
000f8 b8 00 80 ff ff mov eax, -32768 ; ffffffffffff8000H
|
|
000fd 99 cdq
|
|
000fe f7 bd f8 00 00
|
|
00 idiv DWORD PTR b$[rbp]
|
|
00104 39 85 f0 00 00
|
|
00 cmp DWORD PTR a$[rbp], eax
|
|
0010a 7c 0c jl SHORT $LN15@stbi__mul2
|
|
0010c c7 85 c0 00 00
|
|
00 01 00 00 00 mov DWORD PTR tv80[rbp], 1
|
|
00116 eb 0a jmp SHORT $LN16@stbi__mul2
|
|
$LN15@stbi__mul2:
|
|
00118 c7 85 c0 00 00
|
|
00 00 00 00 00 mov DWORD PTR tv80[rbp], 0
|
|
$LN16@stbi__mul2:
|
|
00122 8b 85 c0 00 00
|
|
00 mov eax, DWORD PTR tv80[rbp]
|
|
$LN1@stbi__mul2:
|
|
|
|
; 1117 : }
|
|
|
|
00128 48 8d a5 d8 00
|
|
00 00 lea rsp, QWORD PTR [rbp+216]
|
|
0012f 5f pop rdi
|
|
00130 5d pop rbp
|
|
00131 c3 ret 0
|
|
stbi__mul2shorts_valid ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
; File D:\platform-dev\StgSharp.Native\lib\stbi\stb_image.h
|
|
; COMDAT stbi__addints_valid
|
|
_TEXT SEGMENT
|
|
tv67 = 192
|
|
tv73 = 192
|
|
tv76 = 192
|
|
tv66 = 196
|
|
a$ = 240
|
|
b$ = 248
|
|
stbi__addints_valid PROC ; COMDAT
|
|
|
|
; 1097 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00022 90 npad 1
|
|
|
|
; 1098 : 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
|
|
|
|
; 1099 : 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:
|
|
|
|
; 1100 : 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
|
|
|
|
; 1101 : 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:
|
|
|
|
; 1102 : INT_MIN -
|
|
; 1103 : b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0.
|
|
; 1104 : 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:
|
|
|
|
; 1105 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__malloc_mad4
|
|
_TEXT SEGMENT
|
|
a$ = 224
|
|
b$ = 232
|
|
c$ = 240
|
|
d$ = 248
|
|
add$ = 256
|
|
stbi__malloc_mad4 PROC ; COMDAT
|
|
|
|
; 1088 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002c 90 npad 1
|
|
|
|
; 1089 : 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
|
|
|
|
; 1090 : return NULL;
|
|
|
|
0005a 33 c0 xor eax, eax
|
|
0005c eb 2b jmp SHORT $LN1@stbi__mall
|
|
$LN2@stbi__mall:
|
|
|
|
; 1091 : 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:
|
|
|
|
; 1092 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__malloc_mad3
|
|
_TEXT SEGMENT
|
|
a$ = 224
|
|
b$ = 232
|
|
c$ = 240
|
|
add$ = 248
|
|
stbi__malloc_mad3 PROC ; COMDAT
|
|
|
|
; 1080 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002c 90 npad 1
|
|
|
|
; 1081 : 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
|
|
|
|
; 1082 : return NULL;
|
|
|
|
00050 33 c0 xor eax, eax
|
|
00052 eb 24 jmp SHORT $LN1@stbi__mall
|
|
$LN2@stbi__mall:
|
|
|
|
; 1083 : 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:
|
|
|
|
; 1084 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__malloc_mad2
|
|
_TEXT SEGMENT
|
|
a$ = 224
|
|
b$ = 232
|
|
add$ = 240
|
|
stbi__malloc_mad2 PROC ; COMDAT
|
|
|
|
; 1072 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00027 90 npad 1
|
|
|
|
; 1073 : 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
|
|
|
|
; 1074 : return NULL;
|
|
|
|
00044 33 c0 xor eax, eax
|
|
00046 eb 1d jmp SHORT $LN1@stbi__mall
|
|
$LN2@stbi__mall:
|
|
|
|
; 1075 : 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:
|
|
|
|
; 1076 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__mad4sizes_valid
|
|
_TEXT SEGMENT
|
|
tv86 = 192
|
|
a$ = 240
|
|
b$ = 248
|
|
c$ = 256
|
|
d$ = 264
|
|
add$ = 272
|
|
stbi__mad4sizes_valid PROC ; COMDAT
|
|
|
|
; 1062 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002c 90 npad 1
|
|
|
|
; 1063 : 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]
|
|
|
|
; 1064 : stbi__mul2sizes_valid(a * b * c, d) && stbi__addsizes_valid(a * b * c * d, add);
|
|
; 1065 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__mad3sizes_valid
|
|
_TEXT SEGMENT
|
|
tv79 = 192
|
|
a$ = 240
|
|
b$ = 248
|
|
c$ = 256
|
|
add$ = 264
|
|
stbi__mad3sizes_valid PROC ; COMDAT
|
|
|
|
; 1054 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00027 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002c 90 npad 1
|
|
|
|
; 1055 : 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]
|
|
|
|
; 1056 : stbi__addsizes_valid(a * b * c, add);
|
|
; 1057 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__mad2sizes_valid
|
|
_TEXT SEGMENT
|
|
tv73 = 192
|
|
a$ = 240
|
|
b$ = 248
|
|
add$ = 256
|
|
stbi__mad2sizes_valid PROC ; COMDAT
|
|
|
|
; 1047 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00022 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00027 90 npad 1
|
|
|
|
; 1048 : 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]
|
|
|
|
; 1049 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__mul2sizes_valid
|
|
_TEXT SEGMENT
|
|
tv69 = 192
|
|
a$ = 240
|
|
b$ = 248
|
|
stbi__mul2sizes_valid PROC ; COMDAT
|
|
|
|
; 1034 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00022 90 npad 1
|
|
|
|
; 1035 : 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:
|
|
|
|
; 1036 : return 0;
|
|
|
|
00035 33 c0 xor eax, eax
|
|
00037 eb 40 jmp SHORT $LN1@stbi__mul2
|
|
$LN2@stbi__mul2:
|
|
|
|
; 1037 : 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
|
|
|
|
; 1038 : 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:
|
|
|
|
; 1039 : // portable way to check for no overflows in a*b
|
|
; 1040 : 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:
|
|
|
|
; 1041 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__addsizes_valid
|
|
_TEXT SEGMENT
|
|
tv67 = 192
|
|
a$ = 240
|
|
b$ = 248
|
|
stbi__addsizes_valid PROC ; COMDAT
|
|
|
|
; 1021 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001d e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00022 90 npad 1
|
|
|
|
; 1022 : 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
|
|
|
|
; 1023 : return 0;
|
|
|
|
0002c 33 c0 xor eax, eax
|
|
0002e eb 2f jmp SHORT $LN1@stbi__adds
|
|
$LN2@stbi__adds:
|
|
|
|
; 1024 : // now 0 <= b <= INT_MAX, hence also
|
|
; 1025 : // 0 <= INT_MAX - b <= INTMAX.
|
|
; 1026 : // And "a + b <= INT_MAX" (which might overflow) is the
|
|
; 1027 : // same as a <= INT_MAX - b (no overflow)
|
|
; 1028 : 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:
|
|
|
|
; 1029 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__malloc
|
|
_TEXT SEGMENT
|
|
size$ = 224
|
|
stbi__malloc PROC ; COMDAT
|
|
|
|
; 1004 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1005 : 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
|
|
|
|
; 1006 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__err
|
|
_TEXT SEGMENT
|
|
str$ = 224
|
|
stbi__err PROC ; COMDAT
|
|
|
|
; 997 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 998 : 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
|
|
|
|
; 999 : return 0;
|
|
|
|
00045 33 c0 xor eax, eax
|
|
|
|
; 1000 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pnm_is16
|
|
_TEXT SEGMENT
|
|
s$ = 224
|
|
stbi__pnm_is16 PROC ; COMDAT
|
|
|
|
; 8552 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 8553 : 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_
|
|
|
|
; 8554 : return 1;
|
|
|
|
00039 b8 01 00 00 00 mov eax, 1
|
|
0003e eb 02 jmp SHORT $LN1@stbi__pnm_
|
|
$LN2@stbi__pnm_:
|
|
|
|
; 8555 : return 0;
|
|
|
|
00040 33 c0 xor eax, eax
|
|
$LN1@stbi__pnm_:
|
|
|
|
; 8556 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8505 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 8506 : int maxv, dummy;
|
|
; 8507 : char c, p, t;
|
|
; 8508 :
|
|
; 8509 : 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_
|
|
|
|
; 8510 : 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_:
|
|
|
|
; 8511 : 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_
|
|
|
|
; 8512 : 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_:
|
|
|
|
; 8513 : 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_
|
|
|
|
; 8514 : 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_:
|
|
|
|
; 8515 :
|
|
; 8516 : 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
|
|
|
|
; 8517 :
|
|
; 8518 : // Get identifier
|
|
; 8519 : 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
|
|
|
|
; 8520 : 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
|
|
|
|
; 8521 : 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_:
|
|
|
|
; 8522 : 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
|
|
|
|
; 8523 : return 0;
|
|
|
|
000f4 33 c0 xor eax, eax
|
|
000f6 e9 1f 01 00 00 jmp $LN1@stbi__pnm_
|
|
$LN5@stbi__pnm_:
|
|
|
|
; 8524 : }
|
|
; 8525 :
|
|
; 8526 : *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
|
|
|
|
; 8527 :
|
|
; 8528 : 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
|
|
|
|
; 8529 : 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
|
|
|
|
; 8530 :
|
|
; 8531 : *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
|
|
|
|
; 8532 : 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_
|
|
|
|
; 8533 : 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_:
|
|
|
|
; 8534 : 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
|
|
|
|
; 8535 :
|
|
; 8536 : *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
|
|
|
|
; 8537 : 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_
|
|
|
|
; 8538 : 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_:
|
|
|
|
; 8539 : 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
|
|
|
|
; 8540 :
|
|
; 8541 : 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
|
|
|
|
; 8542 : 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_
|
|
|
|
; 8543 : 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_:
|
|
|
|
; 8544 : "PPM image supports only 8-bit and 16-bit images");
|
|
; 8545 : 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_
|
|
|
|
; 8546 : 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_:
|
|
|
|
; 8547 : else
|
|
; 8548 : return 8;
|
|
|
|
00215 b8 08 00 00 00 mov eax, 8
|
|
$LN12@stbi__pnm_:
|
|
$LN10@stbi__pnm_:
|
|
$LN1@stbi__pnm_:
|
|
|
|
; 8549 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8420 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 8421 : stbi_uc *out;
|
|
; 8422 : STBI_NOTUSED(ri);
|
|
; 8423 :
|
|
; 8424 : 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
|
|
|
|
; 8425 : stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n);
|
|
; 8426 : 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_
|
|
|
|
; 8427 : return 0;
|
|
|
|
00073 33 c0 xor eax, eax
|
|
00075 e9 06 03 00 00 jmp $LN1@stbi__pnm_
|
|
$LN2@stbi__pnm_:
|
|
|
|
; 8428 :
|
|
; 8429 : 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_
|
|
|
|
; 8430 : 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_:
|
|
|
|
; 8431 : 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_
|
|
|
|
; 8432 : 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_:
|
|
|
|
; 8433 :
|
|
; 8434 : *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
|
|
|
|
; 8435 : *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
|
|
|
|
; 8436 : 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_
|
|
|
|
; 8437 : *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_:
|
|
|
|
; 8438 :
|
|
; 8439 : 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_
|
|
|
|
; 8440 : 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_:
|
|
|
|
; 8441 :
|
|
; 8442 : 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
|
|
|
|
; 8443 : 0);
|
|
; 8444 : if (!out)
|
|
|
|
001ff 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0
|
|
00204 75 34 jne SHORT $LN7@stbi__pnm_
|
|
|
|
; 8445 : 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_:
|
|
|
|
; 8446 : 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_
|
|
|
|
; 8447 : 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
|
|
|
|
; 8448 : 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_:
|
|
|
|
; 8449 : }
|
|
; 8450 :
|
|
; 8451 : 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_
|
|
|
|
; 8452 : 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_
|
|
|
|
; 8453 : 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
|
|
|
|
; 8454 : req_comp, s->img_x, s->img_y);
|
|
; 8455 : } else {
|
|
|
|
00337 eb 36 jmp SHORT $LN11@stbi__pnm_
|
|
$LN10@stbi__pnm_:
|
|
|
|
; 8456 : 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_:
|
|
|
|
; 8457 : }
|
|
; 8458 : if (out == NULL)
|
|
|
|
0036f 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0
|
|
00374 75 06 jne SHORT $LN12@stbi__pnm_
|
|
|
|
; 8459 : 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_:
|
|
|
|
; 8460 : }
|
|
; 8461 : return out;
|
|
|
|
0037c 48 8b 45 08 mov rax, QWORD PTR out$[rbp]
|
|
$LN1@stbi__pnm_:
|
|
|
|
; 8462 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pnm_test
|
|
_TEXT SEGMENT
|
|
p$ = 4
|
|
t$ = 36
|
|
s$ = 288
|
|
stbi__pnm_test PROC ; COMDAT
|
|
|
|
; 8407 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 8408 : char p, t;
|
|
; 8409 : 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
|
|
|
|
; 8410 : 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
|
|
|
|
; 8411 : 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_:
|
|
|
|
; 8412 : 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
|
|
|
|
; 8413 : return 0;
|
|
|
|
00066 33 c0 xor eax, eax
|
|
00068 eb 05 jmp SHORT $LN1@stbi__pnm_
|
|
$LN2@stbi__pnm_:
|
|
|
|
; 8414 : }
|
|
; 8415 : return 1;
|
|
|
|
0006a b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__pnm_:
|
|
|
|
; 8416 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__gif_info
|
|
_TEXT SEGMENT
|
|
s$ = 224
|
|
x$ = 232
|
|
y$ = 240
|
|
comp$ = 248
|
|
stbi__gif_info PROC ; COMDAT
|
|
|
|
; 7942 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 7943 : 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
|
|
|
|
; 7944 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 7819 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00059 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0005e 90 npad 1
|
|
|
|
; 7820 : 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
|
|
|
|
; 7821 : int layers = 0;
|
|
|
|
00073 c7 45 04 00 00
|
|
00 00 mov DWORD PTR layers$4[rbp], 0
|
|
|
|
; 7822 : stbi_uc *u = 0;
|
|
|
|
0007a 48 c7 45 28 00
|
|
00 00 00 mov QWORD PTR u$5[rbp], 0
|
|
|
|
; 7823 : stbi_uc *out = 0;
|
|
|
|
00082 48 c7 45 48 00
|
|
00 00 00 mov QWORD PTR out$6[rbp], 0
|
|
|
|
; 7824 : stbi_uc *two_back = 0;
|
|
|
|
0008a 48 c7 45 68 00
|
|
00 00 00 mov QWORD PTR two_back$7[rbp], 0
|
|
|
|
; 7825 : stbi__gif g;
|
|
; 7826 : int stride;
|
|
; 7827 : int out_size = 0;
|
|
|
|
00092 c7 85 34 89 00
|
|
00 00 00 00 00 mov DWORD PTR out_size$10[rbp], 0
|
|
|
|
; 7828 : int delays_size = 0;
|
|
|
|
0009c c7 85 54 89 00
|
|
00 00 00 00 00 mov DWORD PTR delays_size$11[rbp], 0
|
|
|
|
; 7829 :
|
|
; 7830 : STBI_NOTUSED(out_size);
|
|
; 7831 : STBI_NOTUSED(delays_size);
|
|
; 7832 :
|
|
; 7833 : 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
|
|
|
|
; 7834 : 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
|
|
|
|
; 7835 : *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:
|
|
|
|
; 7836 : }
|
|
; 7837 :
|
|
; 7838 : do {
|
|
; 7839 : 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
|
|
|
|
; 7840 : 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
|
|
|
|
; 7841 : 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:
|
|
|
|
; 7842 :
|
|
; 7843 : 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
|
|
|
|
; 7844 : *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
|
|
|
|
; 7845 : *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
|
|
|
|
; 7846 : ++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
|
|
|
|
; 7847 : 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
|
|
|
|
; 7848 :
|
|
; 7849 : 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
|
|
|
|
; 7850 : 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
|
|
|
|
; 7851 : layers * stride);
|
|
; 7852 : 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
|
|
|
|
; 7853 : 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:
|
|
|
|
; 7854 : delays);
|
|
; 7855 : else {
|
|
; 7856 : 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
|
|
|
|
; 7857 : 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:
|
|
|
|
; 7858 : }
|
|
; 7859 :
|
|
; 7860 : 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
|
|
|
|
; 7861 : 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
|
|
|
|
; 7862 : *delays, delays_size, sizeof(int) * layers);
|
|
; 7863 : 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
|
|
|
|
; 7864 : 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:
|
|
|
|
; 7865 : delays);
|
|
; 7866 : *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
|
|
|
|
; 7867 : 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:
|
|
|
|
; 7868 : }
|
|
; 7869 : } else {
|
|
|
|
00268 e9 a6 00 00 00 jmp $LN11@stbi__load
|
|
$LN10@stbi__load:
|
|
|
|
; 7870 : 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
|
|
|
|
; 7871 : if (!out)
|
|
|
|
00285 48 83 7d 48 00 cmp QWORD PTR out$6[rbp], 0
|
|
0028a 75 1c jne SHORT $LN16@stbi__load
|
|
|
|
; 7872 : 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:
|
|
|
|
; 7873 : delays);
|
|
; 7874 : 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
|
|
|
|
; 7875 : 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
|
|
|
|
; 7876 : *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
|
|
|
|
; 7877 : 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
|
|
|
|
; 7878 : 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:
|
|
|
|
; 7879 : delays);
|
|
; 7880 : 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:
|
|
|
|
; 7881 : }
|
|
; 7882 : }
|
|
; 7883 : 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
|
|
|
|
; 7884 : if (layers >= 2) {
|
|
|
|
00340 83 7d 04 02 cmp DWORD PTR layers$4[rbp], 2
|
|
00344 7c 18 jl SHORT $LN19@stbi__load
|
|
|
|
; 7885 : 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:
|
|
|
|
; 7886 : }
|
|
; 7887 :
|
|
; 7888 : 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
|
|
|
|
; 7889 : (*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:
|
|
|
|
; 7890 : }
|
|
; 7891 : }
|
|
; 7892 : } 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
|
|
|
|
; 7893 :
|
|
; 7894 : // free temp buffer;
|
|
; 7895 : 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
|
|
|
|
; 7896 : 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
|
|
|
|
; 7897 : 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
|
|
|
|
; 7898 :
|
|
; 7899 : // do the final conversion after loading everything;
|
|
; 7900 : 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
|
|
|
|
; 7901 : 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:
|
|
|
|
; 7902 :
|
|
; 7903 : *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
|
|
|
|
; 7904 : return out;
|
|
|
|
00405 48 8b 45 48 mov rax, QWORD PTR out$6[rbp]
|
|
00409 eb 31 jmp SHORT $LN1@stbi__load
|
|
|
|
; 7905 : } else {
|
|
|
|
0040b eb 2f jmp SHORT $LN6@stbi__load
|
|
$LN5@stbi__load:
|
|
|
|
; 7906 : 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:
|
|
|
|
; 7907 : }
|
|
; 7908 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 7912 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00059 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0005e 90 npad 1
|
|
|
|
; 7913 : stbi_uc *u = 0;
|
|
|
|
0005f 48 c7 45 08 00
|
|
00 00 00 mov QWORD PTR u$[rbp], 0
|
|
|
|
; 7914 : stbi__gif g;
|
|
; 7915 : 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
|
|
|
|
; 7916 : STBI_NOTUSED(ri);
|
|
; 7917 :
|
|
; 7918 : 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
|
|
|
|
; 7919 : 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_
|
|
|
|
; 7920 : 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_:
|
|
|
|
; 7921 : if (u) {
|
|
|
|
000b9 48 83 7d 08 00 cmp QWORD PTR u$[rbp], 0
|
|
000be 74 50 je SHORT $LN3@stbi__gif_
|
|
|
|
; 7922 : *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
|
|
|
|
; 7923 : *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
|
|
|
|
; 7924 :
|
|
; 7925 : // moved conversion to after successful load so that the same
|
|
; 7926 : // can be done for multiple frames.
|
|
; 7927 : 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_
|
|
|
|
; 7928 : 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_:
|
|
|
|
; 7929 : } 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_
|
|
|
|
; 7930 : // if there was an error and we allocated an image buffer, free it!
|
|
; 7931 : 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_:
|
|
|
|
; 7932 : }
|
|
; 7933 :
|
|
; 7934 : // free buffers needed for multiple frame loading;
|
|
; 7935 : 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
|
|
|
|
; 7936 : 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
|
|
|
|
; 7937 :
|
|
; 7938 : return u;
|
|
|
|
00138 48 8b 45 08 mov rax, QWORD PTR u$[rbp]
|
|
|
|
; 7939 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__gif_test
|
|
_TEXT SEGMENT
|
|
r$ = 4
|
|
s$ = 256
|
|
stbi__gif_test PROC ; COMDAT
|
|
|
|
; 7417 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 7418 : 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
|
|
|
|
; 7419 : 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
|
|
|
|
; 7420 : return r;
|
|
|
|
0003c 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
|
|
; 7421 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8333 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 8334 : 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
|
|
|
|
; 8335 : stbi__pic_packet packets[10];
|
|
; 8336 :
|
|
; 8337 : 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_
|
|
|
|
; 8338 : 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_:
|
|
|
|
; 8339 : 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_
|
|
|
|
; 8340 : 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_:
|
|
|
|
; 8341 : 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_
|
|
|
|
; 8342 : 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_:
|
|
|
|
; 8343 :
|
|
; 8344 : 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_
|
|
|
|
; 8345 : 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
|
|
|
|
; 8346 : return 0;
|
|
|
|
000ca 33 c0 xor eax, eax
|
|
000cc e9 c3 01 00 00 jmp $LN1@stbi__pic_
|
|
$LN8@stbi__pic_:
|
|
|
|
; 8347 : }
|
|
; 8348 :
|
|
; 8349 : 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
|
|
|
|
; 8350 :
|
|
; 8351 : *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
|
|
|
|
; 8352 : *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
|
|
|
|
; 8353 : 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_
|
|
|
|
; 8354 : 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
|
|
|
|
; 8355 : return 0;
|
|
|
|
0012a 33 c0 xor eax, eax
|
|
0012c e9 63 01 00 00 jmp $LN1@stbi__pic_
|
|
$LN9@stbi__pic_:
|
|
|
|
; 8356 : }
|
|
; 8357 : 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_
|
|
|
|
; 8358 : 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
|
|
|
|
; 8359 : return 0;
|
|
|
|
00164 33 c0 xor eax, eax
|
|
00166 e9 29 01 00 00 jmp $LN1@stbi__pic_
|
|
$LN10@stbi__pic_:
|
|
|
|
; 8360 : }
|
|
; 8361 :
|
|
; 8362 : 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_:
|
|
|
|
; 8363 :
|
|
; 8364 : do {
|
|
; 8365 : stbi__pic_packet *packet;
|
|
; 8366 :
|
|
; 8367 : 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_
|
|
|
|
; 8368 : return 0;
|
|
|
|
00187 33 c0 xor eax, eax
|
|
00189 e9 06 01 00 00 jmp $LN1@stbi__pic_
|
|
$LN11@stbi__pic_:
|
|
|
|
; 8369 :
|
|
; 8370 : 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
|
|
|
|
; 8371 : 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
|
|
|
|
; 8372 : 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
|
|
|
|
; 8373 : 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
|
|
|
|
; 8374 : 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
|
|
|
|
; 8375 : 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
|
|
|
|
; 8376 :
|
|
; 8377 : 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_
|
|
|
|
; 8378 : 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
|
|
|
|
; 8379 : return 0;
|
|
|
|
00232 33 c0 xor eax, eax
|
|
00234 eb 5e jmp SHORT $LN1@stbi__pic_
|
|
$LN12@stbi__pic_:
|
|
|
|
; 8380 : }
|
|
; 8381 : 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_
|
|
|
|
; 8382 : 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
|
|
|
|
; 8383 : return 0;
|
|
|
|
00252 33 c0 xor eax, eax
|
|
00254 eb 3e jmp SHORT $LN1@stbi__pic_
|
|
$LN13@stbi__pic_:
|
|
|
|
; 8384 : }
|
|
; 8385 : } while (chained);
|
|
|
|
00256 83 7d 44 00 cmp DWORD PTR chained$[rbp], 0
|
|
0025a 0f 85 1d ff ff
|
|
ff jne $LN4@stbi__pic_
|
|
|
|
; 8386 :
|
|
; 8387 : *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
|
|
|
|
; 8388 :
|
|
; 8389 : return 1;
|
|
|
|
0028f b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__pic_:
|
|
|
|
; 8390 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 7318 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 7319 : stbi_uc *result;
|
|
; 7320 : int i, x, y, internal_comp;
|
|
; 7321 : STBI_NOTUSED(ri);
|
|
; 7322 :
|
|
; 7323 : 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_
|
|
|
|
; 7324 : 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_:
|
|
|
|
; 7325 :
|
|
; 7326 : 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_
|
|
|
|
; 7327 : 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_:
|
|
|
|
; 7328 :
|
|
; 7329 : 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
|
|
|
|
; 7330 : 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
|
|
|
|
; 7331 :
|
|
; 7332 : 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_
|
|
|
|
; 7333 : 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_:
|
|
|
|
; 7334 : 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_
|
|
|
|
; 7335 : 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_:
|
|
|
|
; 7336 :
|
|
; 7337 : 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_
|
|
|
|
; 7338 : 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_:
|
|
|
|
; 7339 : 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_
|
|
|
|
; 7340 : 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_:
|
|
|
|
; 7341 :
|
|
; 7342 : 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
|
|
|
|
; 7343 : 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
|
|
|
|
; 7344 : 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
|
|
|
|
; 7345 :
|
|
; 7346 : // intermediate buffer is RGBA
|
|
; 7347 : 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
|
|
|
|
; 7348 : if (!result)
|
|
|
|
001fe 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0
|
|
00203 75 34 jne SHORT $LN10@stbi__pic_
|
|
|
|
; 7349 : 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_:
|
|
|
|
; 7350 : 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
|
|
|
|
; 7351 :
|
|
; 7352 : 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_
|
|
|
|
; 7353 : 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
|
|
|
|
; 7354 : result = 0;
|
|
|
|
0028a 48 c7 45 08 00
|
|
00 00 00 mov QWORD PTR result$[rbp], 0
|
|
$LN11@stbi__pic_:
|
|
|
|
; 7355 : }
|
|
; 7356 : *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
|
|
|
|
; 7357 : *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
|
|
|
|
; 7358 : 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_
|
|
|
|
; 7359 : 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_:
|
|
|
|
; 7360 : 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
|
|
|
|
; 7361 :
|
|
; 7362 : return result;
|
|
|
|
002e6 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi__pic_:
|
|
|
|
; 7363 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__pic_test
|
|
_TEXT SEGMENT
|
|
r$ = 4
|
|
s$ = 256
|
|
stbi__pic_test PROC ; COMDAT
|
|
|
|
; 7366 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 7367 : 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
|
|
|
|
; 7368 : 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
|
|
|
|
; 7369 : return r;
|
|
|
|
0003c 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
|
|
; 7370 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8188 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 8189 : char buffer[STBI__HDR_BUFLEN];
|
|
; 8190 : char *token;
|
|
; 8191 : int valid = 0;
|
|
|
|
00059 c7 85 44 04 00
|
|
00 00 00 00 00 mov DWORD PTR valid$[rbp], 0
|
|
|
|
; 8192 : int dummy;
|
|
; 8193 :
|
|
; 8194 : 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_
|
|
|
|
; 8195 : 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_:
|
|
|
|
; 8196 : 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_
|
|
|
|
; 8197 : 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_:
|
|
|
|
; 8198 : 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_
|
|
|
|
; 8199 : 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_:
|
|
|
|
; 8200 :
|
|
; 8201 : 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_
|
|
|
|
; 8202 : 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
|
|
|
|
; 8203 : return 0;
|
|
|
|
000c8 33 c0 xor eax, eax
|
|
000ca e9 82 01 00 00 jmp $LN1@stbi__hdr_
|
|
$LN10@stbi__hdr_:
|
|
$LN2@stbi__hdr_:
|
|
|
|
; 8204 : }
|
|
; 8205 :
|
|
; 8206 : for (;;) {
|
|
; 8207 : 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
|
|
|
|
; 8208 : 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_
|
|
|
|
; 8209 : break;
|
|
|
|
000fe eb 23 jmp SHORT $LN3@stbi__hdr_
|
|
$LN11@stbi__hdr_:
|
|
|
|
; 8210 : 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_
|
|
|
|
; 8211 : valid = 1;
|
|
|
|
00117 c7 85 44 04 00
|
|
00 01 00 00 00 mov DWORD PTR valid$[rbp], 1
|
|
$LN12@stbi__hdr_:
|
|
|
|
; 8212 : }
|
|
|
|
00121 eb ac jmp SHORT $LN2@stbi__hdr_
|
|
$LN3@stbi__hdr_:
|
|
|
|
; 8213 :
|
|
; 8214 : if (!valid) {
|
|
|
|
00123 83 bd 44 04 00
|
|
00 00 cmp DWORD PTR valid$[rbp], 0
|
|
0012a 75 14 jne SHORT $LN13@stbi__hdr_
|
|
|
|
; 8215 : 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
|
|
|
|
; 8216 : return 0;
|
|
|
|
00139 33 c0 xor eax, eax
|
|
0013b e9 11 01 00 00 jmp $LN1@stbi__hdr_
|
|
$LN13@stbi__hdr_:
|
|
|
|
; 8217 : }
|
|
; 8218 : 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
|
|
|
|
; 8219 : 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_
|
|
|
|
; 8220 : 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
|
|
|
|
; 8221 : return 0;
|
|
|
|
00182 33 c0 xor eax, eax
|
|
00184 e9 c8 00 00 00 jmp $LN1@stbi__hdr_
|
|
$LN14@stbi__hdr_:
|
|
|
|
; 8222 : }
|
|
; 8223 : 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
|
|
|
|
; 8224 : *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_:
|
|
|
|
; 8225 : 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_
|
|
|
|
; 8226 : ++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_:
|
|
|
|
; 8227 : 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_
|
|
|
|
; 8228 : 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
|
|
|
|
; 8229 : return 0;
|
|
|
|
0020b 33 c0 xor eax, eax
|
|
0020d eb 42 jmp SHORT $LN1@stbi__hdr_
|
|
$LN15@stbi__hdr_:
|
|
|
|
; 8230 : }
|
|
; 8231 : 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
|
|
|
|
; 8232 : *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
|
|
|
|
; 8233 : *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
|
|
|
|
; 8234 : return 1;
|
|
|
|
0024c b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__hdr_:
|
|
|
|
; 8235 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8030 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 8031 : char buffer[STBI__HDR_BUFLEN];
|
|
; 8032 : char *token;
|
|
; 8033 : int valid = 0;
|
|
|
|
00059 c7 85 44 04 00
|
|
00 00 00 00 00 mov DWORD PTR valid$[rbp], 0
|
|
|
|
; 8034 : int width, height;
|
|
; 8035 : stbi_uc *scanline;
|
|
; 8036 : float *hdr_data;
|
|
; 8037 : int len;
|
|
; 8038 : unsigned char count, value;
|
|
; 8039 : int i, j, k, c1, c2, z;
|
|
; 8040 : const char *headerToken;
|
|
; 8041 : STBI_NOTUSED(ri);
|
|
; 8042 :
|
|
; 8043 : // Check identifier
|
|
; 8044 : 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
|
|
|
|
; 8045 : 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_
|
|
|
|
; 8046 : 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_:
|
|
|
|
; 8047 :
|
|
; 8048 : // Parse header
|
|
; 8049 : for (;;) {
|
|
; 8050 : 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
|
|
|
|
; 8051 : 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_
|
|
|
|
; 8052 : break;
|
|
|
|
0010b eb 23 jmp SHORT $LN3@stbi__hdr_
|
|
$LN31@stbi__hdr_:
|
|
|
|
; 8053 : 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_
|
|
|
|
; 8054 : valid = 1;
|
|
|
|
00124 c7 85 44 04 00
|
|
00 01 00 00 00 mov DWORD PTR valid$[rbp], 1
|
|
$LN32@stbi__hdr_:
|
|
|
|
; 8055 : }
|
|
|
|
0012e eb ac jmp SHORT $LN2@stbi__hdr_
|
|
$LN3@stbi__hdr_:
|
|
|
|
; 8056 :
|
|
; 8057 : if (!valid)
|
|
|
|
00130 83 bd 44 04 00
|
|
00 00 cmp DWORD PTR valid$[rbp], 0
|
|
00137 75 34 jne SHORT $LN33@stbi__hdr_
|
|
|
|
; 8058 : 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_:
|
|
|
|
; 8059 :
|
|
; 8060 : // Parse width and height
|
|
; 8061 : // can't use sscanf() if we're not using stdio!
|
|
; 8062 : 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
|
|
|
|
; 8063 : 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_
|
|
|
|
; 8064 : 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_:
|
|
|
|
; 8065 : 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
|
|
|
|
; 8066 : 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_:
|
|
|
|
; 8067 : 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_
|
|
|
|
; 8068 : ++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_:
|
|
|
|
; 8069 : 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_
|
|
|
|
; 8070 : 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_:
|
|
|
|
; 8071 : 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
|
|
|
|
; 8072 : 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
|
|
|
|
; 8073 :
|
|
; 8074 : 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_
|
|
|
|
; 8075 : 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_:
|
|
|
|
; 8076 : 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_
|
|
|
|
; 8077 : 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_:
|
|
|
|
; 8078 :
|
|
; 8079 : *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
|
|
|
|
; 8080 : *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
|
|
|
|
; 8081 :
|
|
; 8082 : 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_
|
|
|
|
; 8083 : *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_:
|
|
|
|
; 8084 : 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_
|
|
|
|
; 8085 : req_comp = 3;
|
|
|
|
00367 c7 85 d0 09 00
|
|
00 03 00 00 00 mov DWORD PTR req_comp$[rbp], 3
|
|
$LN39@stbi__hdr_:
|
|
|
|
; 8086 :
|
|
; 8087 : 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_
|
|
|
|
; 8088 : 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_:
|
|
|
|
; 8089 :
|
|
; 8090 : // Read data
|
|
; 8091 : 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
|
|
|
|
; 8092 : 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_
|
|
|
|
; 8093 : 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_:
|
|
|
|
; 8094 :
|
|
; 8095 : // Load image data
|
|
; 8096 : // image data is stored as some number of sca
|
|
; 8097 : 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_:
|
|
|
|
; 8098 : // Read flat data
|
|
; 8099 : 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_
|
|
|
|
; 8100 : 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:
|
|
|
|
; 8101 : stbi_uc rgbe[4];
|
|
; 8102 : main_decode_loop:
|
|
; 8103 : 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
|
|
|
|
; 8104 : 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
|
|
|
|
; 8105 : rgbe, req_comp);
|
|
; 8106 : }
|
|
|
|
0050d e9 79 ff ff ff jmp $LN10@stbi__hdr_
|
|
$LN11@stbi__hdr_:
|
|
|
|
; 8107 : }
|
|
|
|
00512 e9 48 ff ff ff jmp $LN7@stbi__hdr_
|
|
$LN8@stbi__hdr_:
|
|
|
|
; 8108 : } else {
|
|
|
|
00517 e9 0c 05 00 00 jmp $LN43@stbi__hdr_
|
|
$LN42@stbi__hdr_:
|
|
|
|
; 8109 : // Read RLE-encoded data
|
|
; 8110 : scanline = NULL;
|
|
|
|
0051c 48 c7 85 a8 04
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR scanline$[rbp], 0
|
|
|
|
; 8111 :
|
|
; 8112 : 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_
|
|
|
|
; 8113 : 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
|
|
|
|
; 8114 : 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
|
|
|
|
; 8115 : 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
|
|
|
|
; 8116 : 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_:
|
|
|
|
; 8117 : // not run-length encoded, so we have to actually use THIS data as a decoded
|
|
; 8118 : // pixel (note this can't be a valid pixel--one of RGB must be >= 128)
|
|
; 8119 : stbi_uc rgbe[4];
|
|
; 8120 : 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
|
|
|
|
; 8121 : 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
|
|
|
|
; 8122 : 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
|
|
|
|
; 8123 : 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
|
|
|
|
; 8124 : 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
|
|
|
|
; 8125 : i = 1;
|
|
|
|
00633 c7 85 44 05 00
|
|
00 01 00 00 00 mov DWORD PTR i$[rbp], 1
|
|
|
|
; 8126 : j = 0;
|
|
|
|
0063d c7 85 64 05 00
|
|
00 00 00 00 00 mov DWORD PTR j$[rbp], 0
|
|
|
|
; 8127 : 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
|
|
|
|
; 8128 : goto main_decode_loop; // yes, this makes no sense
|
|
|
|
00655 e9 4d fe ff ff jmp $main_decode_loop$82
|
|
$LN45@stbi__hdr_:
|
|
|
|
; 8129 : }
|
|
; 8130 : 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
|
|
|
|
; 8131 : 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
|
|
|
|
; 8132 : 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_
|
|
|
|
; 8133 : 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
|
|
|
|
; 8134 : 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
|
|
|
|
; 8135 : 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_:
|
|
|
|
; 8136 : "corrupt HDR");
|
|
; 8137 : }
|
|
; 8138 : 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_
|
|
|
|
; 8139 : 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
|
|
|
|
; 8140 : 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_
|
|
|
|
; 8141 : 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
|
|
|
|
; 8142 : 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_:
|
|
|
|
; 8143 : }
|
|
; 8144 : }
|
|
; 8145 :
|
|
; 8146 : 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_
|
|
|
|
; 8147 : int nleft;
|
|
; 8148 : i = 0;
|
|
|
|
0077d c7 85 44 05 00
|
|
00 00 00 00 00 mov DWORD PTR i$[rbp], 0
|
|
$LN19@stbi__hdr_:
|
|
|
|
; 8149 : 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_
|
|
|
|
; 8150 : 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
|
|
|
|
; 8151 : 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_
|
|
|
|
; 8152 : // Run
|
|
; 8153 : 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
|
|
|
|
; 8154 : 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
|
|
|
|
; 8155 : 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_:
|
|
|
|
; 8156 : 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
|
|
|
|
; 8157 : 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
|
|
|
|
; 8158 : 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_:
|
|
|
|
; 8159 : "bad RLE data in HDR");
|
|
; 8160 : }
|
|
; 8161 : 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_
|
|
|
|
; 8162 : 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_:
|
|
|
|
; 8163 : } else {
|
|
|
|
008b7 e9 cb 00 00 00 jmp $LN51@stbi__hdr_
|
|
$LN50@stbi__hdr_:
|
|
|
|
; 8164 : // Dump
|
|
; 8165 : 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_:
|
|
|
|
; 8166 : 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
|
|
|
|
; 8167 : 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
|
|
|
|
; 8168 : 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_:
|
|
|
|
; 8169 : "bad RLE data in HDR");
|
|
; 8170 : }
|
|
; 8171 : 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_
|
|
|
|
; 8172 : 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_:
|
|
|
|
; 8173 : }
|
|
; 8174 : }
|
|
|
|
00987 e9 fb fd ff ff jmp $LN19@stbi__hdr_
|
|
$LN20@stbi__hdr_:
|
|
|
|
; 8175 : }
|
|
|
|
0098c e9 d1 fd ff ff jmp $LN16@stbi__hdr_
|
|
$LN17@stbi__hdr_:
|
|
|
|
; 8176 : 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_
|
|
|
|
; 8177 : 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_:
|
|
|
|
; 8178 : scanline + i * 4, req_comp);
|
|
; 8179 : }
|
|
|
|
00a0b e9 23 fb ff ff jmp $LN13@stbi__hdr_
|
|
$LN14@stbi__hdr_:
|
|
|
|
; 8180 : 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_
|
|
|
|
; 8181 : 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_:
|
|
|
|
; 8182 : }
|
|
; 8183 :
|
|
; 8184 : return hdr_data;
|
|
|
|
00a28 48 8b 85 c8 04
|
|
00 00 mov rax, QWORD PTR hdr_data$[rbp]
|
|
$LN1@stbi__hdr_:
|
|
|
|
; 8185 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__hdr_test
|
|
_TEXT SEGMENT
|
|
r$ = 4
|
|
s$ = 256
|
|
stbi__hdr_test PROC ; COMDAT
|
|
|
|
; 7962 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 7963 : 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
|
|
|
|
; 7964 : 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
|
|
|
|
; 7965 : if (!r) {
|
|
|
|
00043 83 7d 04 00 cmp DWORD PTR r$[rbp], 0
|
|
00047 75 23 jne SHORT $LN2@stbi__hdr_
|
|
|
|
; 7966 : 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
|
|
|
|
; 7967 : 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_:
|
|
|
|
; 7968 : }
|
|
; 7969 : return r;
|
|
|
|
0006c 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
|
|
; 7970 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__psd_is16
|
|
_TEXT SEGMENT
|
|
channelCount$ = 4
|
|
depth$ = 36
|
|
s$ = 288
|
|
stbi__psd_is16 PROC ; COMDAT
|
|
|
|
; 8304 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 8305 : int channelCount, depth;
|
|
; 8306 : 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_
|
|
|
|
; 8307 : 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
|
|
|
|
; 8308 : return 0;
|
|
|
|
00040 33 c0 xor eax, eax
|
|
00042 e9 a8 00 00 00 jmp $LN1@stbi__psd_
|
|
$LN2@stbi__psd_:
|
|
|
|
; 8309 : }
|
|
; 8310 : 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_
|
|
|
|
; 8311 : 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
|
|
|
|
; 8312 : return 0;
|
|
|
|
00065 33 c0 xor eax, eax
|
|
00067 e9 83 00 00 00 jmp $LN1@stbi__psd_
|
|
$LN3@stbi__psd_:
|
|
|
|
; 8313 : }
|
|
; 8314 : 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
|
|
|
|
; 8315 : 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
|
|
|
|
; 8316 : 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_:
|
|
|
|
; 8317 : 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
|
|
|
|
; 8318 : return 0;
|
|
|
|
000a6 33 c0 xor eax, eax
|
|
000a8 eb 45 jmp SHORT $LN1@stbi__psd_
|
|
$LN4@stbi__psd_:
|
|
|
|
; 8319 : }
|
|
; 8320 : 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
|
|
|
|
; 8321 : 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
|
|
|
|
; 8322 : 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
|
|
|
|
; 8323 : if (depth != 16) {
|
|
|
|
000d3 83 7d 24 10 cmp DWORD PTR depth$[rbp], 16
|
|
000d7 74 11 je SHORT $LN6@stbi__psd_
|
|
|
|
; 8324 : 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
|
|
|
|
; 8325 : return 0;
|
|
|
|
000e6 33 c0 xor eax, eax
|
|
000e8 eb 05 jmp SHORT $LN1@stbi__psd_
|
|
$LN6@stbi__psd_:
|
|
|
|
; 8326 : }
|
|
; 8327 : return 1;
|
|
|
|
000ea b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__psd_:
|
|
|
|
; 8328 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8266 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 8267 : int channelCount, dummy, depth;
|
|
; 8268 : 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_
|
|
|
|
; 8269 : 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_:
|
|
|
|
; 8270 : 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_
|
|
|
|
; 8271 : 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_:
|
|
|
|
; 8272 : 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_
|
|
|
|
; 8273 : 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_:
|
|
|
|
; 8274 : 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_
|
|
|
|
; 8275 : 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
|
|
|
|
; 8276 : return 0;
|
|
|
|
000b8 33 c0 xor eax, eax
|
|
000ba e9 f0 00 00 00 jmp $LN1@stbi__psd_
|
|
$LN5@stbi__psd_:
|
|
|
|
; 8277 : }
|
|
; 8278 : 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_
|
|
|
|
; 8279 : 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
|
|
|
|
; 8280 : return 0;
|
|
|
|
000dd 33 c0 xor eax, eax
|
|
000df e9 cb 00 00 00 jmp $LN1@stbi__psd_
|
|
$LN6@stbi__psd_:
|
|
|
|
; 8281 : }
|
|
; 8282 : 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
|
|
|
|
; 8283 : 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
|
|
|
|
; 8284 : 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_:
|
|
|
|
; 8285 : 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
|
|
|
|
; 8286 : return 0;
|
|
|
|
0011e 33 c0 xor eax, eax
|
|
00120 e9 8a 00 00 00 jmp $LN1@stbi__psd_
|
|
$LN7@stbi__psd_:
|
|
|
|
; 8287 : }
|
|
; 8288 : *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
|
|
|
|
; 8289 : *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
|
|
|
|
; 8290 : 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
|
|
|
|
; 8291 : 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_
|
|
|
|
; 8292 : 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
|
|
|
|
; 8293 : return 0;
|
|
|
|
00177 33 c0 xor eax, eax
|
|
00179 eb 34 jmp SHORT $LN1@stbi__psd_
|
|
$LN9@stbi__psd_:
|
|
|
|
; 8294 : }
|
|
; 8295 : 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_
|
|
|
|
; 8296 : 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
|
|
|
|
; 8297 : return 0;
|
|
|
|
00199 33 c0 xor eax, eax
|
|
0019b eb 12 jmp SHORT $LN1@stbi__psd_
|
|
$LN10@stbi__psd_:
|
|
|
|
; 8298 : }
|
|
; 8299 : *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
|
|
|
|
; 8300 : return 1;
|
|
|
|
001aa b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__psd_:
|
|
|
|
; 8301 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 6922 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 6923 : int pixelCount;
|
|
; 6924 : int channelCount, compression;
|
|
; 6925 : int channel, i;
|
|
; 6926 : int bitdepth;
|
|
; 6927 : int w, h;
|
|
; 6928 : stbi_uc *out;
|
|
; 6929 : STBI_NOTUSED(ri);
|
|
; 6930 :
|
|
; 6931 : // Check identifier
|
|
; 6932 : 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_
|
|
|
|
; 6933 : 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_:
|
|
|
|
; 6934 :
|
|
; 6935 : // Check file type version.
|
|
; 6936 : 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_
|
|
|
|
; 6937 : 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_:
|
|
|
|
; 6938 :
|
|
; 6939 : // Skip 6 reserved bytes.
|
|
; 6940 : 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
|
|
|
|
; 6941 :
|
|
; 6942 : // Read the number of channels (R, G, B, A, etc).
|
|
; 6943 : 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
|
|
|
|
; 6944 : 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_:
|
|
|
|
; 6945 : 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_:
|
|
|
|
; 6946 : "Unsupported number of channels in PSD image");
|
|
; 6947 :
|
|
; 6948 : // Read the rows and columns of the image.
|
|
; 6949 : 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
|
|
|
|
; 6950 : 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
|
|
|
|
; 6951 :
|
|
; 6952 : 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_
|
|
|
|
; 6953 : 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_:
|
|
|
|
; 6954 : 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_
|
|
|
|
; 6955 : 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_:
|
|
|
|
; 6956 :
|
|
; 6957 : // Make sure the depth is 8 bits.
|
|
; 6958 : 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
|
|
|
|
; 6959 : 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_
|
|
|
|
; 6960 : 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_:
|
|
|
|
; 6961 :
|
|
; 6962 : // Make sure the color mode is RGB.
|
|
; 6963 : // Valid options are:
|
|
; 6964 : // 0: Bitmap
|
|
; 6965 : // 1: Grayscale
|
|
; 6966 : // 2: Indexed color
|
|
; 6967 : // 3: RGB color
|
|
; 6968 : // 4: CMYK color
|
|
; 6969 : // 7: Multichannel
|
|
; 6970 : // 8: Duotone
|
|
; 6971 : // 9: Lab color
|
|
; 6972 : 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_
|
|
|
|
; 6973 : 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_:
|
|
|
|
; 6974 :
|
|
; 6975 : // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.)
|
|
; 6976 : 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
|
|
|
|
; 6977 :
|
|
; 6978 : // Skip the image resources. (resolution, pen tool paths, etc)
|
|
; 6979 : 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
|
|
|
|
; 6980 :
|
|
; 6981 : // Skip the reserved data.
|
|
; 6982 : 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
|
|
|
|
; 6983 :
|
|
; 6984 : // Find out if the data is compressed.
|
|
; 6985 : // Known values:
|
|
; 6986 : // 0: no compression
|
|
; 6987 : // 1: RLE compressed
|
|
; 6988 : 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
|
|
|
|
; 6989 : if (compression > 1)
|
|
|
|
002bd 83 7d 44 01 cmp DWORD PTR compression$[rbp], 1
|
|
002c1 7e 34 jle SHORT $LN40@stbi__psd_
|
|
|
|
; 6990 : 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_:
|
|
|
|
; 6991 :
|
|
; 6992 : // Check size
|
|
; 6993 : 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_
|
|
|
|
; 6994 : 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_:
|
|
|
|
; 6995 :
|
|
; 6996 : // Create the destination image.
|
|
; 6997 :
|
|
; 6998 : 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_
|
|
|
|
; 6999 : 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
|
|
|
|
; 7000 : 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
|
|
|
|
; 7001 : } else
|
|
|
|
0038f eb 21 jmp SHORT $LN43@stbi__psd_
|
|
$LN42@stbi__psd_:
|
|
|
|
; 7002 : 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_:
|
|
|
|
; 7003 :
|
|
; 7004 : 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_
|
|
|
|
; 7005 : 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_:
|
|
|
|
; 7006 : 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
|
|
|
|
; 7007 :
|
|
; 7008 : // Initialize the data to zero.
|
|
; 7009 : //memset( out, 0, pixelCount * 4 );
|
|
; 7010 :
|
|
; 7011 : // Finally, the image data.
|
|
; 7012 : if (compression) {
|
|
|
|
00400 83 7d 44 00 cmp DWORD PTR compression$[rbp], 0
|
|
00404 0f 84 24 01 00
|
|
00 je $LN45@stbi__psd_
|
|
|
|
; 7013 : // RLE as used by .PSD and .TIFF
|
|
; 7014 : // Loop until you get the number of unpacked bytes you are expecting:
|
|
; 7015 : // Read the next source byte into n.
|
|
; 7016 : // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally.
|
|
; 7017 : // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times.
|
|
; 7018 : // Else if n is 128, noop.
|
|
; 7019 : // Endloop
|
|
; 7020 :
|
|
; 7021 : // The RLE-compressed data is preceded by a 2-byte data count for each row in the data,
|
|
; 7022 : // which we're going to just skip.
|
|
; 7023 : 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
|
|
|
|
; 7024 :
|
|
; 7025 : // Read the RLE data by channel.
|
|
; 7026 : 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_
|
|
|
|
; 7027 : stbi_uc *p;
|
|
; 7028 :
|
|
; 7029 : 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
|
|
|
|
; 7030 : 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_
|
|
|
|
; 7031 : // Fill this channel with default data.
|
|
; 7032 : 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_
|
|
|
|
; 7033 : *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_:
|
|
|
|
; 7034 : } else {
|
|
|
|
004c5 eb 5d jmp SHORT $LN48@stbi__psd_
|
|
$LN47@stbi__psd_:
|
|
|
|
; 7035 : // Read the RLE data.
|
|
; 7036 : 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_
|
|
|
|
; 7037 : 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
|
|
|
|
; 7038 : 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_:
|
|
|
|
; 7039 : }
|
|
; 7040 : }
|
|
; 7041 : }
|
|
|
|
00524 e9 05 ff ff ff jmp $LN2@stbi__psd_
|
|
$LN3@stbi__psd_:
|
|
|
|
; 7042 :
|
|
; 7043 : } else {
|
|
|
|
00529 e9 9c 02 00 00 jmp $LN46@stbi__psd_
|
|
$LN45@stbi__psd_:
|
|
|
|
; 7044 : // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...)
|
|
; 7045 : // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image.
|
|
; 7046 :
|
|
; 7047 : // Read the data by channel.
|
|
; 7048 : 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_
|
|
|
|
; 7049 : 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_
|
|
|
|
; 7050 : // Fill this channel with default data.
|
|
; 7051 : 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_
|
|
|
|
; 7052 : 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
|
|
|
|
; 7053 : 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
|
|
|
|
; 7054 : 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_
|
|
|
|
; 7055 : *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_:
|
|
|
|
; 7056 : } else {
|
|
|
|
005f9 e9 8a 00 00 00 jmp $LN53@stbi__psd_
|
|
$LN52@stbi__psd_:
|
|
|
|
; 7057 : 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
|
|
|
|
; 7058 : 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
|
|
|
|
; 7059 : 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_
|
|
|
|
; 7060 : *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_:
|
|
|
|
; 7061 : }
|
|
; 7062 : } else {
|
|
|
|
00688 e9 38 01 00 00 jmp $LN51@stbi__psd_
|
|
$LN50@stbi__psd_:
|
|
|
|
; 7063 : 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_
|
|
|
|
; 7064 : 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
|
|
|
|
; 7065 : 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_
|
|
|
|
; 7066 : *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_:
|
|
|
|
; 7067 : } else {
|
|
|
|
006fe e9 c2 00 00 00 jmp $LN55@stbi__psd_
|
|
$LN54@stbi__psd_:
|
|
|
|
; 7068 : 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
|
|
|
|
; 7069 : 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_
|
|
|
|
; 7070 : 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_
|
|
|
|
; 7071 : *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_:
|
|
|
|
; 7072 : } else {
|
|
|
|
00775 eb 4e jmp SHORT $LN57@stbi__psd_
|
|
$LN56@stbi__psd_:
|
|
|
|
; 7073 : 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_
|
|
|
|
; 7074 : *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_:
|
|
|
|
; 7075 : }
|
|
; 7076 : }
|
|
; 7077 : }
|
|
; 7078 : }
|
|
|
|
007c5 e9 6d fd ff ff jmp $LN8@stbi__psd_
|
|
$LN9@stbi__psd_:
|
|
$LN46@stbi__psd_:
|
|
|
|
; 7079 : }
|
|
; 7080 :
|
|
; 7081 : // remove weird white matte from PSD
|
|
; 7082 : 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_
|
|
|
|
; 7083 : 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_
|
|
|
|
; 7084 : 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_
|
|
|
|
; 7085 : 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
|
|
|
|
; 7086 : 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_
|
|
|
|
; 7087 : 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
|
|
|
|
; 7088 : 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
|
|
|
|
; 7089 : 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
|
|
|
|
; 7090 : 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
|
|
|
|
; 7091 : 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
|
|
|
|
; 7092 : 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_:
|
|
|
|
; 7093 : }
|
|
; 7094 : }
|
|
|
|
00996 e9 55 fe ff ff jmp $LN26@stbi__psd_
|
|
$LN27@stbi__psd_:
|
|
|
|
; 7095 : } else {
|
|
|
|
0099b e9 b6 01 00 00 jmp $LN60@stbi__psd_
|
|
$LN59@stbi__psd_:
|
|
|
|
; 7096 : 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_
|
|
|
|
; 7097 : 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
|
|
|
|
; 7098 : 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_
|
|
|
|
; 7099 : 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
|
|
|
|
; 7100 : 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
|
|
|
|
; 7101 : 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
|
|
|
|
; 7102 : 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
|
|
|
|
; 7103 : 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
|
|
|
|
; 7104 : 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_:
|
|
|
|
; 7105 : }
|
|
; 7106 : }
|
|
|
|
00b51 e9 56 fe ff ff jmp $LN29@stbi__psd_
|
|
$LN30@stbi__psd_:
|
|
$LN60@stbi__psd_:
|
|
$LN58@stbi__psd_:
|
|
|
|
; 7107 : }
|
|
; 7108 : }
|
|
; 7109 :
|
|
; 7110 : // convert to desired output format
|
|
; 7111 : 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_
|
|
|
|
; 7112 : 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_
|
|
|
|
; 7113 : 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_:
|
|
|
|
; 7114 : h);
|
|
; 7115 : else
|
|
; 7116 : 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_:
|
|
|
|
; 7117 : 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_
|
|
|
|
; 7118 : 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_:
|
|
|
|
; 7119 : }
|
|
; 7120 :
|
|
; 7121 : 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_
|
|
|
|
; 7122 : *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_:
|
|
|
|
; 7123 : *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
|
|
|
|
; 7124 : *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
|
|
|
|
; 7125 :
|
|
; 7126 : return out;
|
|
|
|
00c26 48 8b 85 08 01
|
|
00 00 mov rax, QWORD PTR out$[rbp]
|
|
$LN1@stbi__psd_:
|
|
|
|
; 7127 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__psd_test
|
|
_TEXT SEGMENT
|
|
r$ = 4
|
|
tv67 = 212
|
|
s$ = 256
|
|
stbi__psd_test PROC ; COMDAT
|
|
|
|
; 6874 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 6875 : 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
|
|
|
|
; 6876 : 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
|
|
|
|
; 6877 : return r;
|
|
|
|
0005f 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
|
|
; 6878 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 6540 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 6541 : int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp;
|
|
; 6542 : int sz, tga_colormap_type;
|
|
; 6543 : 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
|
|
|
|
; 6544 : 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
|
|
|
|
; 6545 : 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_
|
|
|
|
; 6546 : 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
|
|
|
|
; 6547 : 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_:
|
|
|
|
; 6548 : }
|
|
; 6549 : 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
|
|
|
|
; 6550 : 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_
|
|
|
|
; 6551 : 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_
|
|
|
|
; 6552 : 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
|
|
|
|
; 6553 : return 0;
|
|
|
|
000a6 33 c0 xor eax, eax
|
|
000a8 e9 1f 02 00 00 jmp $LN1@stbi__tga_
|
|
$LN5@stbi__tga_:
|
|
|
|
; 6554 : }
|
|
; 6555 : stbi__skip(s, 4); // skip index of first colormap entry and number of entries
|
|
|
|
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
|
|
|
|
; 6556 : 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
|
|
|
|
; 6557 : 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_
|
|
|
|
; 6558 : 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
|
|
|
|
; 6559 : return 0;
|
|
|
|
0010e 33 c0 xor eax, eax
|
|
00110 e9 b7 01 00 00 jmp $LN1@stbi__tga_
|
|
$LN6@stbi__tga_:
|
|
|
|
; 6560 : }
|
|
; 6561 : 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
|
|
|
|
; 6562 : 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
|
|
|
|
; 6563 : } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE
|
|
|
|
00133 eb 48 jmp SHORT $LN4@stbi__tga_
|
|
$LN3@stbi__tga_:
|
|
|
|
; 6564 : 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_
|
|
|
|
; 6565 : (tga_image_type != 11)) {
|
|
; 6566 : 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
|
|
|
|
; 6567 : 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_:
|
|
|
|
; 6568 : }
|
|
; 6569 : stbi__skip(s, 9); // skip colormap specification and image x/y origin
|
|
|
|
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
|
|
|
|
; 6570 : 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_:
|
|
|
|
; 6571 : }
|
|
; 6572 : 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
|
|
|
|
; 6573 : if (tga_w < 1) {
|
|
|
|
0018c 83 7d 04 01 cmp DWORD PTR tga_w$[rbp], 1
|
|
00190 7d 14 jge SHORT $LN8@stbi__tga_
|
|
|
|
; 6574 : 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
|
|
|
|
; 6575 : return 0; // test width
|
|
|
|
0019f 33 c0 xor eax, eax
|
|
001a1 e9 26 01 00 00 jmp $LN1@stbi__tga_
|
|
$LN8@stbi__tga_:
|
|
|
|
; 6576 : }
|
|
; 6577 : 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
|
|
|
|
; 6578 : if (tga_h < 1) {
|
|
|
|
001b5 83 7d 24 01 cmp DWORD PTR tga_h$[rbp], 1
|
|
001b9 7d 14 jge SHORT $LN9@stbi__tga_
|
|
|
|
; 6579 : 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
|
|
|
|
; 6580 : return 0; // test height
|
|
|
|
001c8 33 c0 xor eax, eax
|
|
001ca e9 fd 00 00 00 jmp $LN1@stbi__tga_
|
|
$LN9@stbi__tga_:
|
|
|
|
; 6581 : }
|
|
; 6582 : 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
|
|
|
|
; 6583 : 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
|
|
|
|
; 6584 : 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_
|
|
|
|
; 6585 : 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_
|
|
|
|
; 6586 : // when using a colormap, tga_bits_per_pixel is the size of the indexes
|
|
; 6587 : // I don't think anything but 8 or 16bit indexes makes sense
|
|
; 6588 : 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
|
|
|
|
; 6589 : return 0;
|
|
|
|
00219 33 c0 xor eax, eax
|
|
0021b e9 ac 00 00 00 jmp $LN1@stbi__tga_
|
|
$LN12@stbi__tga_:
|
|
|
|
; 6590 : }
|
|
; 6591 : 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
|
|
|
|
; 6592 : } else {
|
|
|
|
00233 eb 39 jmp SHORT $LN11@stbi__tga_
|
|
$LN10@stbi__tga_:
|
|
|
|
; 6593 : 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_:
|
|
|
|
; 6594 : tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL);
|
|
; 6595 : }
|
|
; 6596 : if (!tga_comp) {
|
|
|
|
0026e 83 7d 44 00 cmp DWORD PTR tga_comp$[rbp], 0
|
|
00272 75 11 jne SHORT $LN13@stbi__tga_
|
|
|
|
; 6597 : 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
|
|
|
|
; 6598 : return 0;
|
|
|
|
00281 33 c0 xor eax, eax
|
|
00283 eb 47 jmp SHORT $LN1@stbi__tga_
|
|
$LN13@stbi__tga_:
|
|
|
|
; 6599 : }
|
|
; 6600 : 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_
|
|
|
|
; 6601 : *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_:
|
|
|
|
; 6602 : 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_
|
|
|
|
; 6603 : *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_:
|
|
|
|
; 6604 : 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_
|
|
|
|
; 6605 : *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_:
|
|
|
|
; 6606 : return 1; // seems to have passed everything
|
|
|
|
002c7 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__tga_:
|
|
|
|
; 6607 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 6670 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 6671 : // read in the TGA header stuff
|
|
; 6672 : 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
|
|
|
|
; 6673 : 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
|
|
|
|
; 6674 : 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
|
|
|
|
; 6675 : int tga_is_RLE = 0;
|
|
|
|
0008f c7 45 64 00 00
|
|
00 00 mov DWORD PTR tga_is_RLE$[rbp], 0
|
|
|
|
; 6676 : 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
|
|
|
|
; 6677 : 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
|
|
|
|
; 6678 : 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
|
|
|
|
; 6679 : 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
|
|
|
|
; 6680 : 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
|
|
|
|
; 6681 : 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
|
|
|
|
; 6682 : 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
|
|
|
|
; 6683 : 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
|
|
|
|
; 6684 : int tga_comp, tga_rgb16 = 0;
|
|
|
|
0012c c7 85 a4 01 00
|
|
00 00 00 00 00 mov DWORD PTR tga_rgb16$[rbp], 0
|
|
|
|
; 6685 : 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
|
|
|
|
; 6686 : // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?)
|
|
; 6687 : // image data
|
|
; 6688 : unsigned char *tga_data;
|
|
; 6689 : unsigned char *tga_palette = NULL;
|
|
|
|
0014b 48 c7 85 08 02
|
|
00 00 00 00 00
|
|
00 mov QWORD PTR tga_palette$[rbp], 0
|
|
|
|
; 6690 : int i, j;
|
|
; 6691 : 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
|
|
|
|
; 6692 : int RLE_count = 0;
|
|
|
|
00169 c7 85 84 02 00
|
|
00 00 00 00 00 mov DWORD PTR RLE_count$[rbp], 0
|
|
|
|
; 6693 : int RLE_repeating = 0;
|
|
|
|
00173 c7 85 a4 02 00
|
|
00 00 00 00 00 mov DWORD PTR RLE_repeating$[rbp], 0
|
|
|
|
; 6694 : int read_next_pixel = 1;
|
|
|
|
0017d c7 85 c4 02 00
|
|
00 01 00 00 00 mov DWORD PTR read_next_pixel$[rbp], 1
|
|
|
|
; 6695 : STBI_NOTUSED(ri);
|
|
; 6696 : STBI_NOTUSED(tga_x_origin); // @TODO
|
|
; 6697 : STBI_NOTUSED(tga_y_origin); // @TODO
|
|
; 6698 :
|
|
; 6699 : 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_
|
|
|
|
; 6700 : 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_:
|
|
|
|
; 6701 : 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_
|
|
|
|
; 6702 : 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_:
|
|
|
|
; 6703 :
|
|
; 6704 : // do a tiny bit of precessing
|
|
; 6705 : 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_
|
|
|
|
; 6706 : 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
|
|
|
|
; 6707 : tga_is_RLE = 1;
|
|
|
|
00216 c7 45 64 01 00
|
|
00 00 mov DWORD PTR tga_is_RLE$[rbp], 1
|
|
$LN31@stbi__tga_:
|
|
|
|
; 6708 : }
|
|
; 6709 : 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
|
|
|
|
; 6710 :
|
|
; 6711 : // If I'm paletted, then I'll use the number of bits from the palette
|
|
; 6712 : if (tga_indexed)
|
|
|
|
00238 83 7d 24 00 cmp DWORD PTR tga_indexed$[rbp], 0
|
|
0023c 74 1c je SHORT $LN32@stbi__tga_
|
|
|
|
; 6713 : 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_:
|
|
|
|
; 6714 : else
|
|
; 6715 : 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_:
|
|
|
|
; 6716 : stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16);
|
|
; 6717 :
|
|
; 6718 : 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_
|
|
|
|
; 6719 : 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_:
|
|
|
|
; 6720 :
|
|
; 6721 : // tga info
|
|
; 6722 : *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
|
|
|
|
; 6723 : *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
|
|
|
|
; 6724 : 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_
|
|
|
|
; 6725 : *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_:
|
|
|
|
; 6726 :
|
|
; 6727 : 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_
|
|
|
|
; 6728 : 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_:
|
|
|
|
; 6729 :
|
|
; 6730 : 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
|
|
|
|
; 6731 : 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_
|
|
|
|
; 6732 : 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_:
|
|
|
|
; 6733 :
|
|
; 6734 : // skip to the data's starting position (offset usually = 0)
|
|
; 6735 : 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
|
|
|
|
; 6736 :
|
|
; 6737 : 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_
|
|
|
|
; 6738 : 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_
|
|
|
|
; 6739 : 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
|
|
|
|
; 6740 : 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
|
|
|
|
; 6741 : 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
|
|
|
|
; 6742 : }
|
|
|
|
004a1 e9 52 ff ff ff jmp $LN2@stbi__tga_
|
|
$LN3@stbi__tga_:
|
|
|
|
; 6743 : } else {
|
|
|
|
004a6 e9 8f 05 00 00 jmp $LN39@stbi__tga_
|
|
$LN38@stbi__tga_:
|
|
|
|
; 6744 : // do I need to load a palette?
|
|
; 6745 : 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_
|
|
|
|
; 6746 : 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_
|
|
|
|
; 6747 : 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
|
|
|
|
; 6748 : 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_:
|
|
|
|
; 6749 : }
|
|
; 6750 :
|
|
; 6751 : // any data to skip? (offset usually = 0)
|
|
; 6752 : 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
|
|
|
|
; 6753 : // load the palette
|
|
; 6754 : 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
|
|
|
|
; 6755 : (unsigned char *)stbi__malloc_mad2(tga_palette_len, tga_comp, 0);
|
|
; 6756 : 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_
|
|
|
|
; 6757 : 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
|
|
|
|
; 6758 : 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_:
|
|
|
|
; 6759 : }
|
|
; 6760 : 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_
|
|
|
|
; 6761 : 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
|
|
|
|
; 6762 : 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 6a 1a 00
|
|
00 mov r8d, 6762 ; 00001a6aH
|
|
005a4 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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_:
|
|
|
|
; 6763 : 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_
|
|
|
|
; 6764 : 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
|
|
|
|
; 6765 : 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
|
|
|
|
; 6766 : }
|
|
|
|
00611 eb b3 jmp SHORT $LN5@stbi__tga_
|
|
$LN6@stbi__tga_:
|
|
|
|
; 6767 : } 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_
|
|
|
|
; 6768 : 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
|
|
|
|
; 6769 : 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
|
|
|
|
; 6770 : 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_:
|
|
|
|
; 6771 : }
|
|
; 6772 : }
|
|
; 6773 : // load the data
|
|
; 6774 : 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_
|
|
|
|
; 6775 : // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk?
|
|
; 6776 : 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_
|
|
|
|
; 6777 : 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_
|
|
|
|
; 6778 : // yep, get the next byte as a RLE command
|
|
; 6779 : 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
|
|
|
|
; 6780 : 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
|
|
|
|
; 6781 : 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
|
|
|
|
; 6782 : 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_:
|
|
|
|
; 6783 : } 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_
|
|
|
|
; 6784 : 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_:
|
|
|
|
; 6785 : }
|
|
; 6786 : } else {
|
|
|
|
00722 eb 0a jmp SHORT $LN47@stbi__tga_
|
|
$LN46@stbi__tga_:
|
|
|
|
; 6787 : 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_:
|
|
|
|
; 6788 : }
|
|
; 6789 : // OK, if I need to read a pixel, do it now
|
|
; 6790 : 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_
|
|
|
|
; 6791 : // load however much data we did have
|
|
; 6792 : 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_
|
|
|
|
; 6793 : // read in index, then perform the lookup
|
|
; 6794 : 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
|
|
|
|
; 6795 : stbi__get16le(s);
|
|
; 6796 : 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_
|
|
|
|
; 6797 : // invalid index
|
|
; 6798 : 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_:
|
|
|
|
; 6799 : }
|
|
; 6800 : 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
|
|
|
|
; 6801 : 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_
|
|
|
|
; 6802 : 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
|
|
|
|
; 6803 : }
|
|
|
|
00801 eb b7 jmp SHORT $LN11@stbi__tga_
|
|
$LN12@stbi__tga_:
|
|
|
|
; 6804 : } 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_
|
|
|
|
; 6805 : 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 95 1a 00
|
|
00 mov r8d, 6805 ; 00001a95H
|
|
00820 48 8d 15 00 00
|
|
00 00 lea rdx, OFFSET FLAT:??_C@_1GK@GEMLNHEN@?$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_:
|
|
|
|
; 6806 : 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
|
|
|
|
; 6807 : } else {
|
|
|
|
0084a eb 44 jmp SHORT $LN56@stbi__tga_
|
|
$LN55@stbi__tga_:
|
|
|
|
; 6808 : // read in the data raw
|
|
; 6809 : 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_
|
|
|
|
; 6810 : 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
|
|
|
|
; 6811 : }
|
|
|
|
0088e eb c8 jmp SHORT $LN14@stbi__tga_
|
|
$LN15@stbi__tga_:
|
|
$LN56@stbi__tga_:
|
|
$LN53@stbi__tga_:
|
|
|
|
; 6812 : }
|
|
; 6813 : // clear the reading flag for the next pixel
|
|
; 6814 : 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_:
|
|
|
|
; 6815 : } // end of reading a pixel
|
|
; 6816 :
|
|
; 6817 : // copy data
|
|
; 6818 : 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_
|
|
|
|
; 6819 : 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_:
|
|
|
|
; 6820 :
|
|
; 6821 : // in case we're in RLE mode, keep counting down
|
|
; 6822 : --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
|
|
|
|
; 6823 : }
|
|
|
|
00901 e9 92 fd ff ff jmp $LN8@stbi__tga_
|
|
$LN9@stbi__tga_:
|
|
|
|
; 6824 : // do I need to invert the image?
|
|
; 6825 : 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_
|
|
|
|
; 6826 : 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_
|
|
|
|
; 6827 : 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
|
|
|
|
; 6828 : 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
|
|
|
|
; 6829 : 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_
|
|
|
|
; 6830 : 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
|
|
|
|
; 6831 : 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
|
|
|
|
; 6832 : 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
|
|
|
|
; 6833 : ++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
|
|
|
|
; 6834 : ++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
|
|
|
|
; 6835 : }
|
|
|
|
00a18 e9 75 ff ff ff jmp $LN23@stbi__tga_
|
|
$LN24@stbi__tga_:
|
|
|
|
; 6836 : }
|
|
|
|
00a1d e9 fd fe ff ff jmp $LN20@stbi__tga_
|
|
$LN21@stbi__tga_:
|
|
$LN57@stbi__tga_:
|
|
|
|
; 6837 : }
|
|
; 6838 : // clear my palette, if I had one
|
|
; 6839 : 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_
|
|
|
|
; 6840 : 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_:
|
|
|
|
; 6841 : }
|
|
; 6842 : }
|
|
; 6843 :
|
|
; 6844 : // swap RGB - if the source data was RGB16, it already is in the right order
|
|
; 6845 : 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_
|
|
|
|
; 6846 : 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
|
|
|
|
; 6847 : 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_
|
|
|
|
; 6848 : 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
|
|
|
|
; 6849 : 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
|
|
|
|
; 6850 : 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
|
|
|
|
; 6851 : 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
|
|
|
|
; 6852 : }
|
|
|
|
00b07 e9 62 ff ff ff jmp $LN26@stbi__tga_
|
|
$LN27@stbi__tga_:
|
|
$LN59@stbi__tga_:
|
|
|
|
; 6853 : }
|
|
; 6854 :
|
|
; 6855 : // convert to target component count
|
|
; 6856 : 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_
|
|
|
|
; 6857 : 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_:
|
|
|
|
; 6858 : stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height);
|
|
; 6859 :
|
|
; 6860 : // the things I do to get rid of an error message, and yet keep
|
|
; 6861 : // Microsoft's C compilers happy... [8^(
|
|
; 6862 : 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
|
|
|
|
; 6863 : STBI_NOTUSED(tga_palette_start);
|
|
; 6864 : // OK, done
|
|
; 6865 : return tga_data;
|
|
|
|
00b8e 48 8b 85 e8 01
|
|
00 00 mov rax, QWORD PTR tga_data$[rbp]
|
|
$LN1@stbi__tga_:
|
|
|
|
; 6866 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__tga_test
|
|
_TEXT SEGMENT
|
|
res$ = 4
|
|
sz$ = 36
|
|
tga_color_type$ = 68
|
|
s$ = 320
|
|
stbi__tga_test PROC ; COMDAT
|
|
|
|
; 6610 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 6611 : int res = 0;
|
|
|
|
00020 c7 45 04 00 00
|
|
00 00 mov DWORD PTR res$[rbp], 0
|
|
|
|
; 6612 : int sz, tga_color_type;
|
|
; 6613 : 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
|
|
|
|
; 6614 : 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
|
|
|
|
; 6615 : 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_
|
|
|
|
; 6616 : goto errorEnd; // only RGB or indexed allowed
|
|
|
|
0004c e9 26 01 00 00 jmp $errorEnd$13
|
|
$LN2@stbi__tga_:
|
|
|
|
; 6617 : 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
|
|
|
|
; 6618 : 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_
|
|
|
|
; 6619 : 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_
|
|
|
|
; 6620 : goto errorEnd; // colortype 1 demands image type 1 or 9
|
|
|
|
00075 e9 fd 00 00 00 jmp $errorEnd$13
|
|
$LN5@stbi__tga_:
|
|
|
|
; 6621 : stbi__skip(s, 4); // skip index of first colormap entry and number of entries
|
|
|
|
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
|
|
|
|
; 6622 : 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
|
|
|
|
; 6623 : 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_
|
|
|
|
; 6624 : goto errorEnd;
|
|
|
|
000bc e9 b6 00 00 00 jmp $errorEnd$13
|
|
$LN6@stbi__tga_:
|
|
|
|
; 6625 : 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
|
|
|
|
; 6626 : } else { // "normal" image w/o colormap
|
|
|
|
000d3 eb 2f jmp SHORT $LN4@stbi__tga_
|
|
$LN3@stbi__tga_:
|
|
|
|
; 6627 : 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_
|
|
|
|
; 6628 : goto errorEnd; // only RGB or grey allowed, +/- RLE
|
|
|
|
000ed e9 85 00 00 00 jmp $errorEnd$13
|
|
$LN7@stbi__tga_:
|
|
|
|
; 6629 : stbi__skip(s, 9); // skip colormap specification and image x/y origin
|
|
|
|
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_:
|
|
|
|
; 6630 : }
|
|
; 6631 : 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_
|
|
|
|
; 6632 : goto errorEnd; // test width
|
|
|
|
00115 eb 60 jmp SHORT $errorEnd$13
|
|
$LN8@stbi__tga_:
|
|
|
|
; 6633 : 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_
|
|
|
|
; 6634 : goto errorEnd; // test height
|
|
|
|
00128 eb 4d jmp SHORT $errorEnd$13
|
|
$LN9@stbi__tga_:
|
|
|
|
; 6635 : 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
|
|
|
|
; 6636 : 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_
|
|
|
|
; 6637 : goto errorEnd; // for colormapped images, bpp is size of an index
|
|
|
|
0014e eb 27 jmp SHORT $errorEnd$13
|
|
$LN10@stbi__tga_:
|
|
|
|
; 6638 : 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_
|
|
|
|
; 6639 : goto errorEnd;
|
|
|
|
0016e eb 07 jmp SHORT $errorEnd$13
|
|
$LN11@stbi__tga_:
|
|
|
|
; 6640 :
|
|
; 6641 : 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:
|
|
|
|
; 6642 :
|
|
; 6643 : errorEnd:
|
|
; 6644 : 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
|
|
|
|
; 6645 : return res;
|
|
|
|
00184 8b 45 04 mov eax, DWORD PTR res$[rbp]
|
|
|
|
; 6646 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8240 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 8241 : void *p;
|
|
; 8242 : stbi__bmp_data info;
|
|
; 8243 :
|
|
; 8244 : info.all_a = 255;
|
|
|
|
00059 c7 45 44 ff 00
|
|
00 00 mov DWORD PTR info$[rbp+28], 255 ; 000000ffH
|
|
|
|
; 8245 : 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
|
|
|
|
; 8246 : if (p == NULL) {
|
|
|
|
00074 48 83 7d 08 00 cmp QWORD PTR p$[rbp], 0
|
|
00079 75 14 jne SHORT $LN2@stbi__bmp_
|
|
|
|
; 8247 : 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
|
|
|
|
; 8248 : return 0;
|
|
|
|
00088 33 c0 xor eax, eax
|
|
0008a e9 91 00 00 00 jmp $LN1@stbi__bmp_
|
|
$LN2@stbi__bmp_:
|
|
|
|
; 8249 : }
|
|
; 8250 : 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_
|
|
|
|
; 8251 : *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_:
|
|
|
|
; 8252 : 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_
|
|
|
|
; 8253 : *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_:
|
|
|
|
; 8254 : 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_
|
|
|
|
; 8255 : 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_
|
|
|
|
; 8256 : *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_:
|
|
|
|
; 8257 : else
|
|
; 8258 : *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_:
|
|
|
|
; 8259 : }
|
|
; 8260 : return 1;
|
|
|
|
0011b b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__bmp_:
|
|
|
|
; 8261 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 6260 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 6261 : stbi_uc *out;
|
|
; 6262 : 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
|
|
|
|
; 6263 : stbi_uc pal[256][4];
|
|
; 6264 : int psize = 0, i, j, width;
|
|
|
|
00078 c7 85 e4 04 00
|
|
00 00 00 00 00 mov DWORD PTR psize$[rbp], 0
|
|
|
|
; 6265 : int flip_vertically, pad, target;
|
|
; 6266 : stbi__bmp_data info;
|
|
; 6267 : STBI_NOTUSED(ri);
|
|
; 6268 :
|
|
; 6269 : info.all_a = 255;
|
|
|
|
00082 c7 85 e4 05 00
|
|
00 ff 00 00 00 mov DWORD PTR info$[rbp+28], 255 ; 000000ffH
|
|
|
|
; 6270 : 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_
|
|
|
|
; 6271 : 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_:
|
|
|
|
; 6272 :
|
|
; 6273 : 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
|
|
|
|
; 6274 : 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
|
|
|
|
; 6275 :
|
|
; 6276 : 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_
|
|
|
|
; 6277 : 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_:
|
|
|
|
; 6278 : 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_
|
|
|
|
; 6279 : 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_:
|
|
|
|
; 6280 :
|
|
; 6281 : 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
|
|
|
|
; 6282 : 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
|
|
|
|
; 6283 : 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
|
|
|
|
; 6284 : 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
|
|
|
|
; 6285 : 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
|
|
|
|
; 6286 :
|
|
; 6287 : 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_
|
|
|
|
; 6288 : 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_
|
|
|
|
; 6289 : 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_:
|
|
|
|
; 6290 : } else {
|
|
|
|
001e0 eb 28 jmp SHORT $LN39@stbi__bmp_
|
|
$LN38@stbi__bmp_:
|
|
|
|
; 6291 : 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_
|
|
|
|
; 6292 : 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_:
|
|
|
|
; 6293 : }
|
|
; 6294 : 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_
|
|
|
|
; 6295 : // accept some number of extra bytes after the header, but if the offset points either to before
|
|
; 6296 : // the header ends or implies a large amount of extra data, reject the file as malformed
|
|
; 6297 : 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
|
|
|
|
; 6298 : s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original);
|
|
; 6299 : 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
|
|
|
|
; 6300 : 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
|
|
|
|
; 6301 : 256 *
|
|
; 6302 : 4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size.
|
|
; 6303 : 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_:
|
|
|
|
; 6304 : 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_:
|
|
|
|
; 6305 : }
|
|
; 6306 : // we established that bytes_read_so_far is positive and sensible.
|
|
; 6307 : // the first half of this test rejects offsets that are either too small positives, or
|
|
; 6308 : // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn
|
|
; 6309 : // ensures the number computed in the second half of the test can't overflow.
|
|
; 6310 : 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_:
|
|
|
|
; 6311 : info.offset - bytes_read_so_far > extra_data_limit) {
|
|
; 6312 : 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_
|
|
|
|
; 6313 : } else {
|
|
|
|
00302 eb 1f jmp SHORT $LN46@stbi__bmp_
|
|
$LN45@stbi__bmp_:
|
|
|
|
; 6314 : 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_:
|
|
|
|
; 6315 : }
|
|
; 6316 : }
|
|
; 6317 :
|
|
; 6318 : 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_
|
|
|
|
; 6319 : 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_:
|
|
|
|
; 6320 : else
|
|
; 6321 : 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_:
|
|
|
|
; 6322 : 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_
|
|
|
|
; 6323 : 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_:
|
|
|
|
; 6324 : else
|
|
; 6325 : 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_:
|
|
|
|
; 6326 :
|
|
; 6327 : // sanity-check size
|
|
; 6328 : 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_
|
|
|
|
; 6329 : 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_:
|
|
|
|
; 6330 :
|
|
; 6331 : 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
|
|
|
|
; 6332 : if (!out)
|
|
|
|
00427 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0
|
|
0042c 75 34 jne SHORT $LN53@stbi__bmp_
|
|
|
|
; 6333 : 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_:
|
|
|
|
; 6334 : 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_
|
|
|
|
; 6335 : int z = 0;
|
|
|
|
0046f c7 85 64 06 00
|
|
00 00 00 00 00 mov DWORD PTR z$8[rbp], 0
|
|
|
|
; 6336 : 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_:
|
|
|
|
; 6337 : 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
|
|
|
|
; 6338 : 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_:
|
|
|
|
; 6339 : }
|
|
; 6340 : 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_
|
|
|
|
; 6341 : 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
|
|
|
|
; 6342 : 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
|
|
|
|
; 6343 : 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
|
|
|
|
; 6344 : 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_
|
|
|
|
; 6345 : 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_:
|
|
|
|
; 6346 : 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
|
|
|
|
; 6347 : }
|
|
|
|
005a0 e9 34 ff ff ff jmp $LN2@stbi__bmp_
|
|
$LN3@stbi__bmp_:
|
|
|
|
; 6348 : 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
|
|
|
|
; 6349 : psize * (info.hsz == 12 ? 3 : 4));
|
|
; 6350 : 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_
|
|
|
|
; 6351 : 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_:
|
|
|
|
; 6352 : 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_
|
|
|
|
; 6353 : 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_:
|
|
|
|
; 6354 : 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_
|
|
|
|
; 6355 : 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_:
|
|
|
|
; 6356 : else {
|
|
; 6357 : 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
|
|
|
|
; 6358 : 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_:
|
|
|
|
; 6359 : }
|
|
; 6360 : 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
|
|
|
|
; 6361 : 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_
|
|
|
|
; 6362 : 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_
|
|
|
|
; 6363 : 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
|
|
|
|
; 6364 : 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_
|
|
|
|
; 6365 : 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
|
|
|
|
; 6366 : 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
|
|
|
|
; 6367 : 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
|
|
|
|
; 6368 : 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
|
|
|
|
; 6369 : 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_
|
|
|
|
; 6370 : 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_:
|
|
|
|
; 6371 : 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_
|
|
|
|
; 6372 : break;
|
|
|
|
00829 eb 3b jmp SHORT $LN9@stbi__bmp_
|
|
$LN68@stbi__bmp_:
|
|
|
|
; 6373 : 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_
|
|
|
|
; 6374 : bit_offset = 7;
|
|
|
|
00842 c7 85 84 06 00
|
|
00 07 00 00 00 mov DWORD PTR bit_offset$9[rbp], 7
|
|
|
|
; 6375 : 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_:
|
|
|
|
; 6376 : }
|
|
; 6377 : }
|
|
|
|
00861 e9 a2 fe ff ff jmp $LN8@stbi__bmp_
|
|
$LN9@stbi__bmp_:
|
|
|
|
; 6378 : 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
|
|
|
|
; 6379 : }
|
|
|
|
00879 e9 3b fe ff ff jmp $LN5@stbi__bmp_
|
|
$LN6@stbi__bmp_:
|
|
|
|
; 6380 : } else {
|
|
|
|
0087e e9 b5 02 00 00 jmp $LN66@stbi__bmp_
|
|
$LN65@stbi__bmp_:
|
|
|
|
; 6381 : 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_
|
|
|
|
; 6382 : 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_
|
|
|
|
; 6383 : 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
|
|
|
|
; 6384 : 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_
|
|
|
|
; 6385 : 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
|
|
|
|
; 6386 : 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_:
|
|
|
|
; 6387 : }
|
|
; 6388 : 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
|
|
|
|
; 6389 : 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
|
|
|
|
; 6390 : 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
|
|
|
|
; 6391 : 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_
|
|
|
|
; 6392 : 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_:
|
|
|
|
; 6393 : 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_
|
|
|
|
; 6394 : break;
|
|
|
|
00a0d e9 0e 01 00 00 jmp $LN15@stbi__bmp_
|
|
$LN72@stbi__bmp_:
|
|
|
|
; 6395 : 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
|
|
|
|
; 6396 : 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
|
|
|
|
; 6397 : 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
|
|
|
|
; 6398 : 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
|
|
|
|
; 6399 : 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_
|
|
|
|
; 6400 : 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_:
|
|
|
|
; 6401 : }
|
|
|
|
00b1b e9 9f fd ff ff jmp $LN14@stbi__bmp_
|
|
$LN15@stbi__bmp_:
|
|
|
|
; 6402 : 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
|
|
|
|
; 6403 : }
|
|
|
|
00b33 e9 57 fd ff ff jmp $LN11@stbi__bmp_
|
|
$LN12@stbi__bmp_:
|
|
$LN66@stbi__bmp_:
|
|
|
|
; 6404 : }
|
|
; 6405 : } else {
|
|
|
|
00b38 e9 af 05 00 00 jmp $LN55@stbi__bmp_
|
|
$LN54@stbi__bmp_:
|
|
|
|
; 6406 : 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
|
|
|
|
; 6407 : 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
|
|
|
|
; 6408 : int z = 0;
|
|
|
|
00b8d c7 85 24 08 00
|
|
00 00 00 00 00 mov DWORD PTR z$22[rbp], 0
|
|
|
|
; 6409 : int easy = 0;
|
|
|
|
00b97 c7 85 44 08 00
|
|
00 00 00 00 00 mov DWORD PTR easy$23[rbp], 0
|
|
|
|
; 6410 : 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
|
|
|
|
; 6411 : 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_
|
|
|
|
; 6412 : 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_:
|
|
|
|
; 6413 : 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_
|
|
|
|
; 6414 : 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_:
|
|
|
|
; 6415 : else /* bpp = 32 and pad = 0 */
|
|
; 6416 : 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_:
|
|
|
|
; 6417 : 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
|
|
|
|
; 6418 : 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_
|
|
|
|
; 6419 : 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_:
|
|
|
|
; 6420 : } 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_
|
|
|
|
; 6421 : 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_
|
|
|
|
; 6422 : 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_:
|
|
|
|
; 6423 : }
|
|
; 6424 : 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_
|
|
|
|
; 6425 : 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_:
|
|
|
|
; 6426 : 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
|
|
|
|
; 6427 : 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_:
|
|
|
|
; 6428 : }
|
|
; 6429 : // right shift amt to put high bit in position #7
|
|
; 6430 : 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
|
|
|
|
; 6431 : 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
|
|
|
|
; 6432 : 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
|
|
|
|
; 6433 : 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
|
|
|
|
; 6434 : 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
|
|
|
|
; 6435 : 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
|
|
|
|
; 6436 : 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
|
|
|
|
; 6437 : 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
|
|
|
|
; 6438 : 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_:
|
|
|
|
; 6439 : 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
|
|
|
|
; 6440 : 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_:
|
|
|
|
; 6441 : }
|
|
; 6442 : }
|
|
; 6443 : 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_
|
|
|
|
; 6444 : 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_
|
|
|
|
; 6445 : 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_
|
|
|
|
; 6446 : unsigned char a;
|
|
; 6447 : 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
|
|
|
|
; 6448 : 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
|
|
|
|
; 6449 : 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
|
|
|
|
; 6450 : 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
|
|
|
|
; 6451 : 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
|
|
|
|
; 6452 : 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
|
|
|
|
; 6453 : 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_
|
|
|
|
; 6454 : 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_:
|
|
|
|
; 6455 : }
|
|
|
|
00ef8 e9 f6 fe ff ff jmp $LN20@stbi__bmp_
|
|
$LN21@stbi__bmp_:
|
|
|
|
; 6456 : } else {
|
|
|
|
00efd e9 d2 01 00 00 jmp $LN88@stbi__bmp_
|
|
$LN87@stbi__bmp_:
|
|
|
|
; 6457 : 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
|
|
|
|
; 6458 : 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_
|
|
|
|
; 6459 : 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
|
|
|
|
; 6460 : (stbi__uint32)stbi__get16le(s) :
|
|
; 6461 : stbi__get32le(s));
|
|
; 6462 : unsigned int a;
|
|
; 6463 : 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
|
|
|
|
; 6464 : stbi__shiftsigned(v & mr, rshift, rcount));
|
|
; 6465 : 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
|
|
|
|
; 6466 : stbi__shiftsigned(v & mg, gshift, gcount));
|
|
; 6467 : 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
|
|
|
|
; 6468 : stbi__shiftsigned(v & mb, bshift, bcount));
|
|
; 6469 : 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
|
|
|
|
; 6470 : 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
|
|
|
|
; 6471 : 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_
|
|
|
|
; 6472 : 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_:
|
|
|
|
; 6473 : }
|
|
|
|
010cf e9 46 fe ff ff jmp $LN23@stbi__bmp_
|
|
$LN24@stbi__bmp_:
|
|
$LN88@stbi__bmp_:
|
|
|
|
; 6474 : }
|
|
; 6475 : 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
|
|
|
|
; 6476 : }
|
|
|
|
010e7 e9 ca fc ff ff jmp $LN17@stbi__bmp_
|
|
$LN18@stbi__bmp_:
|
|
$LN55@stbi__bmp_:
|
|
|
|
; 6477 : }
|
|
; 6478 :
|
|
; 6479 : // if alpha channel is all 0s, replace with all 255s
|
|
; 6480 : 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_
|
|
|
|
; 6481 : 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_
|
|
|
|
; 6482 : 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_:
|
|
|
|
; 6483 :
|
|
; 6484 : 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_
|
|
|
|
; 6485 : stbi_uc t;
|
|
; 6486 : 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_
|
|
|
|
; 6487 : 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
|
|
|
|
; 6488 : 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
|
|
|
|
; 6489 : 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_
|
|
|
|
; 6490 : 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
|
|
|
|
; 6491 : 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
|
|
|
|
; 6492 : 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
|
|
|
|
; 6493 : }
|
|
|
|
0126f eb 84 jmp SHORT $LN32@stbi__bmp_
|
|
$LN33@stbi__bmp_:
|
|
|
|
; 6494 : }
|
|
|
|
01271 e9 eb fe ff ff jmp $LN29@stbi__bmp_
|
|
$LN30@stbi__bmp_:
|
|
$LN92@stbi__bmp_:
|
|
|
|
; 6495 : }
|
|
; 6496 :
|
|
; 6497 : 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_
|
|
|
|
; 6498 : 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
|
|
|
|
; 6499 : if (out == NULL)
|
|
|
|
012bf 48 83 7d 08 00 cmp QWORD PTR out$[rbp], 0
|
|
012c4 75 06 jne SHORT $LN94@stbi__bmp_
|
|
|
|
; 6500 : 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_:
|
|
|
|
; 6501 : }
|
|
; 6502 :
|
|
; 6503 : *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
|
|
|
|
; 6504 : *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
|
|
|
|
; 6505 : 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_
|
|
|
|
; 6506 : *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_:
|
|
|
|
; 6507 : return out;
|
|
|
|
0130e 48 8b 45 08 mov rax, QWORD PTR out$[rbp]
|
|
$LN1@stbi__bmp_:
|
|
|
|
; 6508 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__bmp_test
|
|
_TEXT SEGMENT
|
|
r$ = 4
|
|
s$ = 256
|
|
stbi__bmp_test PROC ; COMDAT
|
|
|
|
; 6059 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 6060 : 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
|
|
|
|
; 6061 : 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
|
|
|
|
; 6062 : return r;
|
|
|
|
0003c 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
|
|
; 6063 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__png_is16
|
|
_TEXT SEGMENT
|
|
p$ = 8
|
|
__$ArrayPad$ = 248
|
|
s$ = 288
|
|
stbi__png_is16 PROC ; COMDAT
|
|
|
|
; 6025 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00049 90 npad 1
|
|
|
|
; 6026 : stbi__png p;
|
|
; 6027 : 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
|
|
|
|
; 6028 : 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_
|
|
|
|
; 6029 : return 0;
|
|
|
|
0006a 33 c0 xor eax, eax
|
|
0006c eb 19 jmp SHORT $LN1@stbi__png_
|
|
$LN2@stbi__png_:
|
|
|
|
; 6030 : if (p.depth != 16) {
|
|
|
|
0006e 83 7d 28 10 cmp DWORD PTR p$[rbp+32], 16
|
|
00072 74 0e je SHORT $LN3@stbi__png_
|
|
|
|
; 6031 : 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
|
|
|
|
; 6032 : return 0;
|
|
|
|
0007e 33 c0 xor eax, eax
|
|
00080 eb 05 jmp SHORT $LN1@stbi__png_
|
|
$LN3@stbi__png_:
|
|
|
|
; 6033 : }
|
|
; 6034 : return 1;
|
|
|
|
00082 b8 01 00 00 00 mov eax, 1
|
|
$LN1@stbi__png_:
|
|
|
|
; 6035 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__png_info
|
|
_TEXT SEGMENT
|
|
p$ = 8
|
|
__$ArrayPad$ = 248
|
|
s$ = 288
|
|
x$ = 296
|
|
y$ = 304
|
|
comp$ = 312
|
|
stbi__png_info PROC ; COMDAT
|
|
|
|
; 6018 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 6019 : stbi__png p;
|
|
; 6020 : 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
|
|
|
|
; 6021 : 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
|
|
|
|
; 6022 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 5988 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 5989 : stbi__png p;
|
|
; 5990 : 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
|
|
|
|
; 5991 : 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
|
|
|
|
; 5992 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__png_test
|
|
_TEXT SEGMENT
|
|
r$ = 4
|
|
s$ = 256
|
|
stbi__png_test PROC ; COMDAT
|
|
|
|
; 5995 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 5996 : int r;
|
|
; 5997 : 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
|
|
|
|
; 5998 : 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
|
|
|
|
; 5999 : return r;
|
|
|
|
0003c 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
|
|
; 6000 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__jpeg_info
|
|
_TEXT SEGMENT
|
|
result$ = 4
|
|
j$ = 40
|
|
s$ = 288
|
|
x$ = 296
|
|
y$ = 304
|
|
comp$ = 312
|
|
stbi__jpeg_info PROC ; COMDAT
|
|
|
|
; 4599 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 4600 : int result;
|
|
; 4601 : 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
|
|
|
|
; 4602 : if (!j)
|
|
|
|
0003d 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0
|
|
00042 75 0e jne SHORT $LN2@stbi__jpeg
|
|
|
|
; 4603 : 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:
|
|
|
|
; 4604 : 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
|
|
|
|
; 4605 : 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
|
|
|
|
; 4606 : 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
|
|
|
|
; 4607 : 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
|
|
|
|
; 4608 : return result;
|
|
|
|
0009e 8b 45 04 mov eax, DWORD PTR result$[rbp]
|
|
$LN1@stbi__jpeg:
|
|
|
|
; 4609 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 4554 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 4555 : unsigned char *result;
|
|
; 4556 : 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
|
|
|
|
; 4557 : if (!j)
|
|
|
|
0003d 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0
|
|
00042 75 31 jne SHORT $LN2@stbi__jpeg
|
|
|
|
; 4558 : 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:
|
|
|
|
; 4559 : 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
|
|
|
|
; 4560 : STBI_NOTUSED(ri);
|
|
; 4561 : 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
|
|
|
|
; 4562 : 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
|
|
|
|
; 4563 : 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
|
|
|
|
; 4564 : 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
|
|
|
|
; 4565 : return result;
|
|
|
|
000d6 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi__jpeg:
|
|
|
|
; 4566 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__jpeg_test
|
|
_TEXT SEGMENT
|
|
r$ = 4
|
|
j$ = 40
|
|
s$ = 288
|
|
stbi__jpeg_test PROC ; COMDAT
|
|
|
|
; 4569 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 4570 : int r;
|
|
; 4571 : 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
|
|
|
|
; 4572 : if (!j)
|
|
|
|
0002e 48 83 7d 28 00 cmp QWORD PTR j$[rbp], 0
|
|
00033 75 0e jne SHORT $LN2@stbi__jpeg
|
|
|
|
; 4573 : 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:
|
|
|
|
; 4574 : 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
|
|
|
|
; 4575 : 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
|
|
|
|
; 4576 : 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
|
|
|
|
; 4577 : 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
|
|
|
|
; 4578 : 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
|
|
|
|
; 4579 : 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
|
|
|
|
; 4580 : return r;
|
|
|
|
00096 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
$LN1@stbi__jpeg:
|
|
|
|
; 4581 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__rewind
|
|
_TEXT SEGMENT
|
|
s$ = 224
|
|
stbi__rewind PROC ; COMDAT
|
|
|
|
; 900 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 901 : // conceptually rewind SHOULD rewind to the beginning of the stream,
|
|
; 902 : // but we just rewind to the beginning of the initial buffer, because
|
|
; 903 : // we only use it after doing 'test', which only ever looks at at most 92 bytes
|
|
; 904 : 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
|
|
|
|
; 905 : 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
|
|
|
|
; 906 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__start_file
|
|
_TEXT SEGMENT
|
|
s$ = 224
|
|
f$ = 232
|
|
stbi__start_file PROC ; COMDAT
|
|
|
|
; 891 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00024 90 npad 1
|
|
|
|
; 892 : 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
|
|
|
|
; 893 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__stdio_eof
|
|
_TEXT SEGMENT
|
|
tv70 = 192
|
|
user$ = 240
|
|
stbi__stdio_eof PROC ; COMDAT
|
|
|
|
; 880 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 881 : 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]
|
|
|
|
; 882 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__stdio_skip
|
|
_TEXT SEGMENT
|
|
ch$ = 4
|
|
user$ = 256
|
|
n$ = 264
|
|
stbi__stdio_skip PROC ; COMDAT
|
|
|
|
; 870 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00023 90 npad 1
|
|
|
|
; 871 : int ch;
|
|
; 872 : 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
|
|
|
|
; 873 : 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
|
|
|
|
; 874 : if (ch != EOF) {
|
|
|
|
0004e 83 7d 04 ff cmp DWORD PTR ch$[rbp], -1
|
|
00052 74 11 je SHORT $LN2@stbi__stdi
|
|
|
|
; 875 : 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:
|
|
|
|
; 876 : }
|
|
; 877 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__stdio_read
|
|
_TEXT SEGMENT
|
|
user$ = 224
|
|
data$ = 232
|
|
size$ = 240
|
|
stbi__stdio_read PROC ; COMDAT
|
|
|
|
; 865 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 866 : 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
|
|
|
|
; 867 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__start_callbacks
|
|
_TEXT SEGMENT
|
|
tv72 = 192
|
|
s$ = 240
|
|
c$ = 248
|
|
user$ = 256
|
|
stbi__start_callbacks PROC ; COMDAT
|
|
|
|
; 851 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002a 90 npad 1
|
|
|
|
; 852 : 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
|
|
|
|
; 853 : 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
|
|
|
|
; 854 : 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
|
|
|
|
; 855 : 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
|
|
|
|
; 856 : 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
|
|
|
|
; 857 : 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
|
|
|
|
; 858 : 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
|
|
|
|
; 859 : 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
|
|
|
|
; 860 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__start_mem
|
|
_TEXT SEGMENT
|
|
tv72 = 192
|
|
s$ = 240
|
|
buffer$ = 248
|
|
len$ = 256
|
|
stbi__start_mem PROC ; COMDAT
|
|
|
|
; 841 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00029 90 npad 1
|
|
|
|
; 842 : 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
|
|
|
|
; 843 : 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
|
|
|
|
; 844 : 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
|
|
|
|
; 845 : 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
|
|
|
|
; 846 : 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
|
|
|
|
; 847 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__refill_buffer
|
|
_TEXT SEGMENT
|
|
n$ = 4
|
|
s$ = 256
|
|
stbi__refill_buffer PROC ; COMDAT
|
|
|
|
; 1672 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1673 : 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
|
|
|
|
; 1674 : 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
|
|
|
|
; 1675 : if (n == 0) {
|
|
|
|
0008a 83 7d 04 00 cmp DWORD PTR n$[rbp], 0
|
|
0008e 75 53 jne SHORT $LN2@stbi__refi
|
|
|
|
; 1676 : // at end of file, treat same as if from memory, but need to handle case
|
|
; 1677 : // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file
|
|
; 1678 : 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
|
|
|
|
; 1679 : 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
|
|
|
|
; 1680 : 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
|
|
|
|
; 1681 : *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
|
|
|
|
; 1682 : } else {
|
|
|
|
000e1 eb 37 jmp SHORT $LN3@stbi__refi
|
|
$LN2@stbi__refi:
|
|
|
|
; 1683 : 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
|
|
|
|
; 1684 : 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:
|
|
|
|
; 1685 : }
|
|
; 1686 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__sse2_available
|
|
_TEXT SEGMENT
|
|
info3$ = 4
|
|
tv68 = 212
|
|
stbi__sse2_available PROC ; COMDAT
|
|
|
|
; 771 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001b 90 npad 1
|
|
|
|
; 772 : int info3 = stbi__cpuid3();
|
|
|
|
0001c e8 00 00 00 00 call stbi__cpuid3
|
|
00021 89 45 04 mov DWORD PTR info3$[rbp], eax
|
|
|
|
; 773 : 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]
|
|
|
|
; 774 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi__cpuid3
|
|
_TEXT SEGMENT
|
|
info$ = 8
|
|
__$ArrayPad$ = 232
|
|
stbi__cpuid3 PROC ; COMDAT
|
|
|
|
; 749 : {
|
|
|
|
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:__F562FA57_stb_image@h
|
|
00039 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0003e 90 npad 1
|
|
|
|
; 750 : int info[4];
|
|
; 751 : __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
|
|
|
|
; 752 : 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]
|
|
|
|
; 753 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_zlib_decode_noheader_buffer
|
|
_TEXT SEGMENT
|
|
a$ = 16
|
|
__$ArrayPad$ = 5672
|
|
obuffer$ = 5712
|
|
olen$ = 5720
|
|
ibuffer$ = 5728
|
|
ilen$ = 5736
|
|
stbi_zlib_decode_noheader_buffer PROC ; COMDAT
|
|
|
|
; 5179 : {
|
|
|
|
$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 68 16 00 00 mov eax, 5736 ; 00001668H
|
|
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 0e 04 00 00 mov ecx, 1038 ; 0000040eH
|
|
00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00036 f3 ab rep stosd
|
|
00038 48 8b 8c 24 88
|
|
16 00 00 mov rcx, QWORD PTR [rsp+5768]
|
|
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 28 16
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
00051 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h
|
|
00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0005d 90 npad 1
|
|
|
|
; 5180 : stbi__zbuf a;
|
|
; 5181 : a.zbuffer = (stbi_uc *)ibuffer;
|
|
|
|
0005e 48 8b 85 60 16
|
|
00 00 mov rax, QWORD PTR ibuffer$[rbp]
|
|
00065 48 89 45 10 mov QWORD PTR a$[rbp], rax
|
|
|
|
; 5182 : a.zbuffer_end = (stbi_uc *)ibuffer + ilen;
|
|
|
|
00069 48 63 85 68 16
|
|
00 00 movsxd rax, DWORD PTR ilen$[rbp]
|
|
00070 48 8b 8d 60 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
|
|
|
|
; 5183 : 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 58 16
|
|
00 00 mov r8d, DWORD PTR olen$[rbp]
|
|
00093 48 8b 95 50 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_
|
|
|
|
; 5184 : return (int)(a.zout - a.zout_start);
|
|
|
|
000a7 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40]
|
|
000ab 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32]
|
|
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_:
|
|
|
|
; 5185 : else
|
|
; 5186 : return -1;
|
|
|
|
000b9 b8 ff ff ff ff mov eax, -1
|
|
$LN3@stbi_zlib_:
|
|
$LN1@stbi_zlib_:
|
|
|
|
; 5187 : }
|
|
|
|
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 28 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 38 16
|
|
00 00 lea rsp, QWORD PTR [rbp+5688]
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_zlib_decode_noheader_malloc
|
|
_TEXT SEGMENT
|
|
a$ = 16
|
|
p$ = 4152
|
|
__$ArrayPad$ = 5704
|
|
buffer$ = 5744
|
|
len$ = 5752
|
|
outlen$ = 5760
|
|
stbi_zlib_decode_noheader_malloc PROC ; COMDAT
|
|
|
|
; 5161 : {
|
|
|
|
$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 88 16 00 00 mov eax, 5768 ; 00001688H
|
|
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 16 04 00 00 mov ecx, 1046 ; 00000416H
|
|
0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00031 f3 ab rep stosd
|
|
00033 48 8b 8c 24 a8
|
|
16 00 00 mov rcx, QWORD PTR [rsp+5800]
|
|
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 48 16
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
0004c 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 5162 : stbi__zbuf a;
|
|
; 5163 : 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 38 10
|
|
00 00 mov QWORD PTR p$[rbp], rax
|
|
|
|
; 5164 : if (p == NULL)
|
|
|
|
0006a 48 83 bd 38 10
|
|
00 00 00 cmp QWORD PTR p$[rbp], 0
|
|
00072 75 07 jne SHORT $LN2@stbi_zlib_
|
|
|
|
; 5165 : return NULL;
|
|
|
|
00074 33 c0 xor eax, eax
|
|
00076 e9 81 00 00 00 jmp $LN1@stbi_zlib_
|
|
$LN2@stbi_zlib_:
|
|
|
|
; 5166 : a.zbuffer = (stbi_uc *)buffer;
|
|
|
|
0007b 48 8b 85 70 16
|
|
00 00 mov rax, QWORD PTR buffer$[rbp]
|
|
00082 48 89 45 10 mov QWORD PTR a$[rbp], rax
|
|
|
|
; 5167 : a.zbuffer_end = (stbi_uc *)buffer + len;
|
|
|
|
00086 48 63 85 78 16
|
|
00 00 movsxd rax, DWORD PTR len$[rbp]
|
|
0008d 48 8b 8d 70 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
|
|
|
|
; 5168 : 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 38 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_
|
|
|
|
; 5169 : if (outlen)
|
|
|
|
000c6 48 83 bd 80 16
|
|
00 00 00 cmp QWORD PTR outlen$[rbp], 0
|
|
000ce 74 17 je SHORT $LN5@stbi_zlib_
|
|
|
|
; 5170 : *outlen = (int)(a.zout - a.zout_start);
|
|
|
|
000d0 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40]
|
|
000d4 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32]
|
|
000d8 48 2b c8 sub rcx, rax
|
|
000db 48 8b c1 mov rax, rcx
|
|
000de 48 8b 8d 80 16
|
|
00 00 mov rcx, QWORD PTR outlen$[rbp]
|
|
000e5 89 01 mov DWORD PTR [rcx], eax
|
|
$LN5@stbi_zlib_:
|
|
|
|
; 5171 : return a.zout_start;
|
|
|
|
000e7 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40]
|
|
000eb eb 0f jmp SHORT $LN1@stbi_zlib_
|
|
|
|
; 5172 : } else {
|
|
|
|
000ed eb 0d jmp SHORT $LN4@stbi_zlib_
|
|
$LN3@stbi_zlib_:
|
|
|
|
; 5173 : STBI_FREE(a.zout_start);
|
|
|
|
000ef 48 8b 4d 38 mov rcx, QWORD PTR a$[rbp+40]
|
|
000f3 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_free
|
|
000f9 90 npad 1
|
|
|
|
; 5174 : return NULL;
|
|
|
|
000fa 33 c0 xor eax, eax
|
|
$LN4@stbi_zlib_:
|
|
$LN1@stbi_zlib_:
|
|
|
|
; 5175 : }
|
|
; 5176 : }
|
|
|
|
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 48 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 58 16
|
|
00 00 lea rsp, QWORD PTR [rbp+5720]
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_zlib_decode_buffer
|
|
_TEXT SEGMENT
|
|
a$ = 16
|
|
__$ArrayPad$ = 5672
|
|
obuffer$ = 5712
|
|
olen$ = 5720
|
|
ibuffer$ = 5728
|
|
ilen$ = 5736
|
|
stbi_zlib_decode_buffer PROC ; COMDAT
|
|
|
|
; 5150 : {
|
|
|
|
$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 68 16 00 00 mov eax, 5736 ; 00001668H
|
|
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 0e 04 00 00 mov ecx, 1038 ; 0000040eH
|
|
00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00036 f3 ab rep stosd
|
|
00038 48 8b 8c 24 88
|
|
16 00 00 mov rcx, QWORD PTR [rsp+5768]
|
|
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 28 16
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
00051 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h
|
|
00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0005d 90 npad 1
|
|
|
|
; 5151 : stbi__zbuf a;
|
|
; 5152 : a.zbuffer = (stbi_uc *)ibuffer;
|
|
|
|
0005e 48 8b 85 60 16
|
|
00 00 mov rax, QWORD PTR ibuffer$[rbp]
|
|
00065 48 89 45 10 mov QWORD PTR a$[rbp], rax
|
|
|
|
; 5153 : a.zbuffer_end = (stbi_uc *)ibuffer + ilen;
|
|
|
|
00069 48 63 85 68 16
|
|
00 00 movsxd rax, DWORD PTR ilen$[rbp]
|
|
00070 48 8b 8d 60 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
|
|
|
|
; 5154 : 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 58 16
|
|
00 00 mov r8d, DWORD PTR olen$[rbp]
|
|
00093 48 8b 95 50 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_
|
|
|
|
; 5155 : return (int)(a.zout - a.zout_start);
|
|
|
|
000a7 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40]
|
|
000ab 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32]
|
|
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_:
|
|
|
|
; 5156 : else
|
|
; 5157 : return -1;
|
|
|
|
000b9 b8 ff ff ff ff mov eax, -1
|
|
$LN3@stbi_zlib_:
|
|
$LN1@stbi_zlib_:
|
|
|
|
; 5158 : }
|
|
|
|
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 28 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 38 16
|
|
00 00 lea rsp, QWORD PTR [rbp+5688]
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_zlib_decode_malloc
|
|
_TEXT SEGMENT
|
|
buffer$ = 224
|
|
len$ = 232
|
|
outlen$ = 240
|
|
stbi_zlib_decode_malloc PROC ; COMDAT
|
|
|
|
; 5125 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00028 90 npad 1
|
|
|
|
; 5126 : 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
|
|
|
|
; 5127 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_zlib_decode_malloc_guesssize_headerflag
|
|
_TEXT SEGMENT
|
|
a$ = 16
|
|
p$ = 4152
|
|
__$ArrayPad$ = 5704
|
|
buffer$ = 5744
|
|
len$ = 5752
|
|
initial_size$ = 5760
|
|
outlen$ = 5768
|
|
parse_header$ = 5776
|
|
stbi_zlib_decode_malloc_guesssize_headerflag PROC ; COMDAT
|
|
|
|
; 5132 : {
|
|
|
|
$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 88 16 00 00 mov eax, 5768 ; 00001688H
|
|
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 16 04 00 00 mov ecx, 1046 ; 00000416H
|
|
00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00036 f3 ab rep stosd
|
|
00038 48 8b 8c 24 a8
|
|
16 00 00 mov rcx, QWORD PTR [rsp+5800]
|
|
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 48 16
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
00051 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h
|
|
00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0005d 90 npad 1
|
|
|
|
; 5133 : stbi__zbuf a;
|
|
; 5134 : char *p = (char *)stbi__malloc(initial_size);
|
|
|
|
0005e 48 63 85 80 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 38 10
|
|
00 00 mov QWORD PTR p$[rbp], rax
|
|
|
|
; 5135 : if (p == NULL)
|
|
|
|
00074 48 83 bd 38 10
|
|
00 00 00 cmp QWORD PTR p$[rbp], 0
|
|
0007c 75 07 jne SHORT $LN2@stbi_zlib_
|
|
|
|
; 5136 : return NULL;
|
|
|
|
0007e 33 c0 xor eax, eax
|
|
00080 e9 84 00 00 00 jmp $LN1@stbi_zlib_
|
|
$LN2@stbi_zlib_:
|
|
|
|
; 5137 : a.zbuffer = (stbi_uc *)buffer;
|
|
|
|
00085 48 8b 85 70 16
|
|
00 00 mov rax, QWORD PTR buffer$[rbp]
|
|
0008c 48 89 45 10 mov QWORD PTR a$[rbp], rax
|
|
|
|
; 5138 : a.zbuffer_end = (stbi_uc *)buffer + len;
|
|
|
|
00090 48 63 85 78 16
|
|
00 00 movsxd rax, DWORD PTR len$[rbp]
|
|
00097 48 8b 8d 70 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
|
|
|
|
; 5139 : if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) {
|
|
|
|
000a8 8b 85 90 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 80 16
|
|
00 00 mov r8d, DWORD PTR initial_size$[rbp]
|
|
000bf 48 8b 95 38 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_
|
|
|
|
; 5140 : if (outlen)
|
|
|
|
000d3 48 83 bd 88 16
|
|
00 00 00 cmp QWORD PTR outlen$[rbp], 0
|
|
000db 74 17 je SHORT $LN5@stbi_zlib_
|
|
|
|
; 5141 : *outlen = (int)(a.zout - a.zout_start);
|
|
|
|
000dd 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40]
|
|
000e1 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32]
|
|
000e5 48 2b c8 sub rcx, rax
|
|
000e8 48 8b c1 mov rax, rcx
|
|
000eb 48 8b 8d 88 16
|
|
00 00 mov rcx, QWORD PTR outlen$[rbp]
|
|
000f2 89 01 mov DWORD PTR [rcx], eax
|
|
$LN5@stbi_zlib_:
|
|
|
|
; 5142 : return a.zout_start;
|
|
|
|
000f4 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40]
|
|
000f8 eb 0f jmp SHORT $LN1@stbi_zlib_
|
|
|
|
; 5143 : } else {
|
|
|
|
000fa eb 0d jmp SHORT $LN4@stbi_zlib_
|
|
$LN3@stbi_zlib_:
|
|
|
|
; 5144 : STBI_FREE(a.zout_start);
|
|
|
|
000fc 48 8b 4d 38 mov rcx, QWORD PTR a$[rbp+40]
|
|
00100 ff 15 00 00 00
|
|
00 call QWORD PTR __imp_free
|
|
00106 90 npad 1
|
|
|
|
; 5145 : return NULL;
|
|
|
|
00107 33 c0 xor eax, eax
|
|
$LN4@stbi_zlib_:
|
|
$LN1@stbi_zlib_:
|
|
|
|
; 5146 : }
|
|
; 5147 : }
|
|
|
|
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 48 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 58 16
|
|
00 00 lea rsp, QWORD PTR [rbp+5720]
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_zlib_decode_malloc_guesssize
|
|
_TEXT SEGMENT
|
|
a$ = 16
|
|
p$ = 4152
|
|
__$ArrayPad$ = 5704
|
|
buffer$ = 5744
|
|
len$ = 5752
|
|
initial_size$ = 5760
|
|
outlen$ = 5768
|
|
stbi_zlib_decode_malloc_guesssize PROC ; COMDAT
|
|
|
|
; 5107 : {
|
|
|
|
$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 88 16 00 00 mov eax, 5768 ; 00001688H
|
|
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 16 04 00 00 mov ecx, 1046 ; 00000416H
|
|
00031 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
00036 f3 ab rep stosd
|
|
00038 48 8b 8c 24 a8
|
|
16 00 00 mov rcx, QWORD PTR [rsp+5800]
|
|
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 48 16
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
00051 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__F562FA57_stb_image@h
|
|
00058 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0005d 90 npad 1
|
|
|
|
; 5108 : stbi__zbuf a;
|
|
; 5109 : char *p = (char *)stbi__malloc(initial_size);
|
|
|
|
0005e 48 63 85 80 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 38 10
|
|
00 00 mov QWORD PTR p$[rbp], rax
|
|
|
|
; 5110 : if (p == NULL)
|
|
|
|
00074 48 83 bd 38 10
|
|
00 00 00 cmp QWORD PTR p$[rbp], 0
|
|
0007c 75 07 jne SHORT $LN2@stbi_zlib_
|
|
|
|
; 5111 : return NULL;
|
|
|
|
0007e 33 c0 xor eax, eax
|
|
00080 e9 82 00 00 00 jmp $LN1@stbi_zlib_
|
|
$LN2@stbi_zlib_:
|
|
|
|
; 5112 : a.zbuffer = (stbi_uc *)buffer;
|
|
|
|
00085 48 8b 85 70 16
|
|
00 00 mov rax, QWORD PTR buffer$[rbp]
|
|
0008c 48 89 45 10 mov QWORD PTR a$[rbp], rax
|
|
|
|
; 5113 : a.zbuffer_end = (stbi_uc *)buffer + len;
|
|
|
|
00090 48 63 85 78 16
|
|
00 00 movsxd rax, DWORD PTR len$[rbp]
|
|
00097 48 8b 8d 70 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
|
|
|
|
; 5114 : 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 80 16
|
|
00 00 mov r8d, DWORD PTR initial_size$[rbp]
|
|
000bd 48 8b 95 38 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_
|
|
|
|
; 5115 : if (outlen)
|
|
|
|
000d1 48 83 bd 88 16
|
|
00 00 00 cmp QWORD PTR outlen$[rbp], 0
|
|
000d9 74 17 je SHORT $LN5@stbi_zlib_
|
|
|
|
; 5116 : *outlen = (int)(a.zout - a.zout_start);
|
|
|
|
000db 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40]
|
|
000df 48 8b 4d 30 mov rcx, QWORD PTR a$[rbp+32]
|
|
000e3 48 2b c8 sub rcx, rax
|
|
000e6 48 8b c1 mov rax, rcx
|
|
000e9 48 8b 8d 88 16
|
|
00 00 mov rcx, QWORD PTR outlen$[rbp]
|
|
000f0 89 01 mov DWORD PTR [rcx], eax
|
|
$LN5@stbi_zlib_:
|
|
|
|
; 5117 : return a.zout_start;
|
|
|
|
000f2 48 8b 45 38 mov rax, QWORD PTR a$[rbp+40]
|
|
000f6 eb 0f jmp SHORT $LN1@stbi_zlib_
|
|
|
|
; 5118 : } else {
|
|
|
|
000f8 eb 0d jmp SHORT $LN4@stbi_zlib_
|
|
$LN3@stbi_zlib_:
|
|
|
|
; 5119 : STBI_FREE(a.zout_start);
|
|
|
|
000fa 48 8b 4d 38 mov rcx, QWORD PTR a$[rbp+40]
|
|
000fe ff 15 00 00 00
|
|
00 call QWORD PTR __imp_free
|
|
00104 90 npad 1
|
|
|
|
; 5120 : return NULL;
|
|
|
|
00105 33 c0 xor eax, eax
|
|
$LN4@stbi_zlib_:
|
|
$LN1@stbi_zlib_:
|
|
|
|
; 5121 : }
|
|
; 5122 : }
|
|
|
|
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 48 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 58 16
|
|
00 00 lea rsp, QWORD PTR [rbp+5720]
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1160 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 1161 : 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
|
|
|
|
; 1162 : 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
|
|
|
|
; 1163 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 5631 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 5632 : 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
|
|
|
|
; 5633 : 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
|
|
|
|
; 5634 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_set_unpremultiply_on_load_thread
|
|
_TEXT SEGMENT
|
|
flag_true_if_should_unpremultiply$ = 224
|
|
stbi_set_unpremultiply_on_load_thread PROC ; COMDAT
|
|
|
|
; 5625 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 5626 : 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
|
|
|
|
; 5627 : 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
|
|
|
|
; 5628 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_set_flip_vertically_on_load
|
|
_TEXT SEGMENT
|
|
flag_true_if_should_flip$ = 224
|
|
stbi_set_flip_vertically_on_load PROC ; COMDAT
|
|
|
|
; 1150 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 1151 : 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
|
|
|
|
; 1152 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_convert_iphone_png_to_rgb
|
|
_TEXT SEGMENT
|
|
flag_true_if_should_convert$ = 224
|
|
stbi_convert_iphone_png_to_rgb PROC ; COMDAT
|
|
|
|
; 5613 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 5614 : 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
|
|
|
|
; 5615 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_set_unpremultiply_on_load
|
|
_TEXT SEGMENT
|
|
flag_true_if_should_unpremultiply$ = 224
|
|
stbi_set_unpremultiply_on_load PROC ; COMDAT
|
|
|
|
; 5608 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001e 90 npad 1
|
|
|
|
; 5609 : 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
|
|
|
|
; 5610 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8663 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00049 90 npad 1
|
|
|
|
; 8664 : int r;
|
|
; 8665 : stbi__context s;
|
|
; 8666 : 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
|
|
|
|
; 8667 : 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
|
|
|
|
; 8668 : 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
|
|
|
|
; 8669 : 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
|
|
|
|
; 8670 : return r;
|
|
|
|
00091 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
|
|
; 8671 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_is_16_bit
|
|
_TEXT SEGMENT
|
|
f$ = 8
|
|
result$ = 36
|
|
filename$ = 288
|
|
stbi_is_16_bit PROC ; COMDAT
|
|
|
|
; 8652 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 8653 : 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
|
|
|
|
; 8654 : int result;
|
|
; 8655 : if (!f)
|
|
|
|
00037 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
|
|
0003c 75 0e jne SHORT $LN2@stbi_is_16
|
|
|
|
; 8656 : 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:
|
|
|
|
; 8657 : 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
|
|
|
|
; 8658 : 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
|
|
|
|
; 8659 : return result;
|
|
|
|
00063 8b 45 24 mov eax, DWORD PTR result$[rbp]
|
|
$LN1@stbi_is_16:
|
|
|
|
; 8660 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8641 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 8642 : int r;
|
|
; 8643 : stbi__context s;
|
|
; 8644 : 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
|
|
|
|
; 8645 : 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
|
|
|
|
; 8646 : 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
|
|
|
|
; 8647 : 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
|
|
|
|
; 8648 : return r;
|
|
|
|
000b5 8b 45 04 mov eax, DWORD PTR r$[rbp]
|
|
|
|
; 8649 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_info
|
|
_TEXT SEGMENT
|
|
f$ = 8
|
|
result$ = 36
|
|
filename$ = 288
|
|
x$ = 296
|
|
y$ = 304
|
|
comp$ = 312
|
|
stbi_info PROC ; COMDAT
|
|
|
|
; 8630 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 8631 : 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
|
|
|
|
; 8632 : int result;
|
|
; 8633 : if (!f)
|
|
|
|
00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
|
|
0004b 75 0e jne SHORT $LN2@stbi_info
|
|
|
|
; 8634 : 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:
|
|
|
|
; 8635 : 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
|
|
|
|
; 8636 : 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
|
|
|
|
; 8637 : return result;
|
|
|
|
00087 8b 45 24 mov eax, DWORD PTR result$[rbp]
|
|
$LN1@stbi_info:
|
|
|
|
; 8638 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8697 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0004e 90 npad 1
|
|
|
|
; 8698 : stbi__context s;
|
|
; 8699 : 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
|
|
|
|
; 8700 : 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
|
|
|
|
; 8701 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8690 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0004d 90 npad 1
|
|
|
|
; 8691 : stbi__context s;
|
|
; 8692 : 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
|
|
|
|
; 8693 : 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
|
|
|
|
; 8694 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8683 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 8684 : stbi__context s;
|
|
; 8685 : 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
|
|
|
|
; 8686 : 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
|
|
|
|
; 8687 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 8675 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00057 90 npad 1
|
|
|
|
; 8676 : stbi__context s;
|
|
; 8677 : 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
|
|
|
|
; 8678 : 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
|
|
|
|
; 8679 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_image_free
|
|
_TEXT SEGMENT
|
|
retval_from_stbi_load$ = 224
|
|
stbi_image_free PROC ; COMDAT
|
|
|
|
; 1135 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1136 : 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
|
|
|
|
; 1137 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_failure_reason
|
|
_TEXT SEGMENT
|
|
stbi_failure_reason PROC ; COMDAT
|
|
|
|
; 991 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001b 90 npad 1
|
|
|
|
; 992 : 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]
|
|
|
|
; 993 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1611 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00049 90 npad 1
|
|
|
|
; 1612 : #ifndef STBI_NO_HDR
|
|
; 1613 : 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
|
|
|
|
; 1614 : int res;
|
|
; 1615 : stbi__context s;
|
|
; 1616 : 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
|
|
|
|
; 1617 : 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
|
|
|
|
; 1618 : 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
|
|
|
|
; 1619 : return res;
|
|
|
|
0008b 8b 45 24 mov eax, DWORD PTR res$[rbp]
|
|
|
|
; 1620 : #else
|
|
; 1621 : STBI_NOTUSED(f);
|
|
; 1622 : return 0;
|
|
; 1623 : #endif
|
|
; 1624 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_is_hdr
|
|
_TEXT SEGMENT
|
|
f$ = 8
|
|
result$ = 36
|
|
filename$ = 288
|
|
stbi_is_hdr PROC ; COMDAT
|
|
|
|
; 1600 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001f 90 npad 1
|
|
|
|
; 1601 : 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
|
|
|
|
; 1602 : int result = 0;
|
|
|
|
00037 c7 45 24 00 00
|
|
00 00 mov DWORD PTR result$[rbp], 0
|
|
|
|
; 1603 : if (f) {
|
|
|
|
0003e 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
|
|
00043 74 17 je SHORT $LN2@stbi_is_hd
|
|
|
|
; 1604 : 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
|
|
|
|
; 1605 : 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:
|
|
|
|
; 1606 : }
|
|
; 1607 : return result;
|
|
|
|
0005c 8b 45 24 mov eax, DWORD PTR result$[rbp]
|
|
|
|
; 1608 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_is_hdr_from_memory
|
|
_TEXT SEGMENT
|
|
s$ = 16
|
|
__$ArrayPad$ = 440
|
|
buffer$ = 480
|
|
len$ = 488
|
|
stbi_is_hdr_from_memory PROC ; COMDAT
|
|
|
|
; 1586 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0004d 90 npad 1
|
|
|
|
; 1587 : #ifndef STBI_NO_HDR
|
|
; 1588 : stbi__context s;
|
|
; 1589 : 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
|
|
|
|
; 1590 : 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
|
|
|
|
; 1591 : #else
|
|
; 1592 : STBI_NOTUSED(buffer);
|
|
; 1593 : STBI_NOTUSED(len);
|
|
; 1594 : return 0;
|
|
; 1595 : #endif
|
|
; 1596 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_is_hdr_from_callbacks
|
|
_TEXT SEGMENT
|
|
s$ = 16
|
|
__$ArrayPad$ = 440
|
|
clbk$ = 480
|
|
user$ = 488
|
|
stbi_is_hdr_from_callbacks PROC ; COMDAT
|
|
|
|
; 1628 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0004e 90 npad 1
|
|
|
|
; 1629 : #ifndef STBI_NO_HDR
|
|
; 1630 : stbi__context s;
|
|
; 1631 : 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
|
|
|
|
; 1632 : 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
|
|
|
|
; 1633 : #else
|
|
; 1634 : STBI_NOTUSED(clbk);
|
|
; 1635 : STBI_NOTUSED(user);
|
|
; 1636 : return 0;
|
|
; 1637 : #endif
|
|
; 1638 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_ldr_to_hdr_scale
|
|
_TEXT SEGMENT
|
|
scale$ = 224
|
|
stbi_ldr_to_hdr_scale PROC ; COMDAT
|
|
|
|
; 1648 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00020 90 npad 1
|
|
|
|
; 1649 : 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
|
|
|
|
; 1650 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_ldr_to_hdr_gamma
|
|
_TEXT SEGMENT
|
|
gamma$ = 224
|
|
stbi_ldr_to_hdr_gamma PROC ; COMDAT
|
|
|
|
; 1644 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00020 90 npad 1
|
|
|
|
; 1645 : 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
|
|
|
|
; 1646 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_hdr_to_ldr_scale
|
|
_TEXT SEGMENT
|
|
scale$ = 224
|
|
stbi_hdr_to_ldr_scale PROC ; COMDAT
|
|
|
|
; 1660 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00020 90 npad 1
|
|
|
|
; 1661 : 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
|
|
|
|
; 1662 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; COMDAT stbi_hdr_to_ldr_gamma
|
|
_TEXT SEGMENT
|
|
gamma$ = 224
|
|
stbi_hdr_to_ldr_gamma PROC ; COMDAT
|
|
|
|
; 1656 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
0001b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00020 90 npad 1
|
|
|
|
; 1657 : 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
|
|
|
|
; 1658 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1572 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1573 : stbi__context s;
|
|
; 1574 : 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
|
|
|
|
; 1575 : 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
|
|
|
|
; 1576 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1561 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 1562 : float *result;
|
|
; 1563 : 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
|
|
|
|
; 1564 : if (!f)
|
|
|
|
00046 48 83 7d 28 00 cmp QWORD PTR f$[rbp], 0
|
|
0004b 75 31 jne SHORT $LN2@stbi_loadf
|
|
|
|
; 1565 : 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:
|
|
|
|
; 1566 : 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
|
|
|
|
; 1567 : 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
|
|
|
|
; 1568 : return result;
|
|
|
|
000b5 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi_loadf:
|
|
|
|
; 1569 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1553 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1554 : stbi__context s;
|
|
; 1555 : 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
|
|
|
|
; 1556 : 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
|
|
|
|
; 1557 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1545 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00057 90 npad 1
|
|
|
|
; 1546 : stbi__context s;
|
|
; 1547 : 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
|
|
|
|
; 1548 : 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
|
|
|
|
; 1549 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1450 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1451 : stbi__uint16 *result;
|
|
; 1452 : stbi__context s;
|
|
; 1453 : 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
|
|
|
|
; 1454 : 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
|
|
|
|
; 1455 : if (result) {
|
|
|
|
00096 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0
|
|
0009b 74 2c je SHORT $LN2@stbi_load_
|
|
|
|
; 1456 : // need to 'unget' all the characters in the IO buffer
|
|
; 1457 : 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_:
|
|
|
|
; 1458 : }
|
|
; 1459 : return result;
|
|
|
|
000c9 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
|
|
|
|
; 1460 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1463 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 1464 : 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
|
|
|
|
; 1465 : stbi__uint16 *result;
|
|
; 1466 : if (!f)
|
|
|
|
00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
|
|
0004b 75 31 jne SHORT $LN2@stbi_load_
|
|
|
|
; 1467 : 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_:
|
|
|
|
; 1468 : 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
|
|
|
|
; 1469 : 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
|
|
|
|
; 1470 : return result;
|
|
|
|
000b5 48 8b 45 28 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi_load_:
|
|
|
|
; 1471 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1485 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1486 : stbi__context s;
|
|
; 1487 : 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
|
|
|
|
; 1488 : 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
|
|
|
|
; 1489 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1477 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00057 90 npad 1
|
|
|
|
; 1478 : stbi__context s;
|
|
; 1479 : 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
|
|
|
|
; 1480 : 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
|
|
|
|
; 1481 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1510 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00057 90 npad 1
|
|
|
|
; 1511 : unsigned char *result;
|
|
; 1512 : stbi__context s;
|
|
; 1513 : 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
|
|
|
|
; 1514 :
|
|
; 1515 : 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
|
|
|
|
; 1516 : 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_
|
|
|
|
; 1517 : 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_:
|
|
|
|
; 1518 : }
|
|
; 1519 :
|
|
; 1520 : return result;
|
|
|
|
00142 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
|
|
|
|
; 1521 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1437 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1438 : unsigned char *result;
|
|
; 1439 : stbi__context s;
|
|
; 1440 : 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
|
|
|
|
; 1441 : 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
|
|
|
|
; 1442 : if (result) {
|
|
|
|
00096 48 83 7d 08 00 cmp QWORD PTR result$[rbp], 0
|
|
0009b 74 2c je SHORT $LN2@stbi_load_
|
|
|
|
; 1443 : // need to 'unget' all the characters in the IO buffer
|
|
; 1444 : 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_:
|
|
|
|
; 1445 : }
|
|
; 1446 : return result;
|
|
|
|
000c9 48 8b 45 08 mov rax, QWORD PTR result$[rbp]
|
|
|
|
; 1447 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1426 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e 90 npad 1
|
|
|
|
; 1427 : 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
|
|
|
|
; 1428 : unsigned char *result;
|
|
; 1429 : if (!f)
|
|
|
|
00046 48 83 7d 08 00 cmp QWORD PTR f$[rbp], 0
|
|
0004b 75 31 jne SHORT $LN2@stbi_load
|
|
|
|
; 1430 : 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:
|
|
|
|
; 1431 : 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
|
|
|
|
; 1432 : 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
|
|
|
|
; 1433 : return result;
|
|
|
|
000b5 48 8b 45 28 mov rax, QWORD PTR result$[rbp]
|
|
$LN1@stbi_load:
|
|
|
|
; 1434 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1501 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00058 90 npad 1
|
|
|
|
; 1502 : stbi__context s;
|
|
; 1503 : 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
|
|
|
|
; 1504 : 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
|
|
|
|
; 1505 : }
|
|
|
|
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\lib\stbi\stb_image.h
|
|
; 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
|
|
|
|
; 1493 : {
|
|
|
|
$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:__F562FA57_stb_image@h
|
|
00052 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00057 90 npad 1
|
|
|
|
; 1494 : stbi__context s;
|
|
; 1495 : 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
|
|
|
|
; 1496 : 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
|
|
|
|
; 1497 : }
|
|
|
|
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
|