; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0 

	TITLE	D:\Works\Corpsms_2010\SmsCenter\Release_Unicode\MD5_L.obj
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	?__empty_global_delete@@YAXPAX@Z		; __empty_global_delete
PUBLIC	?__empty_global_delete@@YAXPAXI@Z		; __empty_global_delete
PUBLIC	?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z ; __empty_global_delete
PUBLIC	?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z ; __empty_global_delete
PUBLIC	___local_stdio_printf_options
PUBLIC	__vsnprintf_l
PUBLIC	__vsprintf_l
PUBLIC	_sprintf
PUBLIC	?MD5Transform@MD5_L@@QAEXQAKQAE@Z		; MD5_L::MD5Transform
PUBLIC	?Encode@MD5_L@@QAEXPAEPAKI@Z			; MD5_L::Encode
PUBLIC	?Decode@MD5_L@@QAEXPAKPAEI@Z			; MD5_L::Decode
PUBLIC	?MD5_memcpy@MD5_L@@QAEXPAE0I@Z			; MD5_L::MD5_memcpy
PUBLIC	?MD5_memset@MD5_L@@QAEXPAEHI@Z			; MD5_L::MD5_memset
PUBLIC	?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z		; MD5_L::MD5Init
PUBLIC	?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z	; MD5_L::MD5Update
PUBLIC	?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z	; MD5_L::MD5Final
PUBLIC	?StringAddOne@MD5_L@@QAEXPAD@Z			; MD5_L::StringAddOne
PUBLIC	?MD5String@MD5_L@@QAEPADPAD0@Z			; MD5_L::MD5String
PUBLIC	?MD5String@MD5_L@@QAEPADPAD@Z			; MD5_L::MD5String
PUBLIC	?MD5Byte@MD5_L@@QAEPAEPAEJ@Z			; MD5_L::MD5Byte
PUBLIC	?MD5Check@MD5_L@@QAE_NPAD0@Z			; MD5_L::MD5Check
PUBLIC	?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage
PUBLIC	??_C@_04JFFKLGJF@?$CF02X@			; `string'
EXTRN	___report_rangecheckfailure:PROC
EXTRN	___stdio_common_vsprintf:PROC
EXTRN	_strcmp:PROC
EXTRN	_strlen:PROC
EXTRN	@__security_check_cookie@4:PROC
EXTRN	_memset:PROC
EXTRN	___security_cookie:DWORD
;	COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA
_BSS	SEGMENT
?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage
_BSS	ENDS
_BSS	SEGMENT
?output@?1??MD5String@MD5_L@@QAEPADPAD@Z@4PADA DB 040H DUP (?) ; `MD5_L::MD5String'::`2'::output
_BSS	ENDS
;	COMDAT ??_C@_04JFFKLGJF@?$CF02X@
CONST	SEGMENT
??_C@_04JFFKLGJF@?$CF02X@ DB '%02X', 00H		; `string'
CONST	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DB	010H
	DB	0aeH
voltbl	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DW	010H
	DW	016bH
voltbl	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DW	010H
	DW	014cH
voltbl	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DB	0dH
	DB	0b2H
voltbl	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DW	010H
	DW	010f7H
voltbl	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5Check@MD5_L@@QAE_NPAD0@Z
_TEXT	SEGMENT
tv71 = -72						; size = 4
_this$ = -4						; size = 4
_md5string$ = 8						; size = 4
_string$ = 12						; size = 4
?MD5Check@MD5_L@@QAE_NPAD0@Z PROC			; MD5_L::MD5Check, COMDAT
; _this$ = ecx

; 371  : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 48	 sub	 esp, 72			; 00000048H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 372  : return strcmp( md5string, MD5String( string ) ) == 0; 

  0000c	8b 45 0c	 mov	 eax, DWORD PTR _string$[ebp]
  0000f	50		 push	 eax
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	e8 00 00 00 00	 call	 ?MD5String@MD5_L@@QAEPADPAD@Z ; MD5_L::MD5String
  00018	50		 push	 eax
  00019	8b 4d 08	 mov	 ecx, DWORD PTR _md5string$[ebp]
  0001c	51		 push	 ecx
  0001d	e8 00 00 00 00	 call	 _strcmp
  00022	83 c4 08	 add	 esp, 8
  00025	85 c0		 test	 eax, eax
  00027	75 09		 jne	 SHORT $LN3@MD5Check
  00029	c7 45 b8 01 00
	00 00		 mov	 DWORD PTR tv71[ebp], 1
  00030	eb 07		 jmp	 SHORT $LN4@MD5Check
$LN3@MD5Check:
  00032	c7 45 b8 00 00
	00 00		 mov	 DWORD PTR tv71[ebp], 0
$LN4@MD5Check:
  00039	8a 45 b8	 mov	 al, BYTE PTR tv71[ebp]

; 373  : }

  0003c	5f		 pop	 edi
  0003d	5e		 pop	 esi
  0003e	5b		 pop	 ebx
  0003f	8b e5		 mov	 esp, ebp
  00041	5d		 pop	 ebp
  00042	c2 08 00	 ret	 8
?MD5Check@MD5_L@@QAE_NPAD0@Z ENDP			; MD5_L::MD5Check
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5Byte@MD5_L@@QAEPAEPAEJ@Z
_TEXT	SEGMENT
_i$ = -184						; size = 4
_len$ = -180						; size = 4
_output$ = -176						; size = 64
_digest$ = -112						; size = 16
_context$ = -96						; size = 88
_this$ = -8						; size = 4
__$ArrayPad$ = -4					; size = 4
_bMd5$ = 8						; size = 4
_lLen$ = 12						; size = 4
?MD5Byte@MD5_L@@QAEPAEPAEJ@Z PROC			; MD5_L::MD5Byte, COMDAT
; _this$ = ecx

; 256  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec f8 00 00
	00		 sub	 esp, 248		; 000000f8H
  00009	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000e	33 c5		 xor	 eax, ebp
  00010	89 45 fc	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00013	53		 push	 ebx
  00014	56		 push	 esi
  00015	57		 push	 edi
  00016	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 257  : MD5_CTX context; 
; 258  : unsigned char digest[16]; 
; 259  : BYTE output[64]={0}; 

  00019	6a 40		 push	 64			; 00000040H
  0001b	6a 00		 push	 0
  0001d	8d 85 50 ff ff
	ff		 lea	 eax, DWORD PTR _output$[ebp]
  00023	50		 push	 eax
  00024	e8 00 00 00 00	 call	 _memset
  00029	83 c4 0c	 add	 esp, 12			; 0000000cH

; 260  : unsigned int len = lLen; 

  0002c	8b 45 0c	 mov	 eax, DWORD PTR _lLen$[ebp]
  0002f	89 85 4c ff ff
	ff		 mov	 DWORD PTR _len$[ebp], eax

; 261  : int i; 
; 262  : 
; 263  : MD5Init( &context); 

  00035	8d 45 a0	 lea	 eax, DWORD PTR _context$[ebp]
  00038	50		 push	 eax
  00039	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0003c	e8 00 00 00 00	 call	 ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z ; MD5_L::MD5Init

; 264  : MD5Update( &context, (unsigned char*)bMd5, len ); 

  00041	8b 85 4c ff ff
	ff		 mov	 eax, DWORD PTR _len$[ebp]
  00047	50		 push	 eax
  00048	8b 4d 08	 mov	 ecx, DWORD PTR _bMd5$[ebp]
  0004b	51		 push	 ecx
  0004c	8d 55 a0	 lea	 edx, DWORD PTR _context$[ebp]
  0004f	52		 push	 edx
  00050	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00053	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update

; 265  : MD5Final( digest, &context ); 

  00058	8d 45 a0	 lea	 eax, DWORD PTR _context$[ebp]
  0005b	50		 push	 eax
  0005c	8d 4d 90	 lea	 ecx, DWORD PTR _digest$[ebp]
  0005f	51		 push	 ecx
  00060	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00063	e8 00 00 00 00	 call	 ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z ; MD5_L::MD5Final

; 266  : 
; 267  : for (i = 0; i < 16; i++) 

  00068	c7 85 48 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$[ebp], 0
  00072	eb 0f		 jmp	 SHORT $LN4@MD5Byte
$LN2@MD5Byte:
  00074	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  0007a	83 c0 01	 add	 eax, 1
  0007d	89 85 48 ff ff
	ff		 mov	 DWORD PTR _i$[ebp], eax
$LN4@MD5Byte:
  00083	83 bd 48 ff ff
	ff 10		 cmp	 DWORD PTR _i$[ebp], 16	; 00000010H
  0008a	7d 19		 jge	 SHORT $LN3@MD5Byte

; 268  : { 
; 269  : 	output[i] = (unsigned char)digest[i];

  0008c	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  00092	8b 8d 48 ff ff
	ff		 mov	 ecx, DWORD PTR _i$[ebp]
  00098	8a 54 0d 90	 mov	 dl, BYTE PTR _digest$[ebp+ecx]
  0009c	88 94 05 50 ff
	ff ff		 mov	 BYTE PTR _output$[ebp+eax], dl

; 270  : //sprintf(&(output1[2*i]),"%02X",(unsigned char)digest[i]); 
; 271  : //sprintf(&(output1[2*i+1]),"%02X",(unsigned char)(digest[i]<<4)); 
; 272  : } 

  000a3	eb cf		 jmp	 SHORT $LN2@MD5Byte
$LN3@MD5Byte:

; 273  : return output; 

  000a5	8d 85 50 ff ff
	ff		 lea	 eax, DWORD PTR _output$[ebp]

; 274  : 
; 275  : }

  000ab	5f		 pop	 edi
  000ac	5e		 pop	 esi
  000ad	5b		 pop	 ebx
  000ae	8b 4d fc	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000b1	33 cd		 xor	 ecx, ebp
  000b3	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000b8	8b e5		 mov	 esp, ebp
  000ba	5d		 pop	 ebp
  000bb	c2 08 00	 ret	 8
?MD5Byte@MD5_L@@QAEPAEPAEJ@Z ENDP			; MD5_L::MD5Byte
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5String@MD5_L@@QAEPADPAD@Z
_TEXT	SEGMENT
$T1 = -252						; size = 4
_i$ = -184						; size = 4
_len$ = -180						; size = 4
_output1$ = -176					; size = 64
_digest$ = -112						; size = 16
_context$ = -96						; size = 88
_this$ = -8						; size = 4
__$ArrayPad$ = -4					; size = 4
_string$ = 8						; size = 4
?MD5String@MD5_L@@QAEPADPAD@Z PROC			; MD5_L::MD5String, COMDAT
; _this$ = ecx

; 280  : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec fc 00 00
	00		 sub	 esp, 252		; 000000fcH
  00009	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000e	33 c5		 xor	 eax, ebp
  00010	89 45 fc	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00013	53		 push	 ebx
  00014	56		 push	 esi
  00015	57		 push	 edi
  00016	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 281  : MD5_CTX context; 
; 282  : unsigned char digest[16] = { 0 };

  00019	33 c0		 xor	 eax, eax
  0001b	89 45 90	 mov	 DWORD PTR _digest$[ebp], eax
  0001e	89 45 94	 mov	 DWORD PTR _digest$[ebp+4], eax
  00021	89 45 98	 mov	 DWORD PTR _digest$[ebp+8], eax
  00024	89 45 9c	 mov	 DWORD PTR _digest$[ebp+12], eax

; 283  : //char output1[128] = { 0 };
; 284  : char output1[64] = { 0 };

  00027	6a 40		 push	 64			; 00000040H
  00029	6a 00		 push	 0
  0002b	8d 85 50 ff ff
	ff		 lea	 eax, DWORD PTR _output1$[ebp]
  00031	50		 push	 eax
  00032	e8 00 00 00 00	 call	 _memset
  00037	83 c4 0c	 add	 esp, 12			; 0000000cH

; 285  : static char output[64] = { 0 };
; 286  : unsigned int len = (unsigned int)strlen (string); 

  0003a	8b 45 08	 mov	 eax, DWORD PTR _string$[ebp]
  0003d	50		 push	 eax
  0003e	e8 00 00 00 00	 call	 _strlen
  00043	83 c4 04	 add	 esp, 4
  00046	89 85 4c ff ff
	ff		 mov	 DWORD PTR _len$[ebp], eax

; 287  : int i; 
; 288  : 
; 289  : MD5Init( &context); 

  0004c	8d 45 a0	 lea	 eax, DWORD PTR _context$[ebp]
  0004f	50		 push	 eax
  00050	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00053	e8 00 00 00 00	 call	 ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z ; MD5_L::MD5Init

; 290  : MD5Update( &context, (unsigned char*)string, len ); 

  00058	8b 85 4c ff ff
	ff		 mov	 eax, DWORD PTR _len$[ebp]
  0005e	50		 push	 eax
  0005f	8b 4d 08	 mov	 ecx, DWORD PTR _string$[ebp]
  00062	51		 push	 ecx
  00063	8d 55 a0	 lea	 edx, DWORD PTR _context$[ebp]
  00066	52		 push	 edx
  00067	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0006a	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update

; 291  : MD5Final( digest, &context ); 

  0006f	8d 45 a0	 lea	 eax, DWORD PTR _context$[ebp]
  00072	50		 push	 eax
  00073	8d 4d 90	 lea	 ecx, DWORD PTR _digest$[ebp]
  00076	51		 push	 ecx
  00077	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0007a	e8 00 00 00 00	 call	 ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z ; MD5_L::MD5Final

; 292  : 
; 293  : for (i = 0; i < 16; i++) 

  0007f	c7 85 48 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$[ebp], 0
  00089	eb 0f		 jmp	 SHORT $LN4@MD5String
$LN2@MD5String:
  0008b	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  00091	83 c0 01	 add	 eax, 1
  00094	89 85 48 ff ff
	ff		 mov	 DWORD PTR _i$[ebp], eax
$LN4@MD5String:
  0009a	83 bd 48 ff ff
	ff 10		 cmp	 DWORD PTR _i$[ebp], 16	; 00000010H
  000a1	7d 56		 jge	 SHORT $LN3@MD5String

; 294  : { 
; 295  : sprintf(&(output1[2*i]),"%02X",(unsigned char)digest[i]); 

  000a3	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  000a9	0f b6 4c 05 90	 movzx	 ecx, BYTE PTR _digest$[ebp+eax]
  000ae	51		 push	 ecx
  000af	68 00 00 00 00	 push	 OFFSET ??_C@_04JFFKLGJF@?$CF02X@
  000b4	8b 95 48 ff ff
	ff		 mov	 edx, DWORD PTR _i$[ebp]
  000ba	8d 84 55 50 ff
	ff ff		 lea	 eax, DWORD PTR _output1$[ebp+edx*2]
  000c1	50		 push	 eax
  000c2	e8 00 00 00 00	 call	 _sprintf
  000c7	83 c4 0c	 add	 esp, 12			; 0000000cH

; 296  : sprintf(&(output1[2*i+1]),"%02X",(unsigned char)(digest[i]<<4)); 

  000ca	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  000d0	0f b6 4c 05 90	 movzx	 ecx, BYTE PTR _digest$[ebp+eax]
  000d5	c1 e1 04	 shl	 ecx, 4
  000d8	0f b6 d1	 movzx	 edx, cl
  000db	52		 push	 edx
  000dc	68 00 00 00 00	 push	 OFFSET ??_C@_04JFFKLGJF@?$CF02X@
  000e1	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  000e7	8d 8c 45 51 ff
	ff ff		 lea	 ecx, DWORD PTR _output1$[ebp+eax*2+1]
  000ee	51		 push	 ecx
  000ef	e8 00 00 00 00	 call	 _sprintf
  000f4	83 c4 0c	 add	 esp, 12			; 0000000cH

; 297  : } 

  000f7	eb 92		 jmp	 SHORT $LN2@MD5String
$LN3@MD5String:

; 298  : for(i=0;i<32;i++) 

  000f9	c7 85 48 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$[ebp], 0
  00103	eb 0f		 jmp	 SHORT $LN7@MD5String
$LN5@MD5String:
  00105	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  0010b	83 c0 01	 add	 eax, 1
  0010e	89 85 48 ff ff
	ff		 mov	 DWORD PTR _i$[ebp], eax
$LN7@MD5String:
  00114	83 bd 48 ff ff
	ff 20		 cmp	 DWORD PTR _i$[ebp], 32	; 00000020H
  0011b	7d 1b		 jge	 SHORT $LN6@MD5String

; 299  : { 
; 300  : output[i]=output1[i]; 

  0011d	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  00123	8b 8d 48 ff ff
	ff		 mov	 ecx, DWORD PTR _i$[ebp]
  00129	8a 94 0d 50 ff
	ff ff		 mov	 dl, BYTE PTR _output1$[ebp+ecx]
  00130	88 90 00 00 00
	00		 mov	 BYTE PTR ?output@?1??MD5String@MD5_L@@QAEPADPAD@Z@4PADA[eax], dl

; 301  : } 

  00136	eb cd		 jmp	 SHORT $LN5@MD5String
$LN6@MD5String:

; 302  : output[32] = 0;

  00138	b8 01 00 00 00	 mov	 eax, 1
  0013d	c1 e0 05	 shl	 eax, 5
  00140	89 85 04 ff ff
	ff		 mov	 DWORD PTR $T1[ebp], eax
  00146	83 bd 04 ff ff
	ff 40		 cmp	 DWORD PTR $T1[ebp], 64	; 00000040H
  0014d	73 02		 jae	 SHORT $LN9@MD5String
  0014f	eb 05		 jmp	 SHORT $LN10@MD5String
$LN9@MD5String:
  00151	e8 00 00 00 00	 call	 ___report_rangecheckfailure
$LN10@MD5String:
  00156	8b 8d 04 ff ff
	ff		 mov	 ecx, DWORD PTR $T1[ebp]
  0015c	c6 81 00 00 00
	00 00		 mov	 BYTE PTR ?output@?1??MD5String@MD5_L@@QAEPADPAD@Z@4PADA[ecx], 0

; 303  : 
; 304  : return output; 

  00163	b8 00 00 00 00	 mov	 eax, OFFSET ?output@?1??MD5String@MD5_L@@QAEPADPAD@Z@4PADA
$LN8@MD5String:

; 305  : } 

  00168	5f		 pop	 edi
  00169	5e		 pop	 esi
  0016a	5b		 pop	 ebx
  0016b	8b 4d fc	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  0016e	33 cd		 xor	 ecx, ebp
  00170	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00175	8b e5		 mov	 esp, ebp
  00177	5d		 pop	 ebp
  00178	c2 04 00	 ret	 4
?MD5String@MD5_L@@QAEPADPAD@Z ENDP			; MD5_L::MD5String
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5String@MD5_L@@QAEPADPAD0@Z
_TEXT	SEGMENT
_i$ = -184						; size = 4
_len$ = -180						; size = 4
_output1$ = -176					; size = 64
_digest$ = -112						; size = 16
_context$ = -96						; size = 88
_this$ = -8						; size = 4
__$ArrayPad$ = -4					; size = 4
_string$ = 8						; size = 4
_strMD5$ = 12						; size = 4
?MD5String@MD5_L@@QAEPADPAD0@Z PROC			; MD5_L::MD5String, COMDAT
; _this$ = ecx

; 309  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec f8 00 00
	00		 sub	 esp, 248		; 000000f8H
  00009	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000e	33 c5		 xor	 eax, ebp
  00010	89 45 fc	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00013	53		 push	 ebx
  00014	56		 push	 esi
  00015	57		 push	 edi
  00016	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 310  : 	MD5_CTX context;
; 311  : 	unsigned char digest[16] = { 0 };

  00019	33 c0		 xor	 eax, eax
  0001b	89 45 90	 mov	 DWORD PTR _digest$[ebp], eax
  0001e	89 45 94	 mov	 DWORD PTR _digest$[ebp+4], eax
  00021	89 45 98	 mov	 DWORD PTR _digest$[ebp+8], eax
  00024	89 45 9c	 mov	 DWORD PTR _digest$[ebp+12], eax

; 312  : 	//char output1[128] = { 0 };
; 313  : 	char output1[64] = { 0 };

  00027	6a 40		 push	 64			; 00000040H
  00029	6a 00		 push	 0
  0002b	8d 85 50 ff ff
	ff		 lea	 eax, DWORD PTR _output1$[ebp]
  00031	50		 push	 eax
  00032	e8 00 00 00 00	 call	 _memset
  00037	83 c4 0c	 add	 esp, 12			; 0000000cH

; 314  : 	unsigned int len = (unsigned int)strlen(string);

  0003a	8b 45 08	 mov	 eax, DWORD PTR _string$[ebp]
  0003d	50		 push	 eax
  0003e	e8 00 00 00 00	 call	 _strlen
  00043	83 c4 04	 add	 esp, 4
  00046	89 85 4c ff ff
	ff		 mov	 DWORD PTR _len$[ebp], eax

; 315  : 	int i;
; 316  : 
; 317  : 	MD5Init(&context);

  0004c	8d 45 a0	 lea	 eax, DWORD PTR _context$[ebp]
  0004f	50		 push	 eax
  00050	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00053	e8 00 00 00 00	 call	 ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z ; MD5_L::MD5Init

; 318  : 	MD5Update(&context, (unsigned char*)string, len);

  00058	8b 85 4c ff ff
	ff		 mov	 eax, DWORD PTR _len$[ebp]
  0005e	50		 push	 eax
  0005f	8b 4d 08	 mov	 ecx, DWORD PTR _string$[ebp]
  00062	51		 push	 ecx
  00063	8d 55 a0	 lea	 edx, DWORD PTR _context$[ebp]
  00066	52		 push	 edx
  00067	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0006a	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update

; 319  : 	MD5Final(digest, &context);

  0006f	8d 45 a0	 lea	 eax, DWORD PTR _context$[ebp]
  00072	50		 push	 eax
  00073	8d 4d 90	 lea	 ecx, DWORD PTR _digest$[ebp]
  00076	51		 push	 ecx
  00077	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0007a	e8 00 00 00 00	 call	 ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z ; MD5_L::MD5Final

; 320  : 
; 321  : 	for (i = 0; i < 16; i++)

  0007f	c7 85 48 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$[ebp], 0
  00089	eb 0f		 jmp	 SHORT $LN4@MD5String
$LN2@MD5String:
  0008b	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  00091	83 c0 01	 add	 eax, 1
  00094	89 85 48 ff ff
	ff		 mov	 DWORD PTR _i$[ebp], eax
$LN4@MD5String:
  0009a	83 bd 48 ff ff
	ff 10		 cmp	 DWORD PTR _i$[ebp], 16	; 00000010H
  000a1	7d 56		 jge	 SHORT $LN3@MD5String

; 322  : 	{
; 323  : 		sprintf(&(output1[2 * i]), "%02X", (unsigned char)digest[i]);

  000a3	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  000a9	0f b6 4c 05 90	 movzx	 ecx, BYTE PTR _digest$[ebp+eax]
  000ae	51		 push	 ecx
  000af	68 00 00 00 00	 push	 OFFSET ??_C@_04JFFKLGJF@?$CF02X@
  000b4	8b 95 48 ff ff
	ff		 mov	 edx, DWORD PTR _i$[ebp]
  000ba	8d 84 55 50 ff
	ff ff		 lea	 eax, DWORD PTR _output1$[ebp+edx*2]
  000c1	50		 push	 eax
  000c2	e8 00 00 00 00	 call	 _sprintf
  000c7	83 c4 0c	 add	 esp, 12			; 0000000cH

; 324  : 		sprintf(&(output1[2 * i + 1]), "%02X", (unsigned char)(digest[i] << 4));

  000ca	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  000d0	0f b6 4c 05 90	 movzx	 ecx, BYTE PTR _digest$[ebp+eax]
  000d5	c1 e1 04	 shl	 ecx, 4
  000d8	0f b6 d1	 movzx	 edx, cl
  000db	52		 push	 edx
  000dc	68 00 00 00 00	 push	 OFFSET ??_C@_04JFFKLGJF@?$CF02X@
  000e1	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  000e7	8d 8c 45 51 ff
	ff ff		 lea	 ecx, DWORD PTR _output1$[ebp+eax*2+1]
  000ee	51		 push	 ecx
  000ef	e8 00 00 00 00	 call	 _sprintf
  000f4	83 c4 0c	 add	 esp, 12			; 0000000cH

; 325  : 	}

  000f7	eb 92		 jmp	 SHORT $LN2@MD5String
$LN3@MD5String:

; 326  : 	for (i = 0; i<32; i++)

  000f9	c7 85 48 ff ff
	ff 00 00 00 00	 mov	 DWORD PTR _i$[ebp], 0
  00103	eb 0f		 jmp	 SHORT $LN7@MD5String
$LN5@MD5String:
  00105	8b 85 48 ff ff
	ff		 mov	 eax, DWORD PTR _i$[ebp]
  0010b	83 c0 01	 add	 eax, 1
  0010e	89 85 48 ff ff
	ff		 mov	 DWORD PTR _i$[ebp], eax
$LN7@MD5String:
  00114	83 bd 48 ff ff
	ff 20		 cmp	 DWORD PTR _i$[ebp], 32	; 00000020H
  0011b	7d 1a		 jge	 SHORT $LN6@MD5String

; 327  : 	{
; 328  : 		strMD5[i] = output1[i];

  0011d	8b 45 0c	 mov	 eax, DWORD PTR _strMD5$[ebp]
  00120	03 85 48 ff ff
	ff		 add	 eax, DWORD PTR _i$[ebp]
  00126	8b 8d 48 ff ff
	ff		 mov	 ecx, DWORD PTR _i$[ebp]
  0012c	8a 94 0d 50 ff
	ff ff		 mov	 dl, BYTE PTR _output1$[ebp+ecx]
  00133	88 10		 mov	 BYTE PTR [eax], dl

; 329  : 	}

  00135	eb ce		 jmp	 SHORT $LN5@MD5String
$LN6@MD5String:

; 330  : 	strMD5[32] = 0;

  00137	b8 01 00 00 00	 mov	 eax, 1
  0013c	c1 e0 05	 shl	 eax, 5
  0013f	8b 4d 0c	 mov	 ecx, DWORD PTR _strMD5$[ebp]
  00142	c6 04 01 00	 mov	 BYTE PTR [ecx+eax], 0

; 331  : 
; 332  : 	return strMD5;

  00146	8b 45 0c	 mov	 eax, DWORD PTR _strMD5$[ebp]

; 333  : }

  00149	5f		 pop	 edi
  0014a	5e		 pop	 esi
  0014b	5b		 pop	 ebx
  0014c	8b 4d fc	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  0014f	33 cd		 xor	 ecx, ebp
  00151	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00156	8b e5		 mov	 esp, ebp
  00158	5d		 pop	 ebp
  00159	c2 08 00	 ret	 8
?MD5String@MD5_L@@QAEPADPAD0@Z ENDP			; MD5_L::MD5String
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?StringAddOne@MD5_L@@QAEXPAD@Z
_TEXT	SEGMENT
_n$ = -16						; size = 4
_i$ = -12						; size = 4
_len$ = -8						; size = 4
_this$ = -4						; size = 4
_orstring$ = 8						; size = 4
?StringAddOne@MD5_L@@QAEXPAD@Z PROC			; MD5_L::StringAddOne, COMDAT
; _this$ = ecx

; 339  : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 50	 sub	 esp, 80			; 00000050H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 340  : unsigned int len; 
; 341  : int i,n; 
; 342  : 
; 343  : len = (unsigned int)strlen(orstring); 

  0000c	8b 45 08	 mov	 eax, DWORD PTR _orstring$[ebp]
  0000f	50		 push	 eax
  00010	e8 00 00 00 00	 call	 _strlen
  00015	83 c4 04	 add	 esp, 4
  00018	89 45 f8	 mov	 DWORD PTR _len$[ebp], eax

; 344  : n = len - 1; 

  0001b	8b 45 f8	 mov	 eax, DWORD PTR _len$[ebp]
  0001e	83 e8 01	 sub	 eax, 1
  00021	89 45 f0	 mov	 DWORD PTR _n$[ebp], eax

; 345  : for(i = n; i >= 0; i--) 

  00024	8b 45 f0	 mov	 eax, DWORD PTR _n$[ebp]
  00027	89 45 f4	 mov	 DWORD PTR _i$[ebp], eax
  0002a	eb 09		 jmp	 SHORT $LN4@StringAddO
$LN2@StringAddO:
  0002c	8b 45 f4	 mov	 eax, DWORD PTR _i$[ebp]
  0002f	83 e8 01	 sub	 eax, 1
  00032	89 45 f4	 mov	 DWORD PTR _i$[ebp], eax
$LN4@StringAddO:
  00035	83 7d f4 00	 cmp	 DWORD PTR _i$[ebp], 0
  00039	7c 69		 jl	 SHORT $LN1@StringAddO

; 346  : { 
; 347  : if(orstring[i]=='9') 

  0003b	8b 45 08	 mov	 eax, DWORD PTR _orstring$[ebp]
  0003e	03 45 f4	 add	 eax, DWORD PTR _i$[ebp]
  00041	0f be 08	 movsx	 ecx, BYTE PTR [eax]
  00044	83 f9 39	 cmp	 ecx, 57			; 00000039H
  00047	75 0d		 jne	 SHORT $LN5@StringAddO

; 348  : { 
; 349  : orstring[i] = 'A'; 

  00049	8b 45 08	 mov	 eax, DWORD PTR _orstring$[ebp]
  0004c	03 45 f4	 add	 eax, DWORD PTR _i$[ebp]
  0004f	c6 00 41	 mov	 BYTE PTR [eax], 65	; 00000041H

; 350  : break; 

  00052	eb 50		 jmp	 SHORT $LN1@StringAddO

; 351  : } 

  00054	eb 4a		 jmp	 SHORT $LN6@StringAddO
$LN5@StringAddO:

; 352  : else if(orstring[i]=='Z') 

  00056	8b 45 08	 mov	 eax, DWORD PTR _orstring$[ebp]
  00059	03 45 f4	 add	 eax, DWORD PTR _i$[ebp]
  0005c	0f be 08	 movsx	 ecx, BYTE PTR [eax]
  0005f	83 f9 5a	 cmp	 ecx, 90			; 0000005aH
  00062	75 0d		 jne	 SHORT $LN7@StringAddO

; 353  : { 
; 354  : orstring[i]='a'; 

  00064	8b 45 08	 mov	 eax, DWORD PTR _orstring$[ebp]
  00067	03 45 f4	 add	 eax, DWORD PTR _i$[ebp]
  0006a	c6 00 61	 mov	 BYTE PTR [eax], 97	; 00000061H

; 355  : break; 

  0006d	eb 35		 jmp	 SHORT $LN1@StringAddO

; 356  : } 

  0006f	eb 2f		 jmp	 SHORT $LN6@StringAddO
$LN7@StringAddO:

; 357  : else if(orstring[i]=='z') 

  00071	8b 45 08	 mov	 eax, DWORD PTR _orstring$[ebp]
  00074	03 45 f4	 add	 eax, DWORD PTR _i$[ebp]
  00077	0f be 08	 movsx	 ecx, BYTE PTR [eax]
  0007a	83 f9 7a	 cmp	 ecx, 122		; 0000007aH
  0007d	75 0d		 jne	 SHORT $LN9@StringAddO

; 358  : { 
; 359  : orstring[i]='0'; 

  0007f	8b 45 08	 mov	 eax, DWORD PTR _orstring$[ebp]
  00082	03 45 f4	 add	 eax, DWORD PTR _i$[ebp]
  00085	c6 00 30	 mov	 BYTE PTR [eax], 48	; 00000030H

; 360  : continue; 

  00088	eb a2		 jmp	 SHORT $LN2@StringAddO

; 361  : } 

  0008a	eb 14		 jmp	 SHORT $LN6@StringAddO
$LN9@StringAddO:

; 362  : else 
; 363  : orstring[i] += 1; 

  0008c	8b 45 08	 mov	 eax, DWORD PTR _orstring$[ebp]
  0008f	03 45 f4	 add	 eax, DWORD PTR _i$[ebp]
  00092	0f be 08	 movsx	 ecx, BYTE PTR [eax]
  00095	83 c1 01	 add	 ecx, 1
  00098	8b 55 08	 mov	 edx, DWORD PTR _orstring$[ebp]
  0009b	03 55 f4	 add	 edx, DWORD PTR _i$[ebp]
  0009e	88 0a		 mov	 BYTE PTR [edx], cl
$LN6@StringAddO:

; 364  : break; 

  000a0	eb 02		 jmp	 SHORT $LN1@StringAddO

; 365  : } 

  000a2	eb 88		 jmp	 SHORT $LN2@StringAddO
$LN1@StringAddO:

; 366  : } 

  000a4	5f		 pop	 edi
  000a5	5e		 pop	 esi
  000a6	5b		 pop	 ebx
  000a7	8b e5		 mov	 esp, ebp
  000a9	5d		 pop	 ebp
  000aa	c2 04 00	 ret	 4
?StringAddOne@MD5_L@@QAEXPAD@Z ENDP			; MD5_L::StringAddOne
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z
_TEXT	SEGMENT
tv77 = -92						; size = 4
_padLen$ = -24						; size = 4
_index$ = -20						; size = 4
_bits$ = -16						; size = 8
_this$ = -8						; size = 4
__$ArrayPad$ = -4					; size = 4
_digest$ = 8						; size = 4
_context$ = 12						; size = 4
?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z PROC		; MD5_L::MD5Final, COMDAT
; _this$ = ecx

; 75   : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 5c	 sub	 esp, 92			; 0000005cH
  00006	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000b	33 c5		 xor	 eax, ebp
  0000d	89 45 fc	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00010	53		 push	 ebx
  00011	56		 push	 esi
  00012	57		 push	 edi
  00013	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 76   : unsigned char bits[8]; 
; 77   : unsigned int index, padLen; 
; 78   : 
; 79   : /* Save number of bits */ 
; 80   : Encode (bits, context->count, 8); 

  00016	6a 08		 push	 8
  00018	8b 45 0c	 mov	 eax, DWORD PTR _context$[ebp]
  0001b	83 c0 10	 add	 eax, 16			; 00000010H
  0001e	50		 push	 eax
  0001f	8d 4d f0	 lea	 ecx, DWORD PTR _bits$[ebp]
  00022	51		 push	 ecx
  00023	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00026	e8 00 00 00 00	 call	 ?Encode@MD5_L@@QAEXPAEPAKI@Z ; MD5_L::Encode

; 81   : 
; 82   : /* Pad out to 56 mod 64. 
; 83   : */ 
; 84   : index = (unsigned int)((context->count[0] >> 3) & 0x3f); 

  0002b	b8 04 00 00 00	 mov	 eax, 4
  00030	6b c8 00	 imul	 ecx, eax, 0
  00033	8b 55 0c	 mov	 edx, DWORD PTR _context$[ebp]
  00036	8b 44 0a 10	 mov	 eax, DWORD PTR [edx+ecx+16]
  0003a	c1 e8 03	 shr	 eax, 3
  0003d	83 e0 3f	 and	 eax, 63			; 0000003fH
  00040	89 45 ec	 mov	 DWORD PTR _index$[ebp], eax

; 85   : padLen = (index < 56) ? (56 - index) : (120 - index); 

  00043	83 7d ec 38	 cmp	 DWORD PTR _index$[ebp], 56 ; 00000038H
  00047	73 0d		 jae	 SHORT $LN3@MD5Final
  00049	b8 38 00 00 00	 mov	 eax, 56			; 00000038H
  0004e	2b 45 ec	 sub	 eax, DWORD PTR _index$[ebp]
  00051	89 45 a4	 mov	 DWORD PTR tv77[ebp], eax
  00054	eb 0b		 jmp	 SHORT $LN4@MD5Final
$LN3@MD5Final:
  00056	b9 78 00 00 00	 mov	 ecx, 120		; 00000078H
  0005b	2b 4d ec	 sub	 ecx, DWORD PTR _index$[ebp]
  0005e	89 4d a4	 mov	 DWORD PTR tv77[ebp], ecx
$LN4@MD5Final:
  00061	8b 55 a4	 mov	 edx, DWORD PTR tv77[ebp]
  00064	89 55 e8	 mov	 DWORD PTR _padLen$[ebp], edx

; 86   : MD5Update (context, PADDING, padLen); 

  00067	8b 45 e8	 mov	 eax, DWORD PTR _padLen$[ebp]
  0006a	50		 push	 eax
  0006b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0006e	51		 push	 ecx
  0006f	8b 55 0c	 mov	 edx, DWORD PTR _context$[ebp]
  00072	52		 push	 edx
  00073	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00076	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update

; 87   : 
; 88   : /* Append length (before padding) */ 
; 89   : MD5Update (context, bits, 8); 

  0007b	6a 08		 push	 8
  0007d	8d 45 f0	 lea	 eax, DWORD PTR _bits$[ebp]
  00080	50		 push	 eax
  00081	8b 4d 0c	 mov	 ecx, DWORD PTR _context$[ebp]
  00084	51		 push	 ecx
  00085	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00088	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update

; 90   : 
; 91   : /* Store state in digest */ 
; 92   : Encode (digest, context->state, 16); 

  0008d	6a 10		 push	 16			; 00000010H
  0008f	8b 45 0c	 mov	 eax, DWORD PTR _context$[ebp]
  00092	50		 push	 eax
  00093	8b 4d 08	 mov	 ecx, DWORD PTR _digest$[ebp]
  00096	51		 push	 ecx
  00097	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0009a	e8 00 00 00 00	 call	 ?Encode@MD5_L@@QAEXPAEPAKI@Z ; MD5_L::Encode

; 93   : 
; 94   : /* Zeroize sensitive information. 
; 95   : */ 
; 96   : MD5_memset ((POINTER)context, 0, sizeof (*context)); 

  0009f	6a 58		 push	 88			; 00000058H
  000a1	6a 00		 push	 0
  000a3	8b 45 0c	 mov	 eax, DWORD PTR _context$[ebp]
  000a6	50		 push	 eax
  000a7	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000aa	e8 00 00 00 00	 call	 ?MD5_memset@MD5_L@@QAEXPAEHI@Z ; MD5_L::MD5_memset

; 97   : } 

  000af	5f		 pop	 edi
  000b0	5e		 pop	 esi
  000b1	5b		 pop	 ebx
  000b2	8b 4d fc	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000b5	33 cd		 xor	 ecx, ebp
  000b7	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000bc	8b e5		 mov	 esp, ebp
  000be	5d		 pop	 ebp
  000bf	c2 08 00	 ret	 8
?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z ENDP		; MD5_L::MD5Final
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z
_TEXT	SEGMENT
tv76 = -84						; size = 4
_partLen$ = -16						; size = 4
_index$ = -12						; size = 4
_i$ = -8						; size = 4
_this$ = -4						; size = 4
_context$ = 8						; size = 4
_input$ = 12						; size = 4
_inputLen$ = 16						; size = 4
?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z PROC		; MD5_L::MD5Update, COMDAT
; _this$ = ecx

; 33   : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 54	 sub	 esp, 84			; 00000054H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 34   : unsigned int i, index, partLen; 
; 35   : 
; 36   : /* Compute number of bytes mod 64 */ 
; 37   : index = (unsigned int)((context->count[0] >> 3) & 0x3F); 

  0000c	b8 04 00 00 00	 mov	 eax, 4
  00011	6b c8 00	 imul	 ecx, eax, 0
  00014	8b 55 08	 mov	 edx, DWORD PTR _context$[ebp]
  00017	8b 44 0a 10	 mov	 eax, DWORD PTR [edx+ecx+16]
  0001b	c1 e8 03	 shr	 eax, 3
  0001e	83 e0 3f	 and	 eax, 63			; 0000003fH
  00021	89 45 f4	 mov	 DWORD PTR _index$[ebp], eax

; 38   : 
; 39   : /* Update number of bits */ 
; 40   : if ((context->count[0] += ((UINT4)inputLen << 3)) 
; 41   : < ((UINT4)inputLen << 3)) 

  00024	8b 45 10	 mov	 eax, DWORD PTR _inputLen$[ebp]
  00027	c1 e0 03	 shl	 eax, 3
  0002a	b9 04 00 00 00	 mov	 ecx, 4
  0002f	6b d1 00	 imul	 edx, ecx, 0
  00032	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  00035	8b 54 11 10	 mov	 edx, DWORD PTR [ecx+edx+16]
  00039	03 d0		 add	 edx, eax
  0003b	89 55 ac	 mov	 DWORD PTR tv76[ebp], edx
  0003e	b8 04 00 00 00	 mov	 eax, 4
  00043	6b c8 00	 imul	 ecx, eax, 0
  00046	8b 55 08	 mov	 edx, DWORD PTR _context$[ebp]
  00049	8b 45 ac	 mov	 eax, DWORD PTR tv76[ebp]
  0004c	89 44 0a 10	 mov	 DWORD PTR [edx+ecx+16], eax
  00050	8b 4d 10	 mov	 ecx, DWORD PTR _inputLen$[ebp]
  00053	c1 e1 03	 shl	 ecx, 3
  00056	39 4d ac	 cmp	 DWORD PTR tv76[ebp], ecx
  00059	73 21		 jae	 SHORT $LN5@MD5Update

; 42   : context->count[1]++; 

  0005b	b8 04 00 00 00	 mov	 eax, 4
  00060	c1 e0 00	 shl	 eax, 0
  00063	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  00066	8b 54 01 10	 mov	 edx, DWORD PTR [ecx+eax+16]
  0006a	83 c2 01	 add	 edx, 1
  0006d	b8 04 00 00 00	 mov	 eax, 4
  00072	c1 e0 00	 shl	 eax, 0
  00075	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  00078	89 54 01 10	 mov	 DWORD PTR [ecx+eax+16], edx
$LN5@MD5Update:

; 43   : context->count[1] += ((UINT4)inputLen >> 29); 

  0007c	8b 45 10	 mov	 eax, DWORD PTR _inputLen$[ebp]
  0007f	c1 e8 1d	 shr	 eax, 29			; 0000001dH
  00082	b9 04 00 00 00	 mov	 ecx, 4
  00087	c1 e1 00	 shl	 ecx, 0
  0008a	8b 55 08	 mov	 edx, DWORD PTR _context$[ebp]
  0008d	03 44 0a 10	 add	 eax, DWORD PTR [edx+ecx+16]
  00091	b9 04 00 00 00	 mov	 ecx, 4
  00096	c1 e1 00	 shl	 ecx, 0
  00099	8b 55 08	 mov	 edx, DWORD PTR _context$[ebp]
  0009c	89 44 0a 10	 mov	 DWORD PTR [edx+ecx+16], eax

; 44   : 
; 45   : partLen = 64 - index; 

  000a0	b8 40 00 00 00	 mov	 eax, 64			; 00000040H
  000a5	2b 45 f4	 sub	 eax, DWORD PTR _index$[ebp]
  000a8	89 45 f0	 mov	 DWORD PTR _partLen$[ebp], eax

; 46   : 
; 47   : /* Transform as many times as possible. 
; 48   : */ 
; 49   : if (inputLen >= partLen) { 

  000ab	8b 45 10	 mov	 eax, DWORD PTR _inputLen$[ebp]
  000ae	3b 45 f0	 cmp	 eax, DWORD PTR _partLen$[ebp]
  000b1	72 68		 jb	 SHORT $LN6@MD5Update

; 50   : MD5_memcpy 

  000b3	8b 45 f0	 mov	 eax, DWORD PTR _partLen$[ebp]
  000b6	50		 push	 eax
  000b7	8b 4d 0c	 mov	 ecx, DWORD PTR _input$[ebp]
  000ba	51		 push	 ecx
  000bb	8b 55 f4	 mov	 edx, DWORD PTR _index$[ebp]
  000be	8b 45 08	 mov	 eax, DWORD PTR _context$[ebp]
  000c1	8d 4c 10 18	 lea	 ecx, DWORD PTR [eax+edx+24]
  000c5	51		 push	 ecx
  000c6	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000c9	e8 00 00 00 00	 call	 ?MD5_memcpy@MD5_L@@QAEXPAE0I@Z ; MD5_L::MD5_memcpy

; 51   : ((POINTER)&context->buffer[index], (POINTER)input, partLen); 
; 52   : MD5Transform (context->state, context->buffer); 

  000ce	8b 45 08	 mov	 eax, DWORD PTR _context$[ebp]
  000d1	83 c0 18	 add	 eax, 24			; 00000018H
  000d4	50		 push	 eax
  000d5	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  000d8	51		 push	 ecx
  000d9	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000dc	e8 00 00 00 00	 call	 ?MD5Transform@MD5_L@@QAEXQAKQAE@Z ; MD5_L::MD5Transform

; 53   : 
; 54   : for (i = partLen; i + 63 < inputLen; i += 64) 

  000e1	8b 45 f0	 mov	 eax, DWORD PTR _partLen$[ebp]
  000e4	89 45 f8	 mov	 DWORD PTR _i$[ebp], eax
  000e7	eb 09		 jmp	 SHORT $LN4@MD5Update
$LN2@MD5Update:
  000e9	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  000ec	83 c0 40	 add	 eax, 64			; 00000040H
  000ef	89 45 f8	 mov	 DWORD PTR _i$[ebp], eax
$LN4@MD5Update:
  000f2	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  000f5	83 c0 3f	 add	 eax, 63			; 0000003fH
  000f8	3b 45 10	 cmp	 eax, DWORD PTR _inputLen$[ebp]
  000fb	73 15		 jae	 SHORT $LN3@MD5Update

; 55   : MD5Transform (context->state, &input[i]); 

  000fd	8b 45 0c	 mov	 eax, DWORD PTR _input$[ebp]
  00100	03 45 f8	 add	 eax, DWORD PTR _i$[ebp]
  00103	50		 push	 eax
  00104	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  00107	51		 push	 ecx
  00108	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0010b	e8 00 00 00 00	 call	 ?MD5Transform@MD5_L@@QAEXQAKQAE@Z ; MD5_L::MD5Transform
  00110	eb d7		 jmp	 SHORT $LN2@MD5Update
$LN3@MD5Update:

; 56   : 
; 57   : index = 0; 

  00112	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _index$[ebp], 0

; 58   : } 

  00119	eb 07		 jmp	 SHORT $LN7@MD5Update
$LN6@MD5Update:

; 59   : else 
; 60   : i = 0; 

  0011b	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
$LN7@MD5Update:

; 61   : 
; 62   : /* Buffer remaining input */ 
; 63   : MD5_memcpy 

  00122	8b 45 10	 mov	 eax, DWORD PTR _inputLen$[ebp]
  00125	2b 45 f8	 sub	 eax, DWORD PTR _i$[ebp]
  00128	50		 push	 eax
  00129	8b 4d 0c	 mov	 ecx, DWORD PTR _input$[ebp]
  0012c	03 4d f8	 add	 ecx, DWORD PTR _i$[ebp]
  0012f	51		 push	 ecx
  00130	8b 55 f4	 mov	 edx, DWORD PTR _index$[ebp]
  00133	8b 45 08	 mov	 eax, DWORD PTR _context$[ebp]
  00136	8d 4c 10 18	 lea	 ecx, DWORD PTR [eax+edx+24]
  0013a	51		 push	 ecx
  0013b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0013e	e8 00 00 00 00	 call	 ?MD5_memcpy@MD5_L@@QAEXPAE0I@Z ; MD5_L::MD5_memcpy

; 64   : ((POINTER)&context->buffer[index], (POINTER)&input[i], 
; 65   : inputLen-i); 
; 66   : } 

  00143	5f		 pop	 edi
  00144	5e		 pop	 esi
  00145	5b		 pop	 ebx
  00146	8b e5		 mov	 esp, ebp
  00148	5d		 pop	 ebp
  00149	c2 0c 00	 ret	 12			; 0000000cH
?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ENDP		; MD5_L::MD5Update
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_context$ = 8						; size = 4
?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z PROC		; MD5_L::MD5Init, COMDAT
; _this$ = ecx

; 14   : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 44	 sub	 esp, 68			; 00000044H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 15   : context->count[0] = context->count[1] = 0; 

  0000c	b8 04 00 00 00	 mov	 eax, 4
  00011	c1 e0 00	 shl	 eax, 0
  00014	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  00017	c7 44 01 10 00
	00 00 00	 mov	 DWORD PTR [ecx+eax+16], 0
  0001f	ba 04 00 00 00	 mov	 edx, 4
  00024	6b c2 00	 imul	 eax, edx, 0
  00027	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  0002a	c7 44 01 10 00
	00 00 00	 mov	 DWORD PTR [ecx+eax+16], 0

; 16   : /* Load magic initialization constants. 
; 17   : */ 
; 18   : context->state[0] = 0x67452301; 

  00032	b8 04 00 00 00	 mov	 eax, 4
  00037	6b c8 00	 imul	 ecx, eax, 0
  0003a	8b 55 08	 mov	 edx, DWORD PTR _context$[ebp]
  0003d	c7 04 0a 01 23
	45 67		 mov	 DWORD PTR [edx+ecx], 1732584193 ; 67452301H

; 19   : context->state[1] = 0xefcdab89; 

  00044	b8 04 00 00 00	 mov	 eax, 4
  00049	c1 e0 00	 shl	 eax, 0
  0004c	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  0004f	c7 04 01 89 ab
	cd ef		 mov	 DWORD PTR [ecx+eax], -271733879 ; efcdab89H

; 20   : context->state[2] = 0x98badcfe; 

  00056	b8 04 00 00 00	 mov	 eax, 4
  0005b	d1 e0		 shl	 eax, 1
  0005d	8b 4d 08	 mov	 ecx, DWORD PTR _context$[ebp]
  00060	c7 04 01 fe dc
	ba 98		 mov	 DWORD PTR [ecx+eax], -1732584194 ; 98badcfeH

; 21   : context->state[3] = 0x10325476; 

  00067	b8 04 00 00 00	 mov	 eax, 4
  0006c	6b c8 03	 imul	 ecx, eax, 3
  0006f	8b 55 08	 mov	 edx, DWORD PTR _context$[ebp]
  00072	c7 04 0a 76 54
	32 10		 mov	 DWORD PTR [edx+ecx], 271733878 ; 10325476H

; 22   : } 

  00079	5f		 pop	 edi
  0007a	5e		 pop	 esi
  0007b	5b		 pop	 ebx
  0007c	8b e5		 mov	 esp, ebp
  0007e	5d		 pop	 ebp
  0007f	c2 04 00	 ret	 4
?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z ENDP		; MD5_L::MD5Init
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5_memset@MD5_L@@QAEXPAEHI@Z
_TEXT	SEGMENT
_i$ = -8						; size = 4
_this$ = -4						; size = 4
_output$ = 8						; size = 4
_value$ = 12						; size = 4
_len$ = 16						; size = 4
?MD5_memset@MD5_L@@QAEXPAEHI@Z PROC			; MD5_L::MD5_memset, COMDAT
; _this$ = ecx

; 248  : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 48	 sub	 esp, 72			; 00000048H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 249  : unsigned int i; 
; 250  : 
; 251  : for (i = 0; i < len; i++) 

  0000c	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00013	eb 09		 jmp	 SHORT $LN4@MD5_memset
$LN2@MD5_memset:
  00015	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00018	83 c0 01	 add	 eax, 1
  0001b	89 45 f8	 mov	 DWORD PTR _i$[ebp], eax
$LN4@MD5_memset:
  0001e	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00021	3b 45 10	 cmp	 eax, DWORD PTR _len$[ebp]
  00024	73 0d		 jae	 SHORT $LN1@MD5_memset

; 252  : ((char *)output)[i] = (char)value; 

  00026	8b 45 08	 mov	 eax, DWORD PTR _output$[ebp]
  00029	03 45 f8	 add	 eax, DWORD PTR _i$[ebp]
  0002c	8a 4d 0c	 mov	 cl, BYTE PTR _value$[ebp]
  0002f	88 08		 mov	 BYTE PTR [eax], cl
  00031	eb e2		 jmp	 SHORT $LN2@MD5_memset
$LN1@MD5_memset:

; 253  : } 

  00033	5f		 pop	 edi
  00034	5e		 pop	 esi
  00035	5b		 pop	 ebx
  00036	8b e5		 mov	 esp, ebp
  00038	5d		 pop	 ebp
  00039	c2 0c 00	 ret	 12			; 0000000cH
?MD5_memset@MD5_L@@QAEXPAEHI@Z ENDP			; MD5_L::MD5_memset
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5_memcpy@MD5_L@@QAEXPAE0I@Z
_TEXT	SEGMENT
_i$ = -8						; size = 4
_this$ = -4						; size = 4
_output$ = 8						; size = 4
_input$ = 12						; size = 4
_len$ = 16						; size = 4
?MD5_memcpy@MD5_L@@QAEXPAE0I@Z PROC			; MD5_L::MD5_memcpy, COMDAT
; _this$ = ecx

; 234  : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 48	 sub	 esp, 72			; 00000048H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 235  : unsigned int i; 
; 236  : 
; 237  : for (i = 0; i < len; i++) 

  0000c	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00013	eb 09		 jmp	 SHORT $LN4@MD5_memcpy
$LN2@MD5_memcpy:
  00015	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00018	83 c0 01	 add	 eax, 1
  0001b	89 45 f8	 mov	 DWORD PTR _i$[ebp], eax
$LN4@MD5_memcpy:
  0001e	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00021	3b 45 10	 cmp	 eax, DWORD PTR _len$[ebp]
  00024	73 12		 jae	 SHORT $LN1@MD5_memcpy

; 238  : output[i] = input[i]; 

  00026	8b 45 08	 mov	 eax, DWORD PTR _output$[ebp]
  00029	03 45 f8	 add	 eax, DWORD PTR _i$[ebp]
  0002c	8b 4d 0c	 mov	 ecx, DWORD PTR _input$[ebp]
  0002f	03 4d f8	 add	 ecx, DWORD PTR _i$[ebp]
  00032	8a 11		 mov	 dl, BYTE PTR [ecx]
  00034	88 10		 mov	 BYTE PTR [eax], dl
  00036	eb dd		 jmp	 SHORT $LN2@MD5_memcpy
$LN1@MD5_memcpy:

; 239  : } 

  00038	5f		 pop	 edi
  00039	5e		 pop	 esi
  0003a	5b		 pop	 ebx
  0003b	8b e5		 mov	 esp, ebp
  0003d	5d		 pop	 ebp
  0003e	c2 0c 00	 ret	 12			; 0000000cH
?MD5_memcpy@MD5_L@@QAEXPAE0I@Z ENDP			; MD5_L::MD5_memcpy
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?Decode@MD5_L@@QAEXPAKPAEI@Z
_TEXT	SEGMENT
_j$ = -12						; size = 4
_i$ = -8						; size = 4
_this$ = -4						; size = 4
_output$ = 8						; size = 4
_input$ = 12						; size = 4
_len$ = 16						; size = 4
?Decode@MD5_L@@QAEXPAKPAEI@Z PROC			; MD5_L::Decode, COMDAT
; _this$ = ecx

; 219  : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 4c	 sub	 esp, 76			; 0000004cH
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 220  : unsigned int i, j; 
; 221  : 
; 222  : for (i = 0, j = 0; j < len; i++, j += 4) 

  0000c	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00013	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _j$[ebp], 0
  0001a	eb 12		 jmp	 SHORT $LN4@Decode
$LN2@Decode:
  0001c	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  0001f	83 c0 01	 add	 eax, 1
  00022	89 45 f8	 mov	 DWORD PTR _i$[ebp], eax
  00025	8b 4d f4	 mov	 ecx, DWORD PTR _j$[ebp]
  00028	83 c1 04	 add	 ecx, 4
  0002b	89 4d f4	 mov	 DWORD PTR _j$[ebp], ecx
$LN4@Decode:
  0002e	8b 45 f4	 mov	 eax, DWORD PTR _j$[ebp]
  00031	3b 45 10	 cmp	 eax, DWORD PTR _len$[ebp]
  00034	73 41		 jae	 SHORT $LN1@Decode

; 223  : output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) | 

  00036	8b 45 0c	 mov	 eax, DWORD PTR _input$[ebp]
  00039	03 45 f4	 add	 eax, DWORD PTR _j$[ebp]
  0003c	0f b6 08	 movzx	 ecx, BYTE PTR [eax]
  0003f	8b 55 0c	 mov	 edx, DWORD PTR _input$[ebp]
  00042	03 55 f4	 add	 edx, DWORD PTR _j$[ebp]
  00045	0f b6 42 01	 movzx	 eax, BYTE PTR [edx+1]
  00049	c1 e0 08	 shl	 eax, 8
  0004c	0b c8		 or	 ecx, eax
  0004e	8b 55 0c	 mov	 edx, DWORD PTR _input$[ebp]
  00051	03 55 f4	 add	 edx, DWORD PTR _j$[ebp]
  00054	0f b6 42 02	 movzx	 eax, BYTE PTR [edx+2]
  00058	c1 e0 10	 shl	 eax, 16			; 00000010H
  0005b	0b c8		 or	 ecx, eax
  0005d	8b 55 0c	 mov	 edx, DWORD PTR _input$[ebp]
  00060	03 55 f4	 add	 edx, DWORD PTR _j$[ebp]
  00063	0f b6 42 03	 movzx	 eax, BYTE PTR [edx+3]
  00067	c1 e0 18	 shl	 eax, 24			; 00000018H
  0006a	0b c8		 or	 ecx, eax
  0006c	8b 55 f8	 mov	 edx, DWORD PTR _i$[ebp]
  0006f	8b 45 08	 mov	 eax, DWORD PTR _output$[ebp]
  00072	89 0c 90	 mov	 DWORD PTR [eax+edx*4], ecx
  00075	eb a5		 jmp	 SHORT $LN2@Decode
$LN1@Decode:

; 224  : (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24); 
; 225  : } 

  00077	5f		 pop	 edi
  00078	5e		 pop	 esi
  00079	5b		 pop	 ebx
  0007a	8b e5		 mov	 esp, ebp
  0007c	5d		 pop	 ebp
  0007d	c2 0c 00	 ret	 12			; 0000000cH
?Decode@MD5_L@@QAEXPAKPAEI@Z ENDP			; MD5_L::Decode
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?Encode@MD5_L@@QAEXPAEPAKI@Z
_TEXT	SEGMENT
_j$ = -12						; size = 4
_i$ = -8						; size = 4
_this$ = -4						; size = 4
_output$ = 8						; size = 4
_input$ = 12						; size = 4
_len$ = 16						; size = 4
?Encode@MD5_L@@QAEXPAEPAKI@Z PROC			; MD5_L::Encode, COMDAT
; _this$ = ecx

; 200  : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 4c	 sub	 esp, 76			; 0000004cH
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 201  : unsigned int i, j; 
; 202  : 
; 203  : for (i = 0, j = 0; j < len; i++, j += 4) { 

  0000c	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _i$[ebp], 0
  00013	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR _j$[ebp], 0
  0001a	eb 12		 jmp	 SHORT $LN4@Encode
$LN2@Encode:
  0001c	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  0001f	83 c0 01	 add	 eax, 1
  00022	89 45 f8	 mov	 DWORD PTR _i$[ebp], eax
  00025	8b 4d f4	 mov	 ecx, DWORD PTR _j$[ebp]
  00028	83 c1 04	 add	 ecx, 4
  0002b	89 4d f4	 mov	 DWORD PTR _j$[ebp], ecx
$LN4@Encode:
  0002e	8b 45 f4	 mov	 eax, DWORD PTR _j$[ebp]
  00031	3b 45 10	 cmp	 eax, DWORD PTR _len$[ebp]
  00034	73 6d		 jae	 SHORT $LN1@Encode

; 204  : output[j] = (unsigned char)(input[i] & 0xff); 

  00036	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00039	8b 4d 0c	 mov	 ecx, DWORD PTR _input$[ebp]
  0003c	8b 14 81	 mov	 edx, DWORD PTR [ecx+eax*4]
  0003f	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00045	8b 45 08	 mov	 eax, DWORD PTR _output$[ebp]
  00048	03 45 f4	 add	 eax, DWORD PTR _j$[ebp]
  0004b	88 10		 mov	 BYTE PTR [eax], dl

; 205  : output[j+1] = (unsigned char)((input[i] >> 8) & 0xff); 

  0004d	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00050	8b 4d 0c	 mov	 ecx, DWORD PTR _input$[ebp]
  00053	8b 14 81	 mov	 edx, DWORD PTR [ecx+eax*4]
  00056	c1 ea 08	 shr	 edx, 8
  00059	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  0005f	8b 45 08	 mov	 eax, DWORD PTR _output$[ebp]
  00062	03 45 f4	 add	 eax, DWORD PTR _j$[ebp]
  00065	88 50 01	 mov	 BYTE PTR [eax+1], dl

; 206  : output[j+2] = (unsigned char)((input[i] >> 16) & 0xff); 

  00068	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  0006b	8b 4d 0c	 mov	 ecx, DWORD PTR _input$[ebp]
  0006e	8b 14 81	 mov	 edx, DWORD PTR [ecx+eax*4]
  00071	c1 ea 10	 shr	 edx, 16			; 00000010H
  00074	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  0007a	8b 45 08	 mov	 eax, DWORD PTR _output$[ebp]
  0007d	03 45 f4	 add	 eax, DWORD PTR _j$[ebp]
  00080	88 50 02	 mov	 BYTE PTR [eax+2], dl

; 207  : output[j+3] = (unsigned char)((input[i] >> 24) & 0xff); 

  00083	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00086	8b 4d 0c	 mov	 ecx, DWORD PTR _input$[ebp]
  00089	8b 14 81	 mov	 edx, DWORD PTR [ecx+eax*4]
  0008c	c1 ea 18	 shr	 edx, 24			; 00000018H
  0008f	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00095	8b 45 08	 mov	 eax, DWORD PTR _output$[ebp]
  00098	03 45 f4	 add	 eax, DWORD PTR _j$[ebp]
  0009b	88 50 03	 mov	 BYTE PTR [eax+3], dl

; 208  : } 

  0009e	e9 79 ff ff ff	 jmp	 $LN2@Encode
$LN1@Encode:

; 209  : } 

  000a3	5f		 pop	 edi
  000a4	5e		 pop	 esi
  000a5	5b		 pop	 ebx
  000a6	8b e5		 mov	 esp, ebp
  000a8	5d		 pop	 ebp
  000a9	c2 0c 00	 ret	 12			; 0000000cH
?Encode@MD5_L@@QAEXPAEPAKI@Z ENDP			; MD5_L::Encode
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5Transform@MD5_L@@QAEXQAKQAE@Z
_TEXT	SEGMENT
_x$ = -88						; size = 64
_d$ = -24						; size = 4
_c$ = -20						; size = 4
_b$ = -16						; size = 4
_a$ = -12						; size = 4
_this$ = -8						; size = 4
__$ArrayPad$ = -4					; size = 4
_state$ = 8						; size = 4
_block$ = 12						; size = 4
?MD5Transform@MD5_L@@QAEXQAKQAE@Z PROC			; MD5_L::MD5Transform, COMDAT
; _this$ = ecx

; 105  : { 

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	81 ec 98 00 00
	00		 sub	 esp, 152		; 00000098H
  00009	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0000e	33 c5		 xor	 eax, ebp
  00010	89 45 fc	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00013	53		 push	 ebx
  00014	56		 push	 esi
  00015	57		 push	 edi
  00016	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 106  : UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; 

  00019	b8 04 00 00 00	 mov	 eax, 4
  0001e	6b c8 00	 imul	 ecx, eax, 0
  00021	8b 55 08	 mov	 edx, DWORD PTR _state$[ebp]
  00024	8b 04 0a	 mov	 eax, DWORD PTR [edx+ecx]
  00027	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  0002a	b8 04 00 00 00	 mov	 eax, 4
  0002f	c1 e0 00	 shl	 eax, 0
  00032	8b 4d 08	 mov	 ecx, DWORD PTR _state$[ebp]
  00035	8b 14 01	 mov	 edx, DWORD PTR [ecx+eax]
  00038	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  0003b	b8 04 00 00 00	 mov	 eax, 4
  00040	d1 e0		 shl	 eax, 1
  00042	8b 4d 08	 mov	 ecx, DWORD PTR _state$[ebp]
  00045	8b 14 01	 mov	 edx, DWORD PTR [ecx+eax]
  00048	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  0004b	b8 04 00 00 00	 mov	 eax, 4
  00050	6b c8 03	 imul	 ecx, eax, 3
  00053	8b 55 08	 mov	 edx, DWORD PTR _state$[ebp]
  00056	8b 04 0a	 mov	 eax, DWORD PTR [edx+ecx]
  00059	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 107  : 
; 108  : Decode (x, block, 64); 

  0005c	6a 40		 push	 64			; 00000040H
  0005e	8b 45 0c	 mov	 eax, DWORD PTR _block$[ebp]
  00061	50		 push	 eax
  00062	8d 4d a8	 lea	 ecx, DWORD PTR _x$[ebp]
  00065	51		 push	 ecx
  00066	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00069	e8 00 00 00 00	 call	 ?Decode@MD5_L@@QAEXPAKPAEI@Z ; MD5_L::Decode

; 109  : 
; 110  : /* Round 1 */ 
; 111  : FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */ 

  0006e	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00071	23 45 ec	 and	 eax, DWORD PTR _c$[ebp]
  00074	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00077	f7 d1		 not	 ecx
  00079	23 4d e8	 and	 ecx, DWORD PTR _d$[ebp]
  0007c	0b c1		 or	 eax, ecx
  0007e	ba 04 00 00 00	 mov	 edx, 4
  00083	6b ca 00	 imul	 ecx, edx, 0
  00086	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  0008a	8b 55 f4	 mov	 edx, DWORD PTR _a$[ebp]
  0008d	8d 84 02 78 a4
	6a d7		 lea	 eax, DWORD PTR [edx+eax-680876936]
  00094	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00097	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  0009a	c1 e0 07	 shl	 eax, 7
  0009d	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  000a0	c1 e9 19	 shr	 ecx, 25			; 00000019H
  000a3	0b c1		 or	 eax, ecx
  000a5	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  000a8	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  000ab	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  000ae	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 112  : FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */ 

  000b1	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  000b4	23 45 f0	 and	 eax, DWORD PTR _b$[ebp]
  000b7	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  000ba	f7 d1		 not	 ecx
  000bc	23 4d ec	 and	 ecx, DWORD PTR _c$[ebp]
  000bf	0b c1		 or	 eax, ecx
  000c1	ba 04 00 00 00	 mov	 edx, 4
  000c6	c1 e2 00	 shl	 edx, 0
  000c9	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  000cd	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  000d0	8d 94 01 56 b7
	c7 e8		 lea	 edx, DWORD PTR [ecx+eax-389564586]
  000d7	89 55 e8	 mov	 DWORD PTR _d$[ebp], edx
  000da	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  000dd	c1 e0 0c	 shl	 eax, 12			; 0000000cH
  000e0	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  000e3	c1 e9 14	 shr	 ecx, 20			; 00000014H
  000e6	0b c1		 or	 eax, ecx
  000e8	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  000eb	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  000ee	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  000f1	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 113  : FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */ 

  000f4	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  000f7	23 45 f4	 and	 eax, DWORD PTR _a$[ebp]
  000fa	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  000fd	f7 d1		 not	 ecx
  000ff	23 4d f0	 and	 ecx, DWORD PTR _b$[ebp]
  00102	0b c1		 or	 eax, ecx
  00104	ba 04 00 00 00	 mov	 edx, 4
  00109	d1 e2		 shl	 edx, 1
  0010b	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  0010f	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00112	8d 94 01 db 70
	20 24		 lea	 edx, DWORD PTR [ecx+eax+606105819]
  00119	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  0011c	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0011f	c1 e0 11	 shl	 eax, 17			; 00000011H
  00122	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00125	c1 e9 0f	 shr	 ecx, 15			; 0000000fH
  00128	0b c1		 or	 eax, ecx
  0012a	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  0012d	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00130	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00133	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 114  : FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */ 

  00136	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00139	23 45 e8	 and	 eax, DWORD PTR _d$[ebp]
  0013c	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  0013f	f7 d1		 not	 ecx
  00141	23 4d f4	 and	 ecx, DWORD PTR _a$[ebp]
  00144	0b c1		 or	 eax, ecx
  00146	ba 04 00 00 00	 mov	 edx, 4
  0014b	6b ca 03	 imul	 ecx, edx, 3
  0014e	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00152	8b 55 f0	 mov	 edx, DWORD PTR _b$[ebp]
  00155	8d 84 02 ee ce
	bd c1		 lea	 eax, DWORD PTR [edx+eax-1044525330]
  0015c	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  0015f	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00162	c1 e0 16	 shl	 eax, 22			; 00000016H
  00165	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00168	c1 e9 0a	 shr	 ecx, 10			; 0000000aH
  0016b	0b c1		 or	 eax, ecx
  0016d	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00170	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00173	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  00176	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 115  : FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */ 

  00179	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  0017c	23 45 ec	 and	 eax, DWORD PTR _c$[ebp]
  0017f	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00182	f7 d1		 not	 ecx
  00184	23 4d e8	 and	 ecx, DWORD PTR _d$[ebp]
  00187	0b c1		 or	 eax, ecx
  00189	ba 04 00 00 00	 mov	 edx, 4
  0018e	c1 e2 02	 shl	 edx, 2
  00191	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00195	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00198	8d 94 01 af 0f
	7c f5		 lea	 edx, DWORD PTR [ecx+eax-176418897]
  0019f	89 55 f4	 mov	 DWORD PTR _a$[ebp], edx
  001a2	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  001a5	c1 e0 07	 shl	 eax, 7
  001a8	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  001ab	c1 e9 19	 shr	 ecx, 25			; 00000019H
  001ae	0b c1		 or	 eax, ecx
  001b0	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  001b3	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  001b6	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  001b9	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 116  : FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */ 

  001bc	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  001bf	23 45 f0	 and	 eax, DWORD PTR _b$[ebp]
  001c2	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  001c5	f7 d1		 not	 ecx
  001c7	23 4d ec	 and	 ecx, DWORD PTR _c$[ebp]
  001ca	0b c1		 or	 eax, ecx
  001cc	ba 04 00 00 00	 mov	 edx, 4
  001d1	6b ca 05	 imul	 ecx, edx, 5
  001d4	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  001d8	8b 55 e8	 mov	 edx, DWORD PTR _d$[ebp]
  001db	8d 84 02 2a c6
	87 47		 lea	 eax, DWORD PTR [edx+eax+1200080426]
  001e2	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  001e5	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  001e8	c1 e0 0c	 shl	 eax, 12			; 0000000cH
  001eb	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  001ee	c1 e9 14	 shr	 ecx, 20			; 00000014H
  001f1	0b c1		 or	 eax, ecx
  001f3	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  001f6	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  001f9	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  001fc	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 117  : FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */ 

  001ff	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00202	23 45 f4	 and	 eax, DWORD PTR _a$[ebp]
  00205	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00208	f7 d1		 not	 ecx
  0020a	23 4d f0	 and	 ecx, DWORD PTR _b$[ebp]
  0020d	0b c1		 or	 eax, ecx
  0020f	ba 04 00 00 00	 mov	 edx, 4
  00214	6b ca 06	 imul	 ecx, edx, 6
  00217	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  0021b	8b 55 ec	 mov	 edx, DWORD PTR _c$[ebp]
  0021e	8d 84 02 13 46
	30 a8		 lea	 eax, DWORD PTR [edx+eax-1473231341]
  00225	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00228	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0022b	c1 e0 11	 shl	 eax, 17			; 00000011H
  0022e	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00231	c1 e9 0f	 shr	 ecx, 15			; 0000000fH
  00234	0b c1		 or	 eax, ecx
  00236	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00239	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0023c	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  0023f	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 118  : FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */ 

  00242	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00245	23 45 e8	 and	 eax, DWORD PTR _d$[ebp]
  00248	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  0024b	f7 d1		 not	 ecx
  0024d	23 4d f4	 and	 ecx, DWORD PTR _a$[ebp]
  00250	0b c1		 or	 eax, ecx
  00252	ba 04 00 00 00	 mov	 edx, 4
  00257	6b ca 07	 imul	 ecx, edx, 7
  0025a	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  0025e	8b 55 f0	 mov	 edx, DWORD PTR _b$[ebp]
  00261	8d 84 02 01 95
	46 fd		 lea	 eax, DWORD PTR [edx+eax-45705983]
  00268	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  0026b	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  0026e	c1 e0 16	 shl	 eax, 22			; 00000016H
  00271	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00274	c1 e9 0a	 shr	 ecx, 10			; 0000000aH
  00277	0b c1		 or	 eax, ecx
  00279	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  0027c	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  0027f	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  00282	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 119  : FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */ 

  00285	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00288	23 45 ec	 and	 eax, DWORD PTR _c$[ebp]
  0028b	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  0028e	f7 d1		 not	 ecx
  00290	23 4d e8	 and	 ecx, DWORD PTR _d$[ebp]
  00293	0b c1		 or	 eax, ecx
  00295	ba 04 00 00 00	 mov	 edx, 4
  0029a	c1 e2 03	 shl	 edx, 3
  0029d	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  002a1	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  002a4	8d 94 01 d8 98
	80 69		 lea	 edx, DWORD PTR [ecx+eax+1770035416]
  002ab	89 55 f4	 mov	 DWORD PTR _a$[ebp], edx
  002ae	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  002b1	c1 e0 07	 shl	 eax, 7
  002b4	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  002b7	c1 e9 19	 shr	 ecx, 25			; 00000019H
  002ba	0b c1		 or	 eax, ecx
  002bc	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  002bf	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  002c2	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  002c5	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 120  : FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */ 

  002c8	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  002cb	23 45 f0	 and	 eax, DWORD PTR _b$[ebp]
  002ce	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  002d1	f7 d1		 not	 ecx
  002d3	23 4d ec	 and	 ecx, DWORD PTR _c$[ebp]
  002d6	0b c1		 or	 eax, ecx
  002d8	ba 04 00 00 00	 mov	 edx, 4
  002dd	6b ca 09	 imul	 ecx, edx, 9
  002e0	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  002e4	8b 55 e8	 mov	 edx, DWORD PTR _d$[ebp]
  002e7	8d 84 02 af f7
	44 8b		 lea	 eax, DWORD PTR [edx+eax-1958414417]
  002ee	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  002f1	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  002f4	c1 e0 0c	 shl	 eax, 12			; 0000000cH
  002f7	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  002fa	c1 e9 14	 shr	 ecx, 20			; 00000014H
  002fd	0b c1		 or	 eax, ecx
  002ff	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00302	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00305	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00308	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 121  : FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ 

  0030b	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  0030e	23 45 f4	 and	 eax, DWORD PTR _a$[ebp]
  00311	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00314	f7 d1		 not	 ecx
  00316	23 4d f0	 and	 ecx, DWORD PTR _b$[ebp]
  00319	0b c1		 or	 eax, ecx
  0031b	ba 04 00 00 00	 mov	 edx, 4
  00320	6b ca 0a	 imul	 ecx, edx, 10
  00323	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00327	8b 55 ec	 mov	 edx, DWORD PTR _c$[ebp]
  0032a	8d 84 02 b1 5b
	ff ff		 lea	 eax, DWORD PTR [edx+eax-42063]
  00331	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00334	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00337	c1 e0 11	 shl	 eax, 17			; 00000011H
  0033a	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  0033d	c1 e9 0f	 shr	 ecx, 15			; 0000000fH
  00340	0b c1		 or	 eax, ecx
  00342	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00345	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00348	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  0034b	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 122  : FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ 

  0034e	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00351	23 45 e8	 and	 eax, DWORD PTR _d$[ebp]
  00354	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00357	f7 d1		 not	 ecx
  00359	23 4d f4	 and	 ecx, DWORD PTR _a$[ebp]
  0035c	0b c1		 or	 eax, ecx
  0035e	ba 04 00 00 00	 mov	 edx, 4
  00363	6b ca 0b	 imul	 ecx, edx, 11
  00366	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  0036a	8b 55 f0	 mov	 edx, DWORD PTR _b$[ebp]
  0036d	8d 84 02 be d7
	5c 89		 lea	 eax, DWORD PTR [edx+eax-1990404162]
  00374	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00377	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  0037a	c1 e0 16	 shl	 eax, 22			; 00000016H
  0037d	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00380	c1 e9 0a	 shr	 ecx, 10			; 0000000aH
  00383	0b c1		 or	 eax, ecx
  00385	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00388	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  0038b	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  0038e	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 123  : FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ 

  00391	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00394	23 45 ec	 and	 eax, DWORD PTR _c$[ebp]
  00397	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  0039a	f7 d1		 not	 ecx
  0039c	23 4d e8	 and	 ecx, DWORD PTR _d$[ebp]
  0039f	0b c1		 or	 eax, ecx
  003a1	ba 04 00 00 00	 mov	 edx, 4
  003a6	6b ca 0c	 imul	 ecx, edx, 12
  003a9	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  003ad	8b 55 f4	 mov	 edx, DWORD PTR _a$[ebp]
  003b0	8d 84 02 22 11
	90 6b		 lea	 eax, DWORD PTR [edx+eax+1804603682]
  003b7	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  003ba	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  003bd	c1 e0 07	 shl	 eax, 7
  003c0	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  003c3	c1 e9 19	 shr	 ecx, 25			; 00000019H
  003c6	0b c1		 or	 eax, ecx
  003c8	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  003cb	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  003ce	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  003d1	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 124  : FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ 

  003d4	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  003d7	23 45 f0	 and	 eax, DWORD PTR _b$[ebp]
  003da	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  003dd	f7 d1		 not	 ecx
  003df	23 4d ec	 and	 ecx, DWORD PTR _c$[ebp]
  003e2	0b c1		 or	 eax, ecx
  003e4	ba 04 00 00 00	 mov	 edx, 4
  003e9	6b ca 0d	 imul	 ecx, edx, 13
  003ec	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  003f0	8b 55 e8	 mov	 edx, DWORD PTR _d$[ebp]
  003f3	8d 84 02 93 71
	98 fd		 lea	 eax, DWORD PTR [edx+eax-40341101]
  003fa	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  003fd	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00400	c1 e0 0c	 shl	 eax, 12			; 0000000cH
  00403	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00406	c1 e9 14	 shr	 ecx, 20			; 00000014H
  00409	0b c1		 or	 eax, ecx
  0040b	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  0040e	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00411	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00414	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 125  : FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ 

  00417	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  0041a	23 45 f4	 and	 eax, DWORD PTR _a$[ebp]
  0041d	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00420	f7 d1		 not	 ecx
  00422	23 4d f0	 and	 ecx, DWORD PTR _b$[ebp]
  00425	0b c1		 or	 eax, ecx
  00427	ba 04 00 00 00	 mov	 edx, 4
  0042c	6b ca 0e	 imul	 ecx, edx, 14
  0042f	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00433	8b 55 ec	 mov	 edx, DWORD PTR _c$[ebp]
  00436	8d 84 02 8e 43
	79 a6		 lea	 eax, DWORD PTR [edx+eax-1502002290]
  0043d	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00440	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00443	c1 e0 11	 shl	 eax, 17			; 00000011H
  00446	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00449	c1 e9 0f	 shr	 ecx, 15			; 0000000fH
  0044c	0b c1		 or	 eax, ecx
  0044e	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00451	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00454	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00457	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 126  : FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ 

  0045a	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0045d	23 45 e8	 and	 eax, DWORD PTR _d$[ebp]
  00460	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00463	f7 d1		 not	 ecx
  00465	23 4d f4	 and	 ecx, DWORD PTR _a$[ebp]
  00468	0b c1		 or	 eax, ecx
  0046a	ba 04 00 00 00	 mov	 edx, 4
  0046f	6b ca 0f	 imul	 ecx, edx, 15
  00472	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00476	8b 55 f0	 mov	 edx, DWORD PTR _b$[ebp]
  00479	8d 84 02 21 08
	b4 49		 lea	 eax, DWORD PTR [edx+eax+1236535329]
  00480	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00483	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00486	c1 e0 16	 shl	 eax, 22			; 00000016H
  00489	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  0048c	c1 e9 0a	 shr	 ecx, 10			; 0000000aH
  0048f	0b c1		 or	 eax, ecx
  00491	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00494	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00497	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  0049a	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 127  : 
; 128  : /* Round 2 */ 
; 129  : GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */ 

  0049d	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  004a0	23 45 e8	 and	 eax, DWORD PTR _d$[ebp]
  004a3	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  004a6	f7 d1		 not	 ecx
  004a8	23 4d ec	 and	 ecx, DWORD PTR _c$[ebp]
  004ab	0b c1		 or	 eax, ecx
  004ad	ba 04 00 00 00	 mov	 edx, 4
  004b2	c1 e2 00	 shl	 edx, 0
  004b5	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  004b9	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  004bc	8d 94 01 62 25
	1e f6		 lea	 edx, DWORD PTR [ecx+eax-165796510]
  004c3	89 55 f4	 mov	 DWORD PTR _a$[ebp], edx
  004c6	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  004c9	c1 e0 05	 shl	 eax, 5
  004cc	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  004cf	c1 e9 1b	 shr	 ecx, 27			; 0000001bH
  004d2	0b c1		 or	 eax, ecx
  004d4	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  004d7	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  004da	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  004dd	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 130  : GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */ 

  004e0	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  004e3	23 45 ec	 and	 eax, DWORD PTR _c$[ebp]
  004e6	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  004e9	f7 d1		 not	 ecx
  004eb	23 4d f0	 and	 ecx, DWORD PTR _b$[ebp]
  004ee	0b c1		 or	 eax, ecx
  004f0	ba 04 00 00 00	 mov	 edx, 4
  004f5	6b ca 06	 imul	 ecx, edx, 6
  004f8	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  004fc	8b 55 e8	 mov	 edx, DWORD PTR _d$[ebp]
  004ff	8d 84 02 40 b3
	40 c0		 lea	 eax, DWORD PTR [edx+eax-1069501632]
  00506	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00509	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  0050c	c1 e0 09	 shl	 eax, 9
  0050f	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00512	c1 e9 17	 shr	 ecx, 23			; 00000017H
  00515	0b c1		 or	 eax, ecx
  00517	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  0051a	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  0051d	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00520	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 131  : GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ 

  00523	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00526	23 45 f0	 and	 eax, DWORD PTR _b$[ebp]
  00529	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  0052c	f7 d1		 not	 ecx
  0052e	23 4d f4	 and	 ecx, DWORD PTR _a$[ebp]
  00531	0b c1		 or	 eax, ecx
  00533	ba 04 00 00 00	 mov	 edx, 4
  00538	6b ca 0b	 imul	 ecx, edx, 11
  0053b	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  0053f	8b 55 ec	 mov	 edx, DWORD PTR _c$[ebp]
  00542	8d 84 02 51 5a
	5e 26		 lea	 eax, DWORD PTR [edx+eax+643717713]
  00549	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  0054c	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0054f	c1 e0 0e	 shl	 eax, 14			; 0000000eH
  00552	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00555	c1 e9 12	 shr	 ecx, 18			; 00000012H
  00558	0b c1		 or	 eax, ecx
  0055a	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  0055d	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00560	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00563	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 132  : GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */ 

  00566	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00569	23 45 f4	 and	 eax, DWORD PTR _a$[ebp]
  0056c	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  0056f	f7 d1		 not	 ecx
  00571	23 4d e8	 and	 ecx, DWORD PTR _d$[ebp]
  00574	0b c1		 or	 eax, ecx
  00576	ba 04 00 00 00	 mov	 edx, 4
  0057b	6b ca 00	 imul	 ecx, edx, 0
  0057e	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00582	8b 55 f0	 mov	 edx, DWORD PTR _b$[ebp]
  00585	8d 84 02 aa c7
	b6 e9		 lea	 eax, DWORD PTR [edx+eax-373897302]
  0058c	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  0058f	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00592	c1 e0 14	 shl	 eax, 20			; 00000014H
  00595	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00598	c1 e9 0c	 shr	 ecx, 12			; 0000000cH
  0059b	0b c1		 or	 eax, ecx
  0059d	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  005a0	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  005a3	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  005a6	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 133  : GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */ 

  005a9	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  005ac	23 45 e8	 and	 eax, DWORD PTR _d$[ebp]
  005af	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  005b2	f7 d1		 not	 ecx
  005b4	23 4d ec	 and	 ecx, DWORD PTR _c$[ebp]
  005b7	0b c1		 or	 eax, ecx
  005b9	ba 04 00 00 00	 mov	 edx, 4
  005be	6b ca 05	 imul	 ecx, edx, 5
  005c1	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  005c5	8b 55 f4	 mov	 edx, DWORD PTR _a$[ebp]
  005c8	8d 84 02 5d 10
	2f d6		 lea	 eax, DWORD PTR [edx+eax-701558691]
  005cf	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  005d2	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  005d5	c1 e0 05	 shl	 eax, 5
  005d8	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  005db	c1 e9 1b	 shr	 ecx, 27			; 0000001bH
  005de	0b c1		 or	 eax, ecx
  005e0	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  005e3	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  005e6	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  005e9	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 134  : GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */ 

  005ec	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  005ef	23 45 ec	 and	 eax, DWORD PTR _c$[ebp]
  005f2	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  005f5	f7 d1		 not	 ecx
  005f7	23 4d f0	 and	 ecx, DWORD PTR _b$[ebp]
  005fa	0b c1		 or	 eax, ecx
  005fc	ba 04 00 00 00	 mov	 edx, 4
  00601	6b ca 0a	 imul	 ecx, edx, 10
  00604	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00608	8b 55 e8	 mov	 edx, DWORD PTR _d$[ebp]
  0060b	8d 84 02 53 14
	44 02		 lea	 eax, DWORD PTR [edx+eax+38016083]
  00612	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00615	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00618	c1 e0 09	 shl	 eax, 9
  0061b	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  0061e	c1 e9 17	 shr	 ecx, 23			; 00000017H
  00621	0b c1		 or	 eax, ecx
  00623	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00626	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00629	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  0062c	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 135  : GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ 

  0062f	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00632	23 45 f0	 and	 eax, DWORD PTR _b$[ebp]
  00635	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00638	f7 d1		 not	 ecx
  0063a	23 4d f4	 and	 ecx, DWORD PTR _a$[ebp]
  0063d	0b c1		 or	 eax, ecx
  0063f	ba 04 00 00 00	 mov	 edx, 4
  00644	6b ca 0f	 imul	 ecx, edx, 15
  00647	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  0064b	8b 55 ec	 mov	 edx, DWORD PTR _c$[ebp]
  0064e	8d 84 02 81 e6
	a1 d8		 lea	 eax, DWORD PTR [edx+eax-660478335]
  00655	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00658	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0065b	c1 e0 0e	 shl	 eax, 14			; 0000000eH
  0065e	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00661	c1 e9 12	 shr	 ecx, 18			; 00000012H
  00664	0b c1		 or	 eax, ecx
  00666	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00669	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0066c	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  0066f	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 136  : GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */ 

  00672	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00675	23 45 f4	 and	 eax, DWORD PTR _a$[ebp]
  00678	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  0067b	f7 d1		 not	 ecx
  0067d	23 4d e8	 and	 ecx, DWORD PTR _d$[ebp]
  00680	0b c1		 or	 eax, ecx
  00682	ba 04 00 00 00	 mov	 edx, 4
  00687	c1 e2 02	 shl	 edx, 2
  0068a	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  0068e	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00691	8d 94 01 c8 fb
	d3 e7		 lea	 edx, DWORD PTR [ecx+eax-405537848]
  00698	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  0069b	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  0069e	c1 e0 14	 shl	 eax, 20			; 00000014H
  006a1	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  006a4	c1 e9 0c	 shr	 ecx, 12			; 0000000cH
  006a7	0b c1		 or	 eax, ecx
  006a9	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  006ac	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  006af	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  006b2	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 137  : GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */ 

  006b5	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  006b8	23 45 e8	 and	 eax, DWORD PTR _d$[ebp]
  006bb	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  006be	f7 d1		 not	 ecx
  006c0	23 4d ec	 and	 ecx, DWORD PTR _c$[ebp]
  006c3	0b c1		 or	 eax, ecx
  006c5	ba 04 00 00 00	 mov	 edx, 4
  006ca	6b ca 09	 imul	 ecx, edx, 9
  006cd	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  006d1	8b 55 f4	 mov	 edx, DWORD PTR _a$[ebp]
  006d4	8d 84 02 e6 cd
	e1 21		 lea	 eax, DWORD PTR [edx+eax+568446438]
  006db	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  006de	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  006e1	c1 e0 05	 shl	 eax, 5
  006e4	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  006e7	c1 e9 1b	 shr	 ecx, 27			; 0000001bH
  006ea	0b c1		 or	 eax, ecx
  006ec	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  006ef	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  006f2	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  006f5	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 138  : GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ 

  006f8	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  006fb	23 45 ec	 and	 eax, DWORD PTR _c$[ebp]
  006fe	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00701	f7 d1		 not	 ecx
  00703	23 4d f0	 and	 ecx, DWORD PTR _b$[ebp]
  00706	0b c1		 or	 eax, ecx
  00708	ba 04 00 00 00	 mov	 edx, 4
  0070d	6b ca 0e	 imul	 ecx, edx, 14
  00710	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00714	8b 55 e8	 mov	 edx, DWORD PTR _d$[ebp]
  00717	8d 84 02 d6 07
	37 c3		 lea	 eax, DWORD PTR [edx+eax-1019803690]
  0071e	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00721	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00724	c1 e0 09	 shl	 eax, 9
  00727	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  0072a	c1 e9 17	 shr	 ecx, 23			; 00000017H
  0072d	0b c1		 or	 eax, ecx
  0072f	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00732	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00735	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00738	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 139  : GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */ 

  0073b	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  0073e	23 45 f0	 and	 eax, DWORD PTR _b$[ebp]
  00741	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00744	f7 d1		 not	 ecx
  00746	23 4d f4	 and	 ecx, DWORD PTR _a$[ebp]
  00749	0b c1		 or	 eax, ecx
  0074b	ba 04 00 00 00	 mov	 edx, 4
  00750	6b ca 03	 imul	 ecx, edx, 3
  00753	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00757	8b 55 ec	 mov	 edx, DWORD PTR _c$[ebp]
  0075a	8d 84 02 87 0d
	d5 f4		 lea	 eax, DWORD PTR [edx+eax-187363961]
  00761	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00764	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00767	c1 e0 0e	 shl	 eax, 14			; 0000000eH
  0076a	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  0076d	c1 e9 12	 shr	 ecx, 18			; 00000012H
  00770	0b c1		 or	 eax, ecx
  00772	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00775	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00778	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  0077b	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 140  : GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */ 

  0077e	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00781	23 45 f4	 and	 eax, DWORD PTR _a$[ebp]
  00784	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00787	f7 d1		 not	 ecx
  00789	23 4d e8	 and	 ecx, DWORD PTR _d$[ebp]
  0078c	0b c1		 or	 eax, ecx
  0078e	ba 04 00 00 00	 mov	 edx, 4
  00793	c1 e2 03	 shl	 edx, 3
  00796	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  0079a	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  0079d	8d 94 01 ed 14
	5a 45		 lea	 edx, DWORD PTR [ecx+eax+1163531501]
  007a4	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  007a7	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  007aa	c1 e0 14	 shl	 eax, 20			; 00000014H
  007ad	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  007b0	c1 e9 0c	 shr	 ecx, 12			; 0000000cH
  007b3	0b c1		 or	 eax, ecx
  007b5	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  007b8	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  007bb	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  007be	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 141  : GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ 

  007c1	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  007c4	23 45 e8	 and	 eax, DWORD PTR _d$[ebp]
  007c7	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  007ca	f7 d1		 not	 ecx
  007cc	23 4d ec	 and	 ecx, DWORD PTR _c$[ebp]
  007cf	0b c1		 or	 eax, ecx
  007d1	ba 04 00 00 00	 mov	 edx, 4
  007d6	6b ca 0d	 imul	 ecx, edx, 13
  007d9	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  007dd	8b 55 f4	 mov	 edx, DWORD PTR _a$[ebp]
  007e0	8d 84 02 05 e9
	e3 a9		 lea	 eax, DWORD PTR [edx+eax-1444681467]
  007e7	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  007ea	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  007ed	c1 e0 05	 shl	 eax, 5
  007f0	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  007f3	c1 e9 1b	 shr	 ecx, 27			; 0000001bH
  007f6	0b c1		 or	 eax, ecx
  007f8	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  007fb	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  007fe	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  00801	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 142  : GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */ 

  00804	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00807	23 45 ec	 and	 eax, DWORD PTR _c$[ebp]
  0080a	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  0080d	f7 d1		 not	 ecx
  0080f	23 4d f0	 and	 ecx, DWORD PTR _b$[ebp]
  00812	0b c1		 or	 eax, ecx
  00814	ba 04 00 00 00	 mov	 edx, 4
  00819	d1 e2		 shl	 edx, 1
  0081b	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  0081f	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00822	8d 94 01 f8 a3
	ef fc		 lea	 edx, DWORD PTR [ecx+eax-51403784]
  00829	89 55 e8	 mov	 DWORD PTR _d$[ebp], edx
  0082c	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  0082f	c1 e0 09	 shl	 eax, 9
  00832	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00835	c1 e9 17	 shr	 ecx, 23			; 00000017H
  00838	0b c1		 or	 eax, ecx
  0083a	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  0083d	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00840	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00843	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 143  : GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */ 

  00846	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00849	23 45 f0	 and	 eax, DWORD PTR _b$[ebp]
  0084c	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  0084f	f7 d1		 not	 ecx
  00851	23 4d f4	 and	 ecx, DWORD PTR _a$[ebp]
  00854	0b c1		 or	 eax, ecx
  00856	ba 04 00 00 00	 mov	 edx, 4
  0085b	6b ca 07	 imul	 ecx, edx, 7
  0085e	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00862	8b 55 ec	 mov	 edx, DWORD PTR _c$[ebp]
  00865	8d 84 02 d9 02
	6f 67		 lea	 eax, DWORD PTR [edx+eax+1735328473]
  0086c	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  0086f	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00872	c1 e0 0e	 shl	 eax, 14			; 0000000eH
  00875	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00878	c1 e9 12	 shr	 ecx, 18			; 00000012H
  0087b	0b c1		 or	 eax, ecx
  0087d	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00880	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00883	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00886	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 144  : GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */ 

  00889	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0088c	23 45 f4	 and	 eax, DWORD PTR _a$[ebp]
  0088f	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00892	f7 d1		 not	 ecx
  00894	23 4d e8	 and	 ecx, DWORD PTR _d$[ebp]
  00897	0b c1		 or	 eax, ecx
  00899	ba 04 00 00 00	 mov	 edx, 4
  0089e	6b ca 0c	 imul	 ecx, edx, 12
  008a1	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  008a5	8b 55 f0	 mov	 edx, DWORD PTR _b$[ebp]
  008a8	8d 84 02 8a 4c
	2a 8d		 lea	 eax, DWORD PTR [edx+eax-1926607734]
  008af	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  008b2	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  008b5	c1 e0 14	 shl	 eax, 20			; 00000014H
  008b8	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  008bb	c1 e9 0c	 shr	 ecx, 12			; 0000000cH
  008be	0b c1		 or	 eax, ecx
  008c0	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  008c3	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  008c6	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  008c9	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 145  : 
; 146  : /* Round 3 */ 
; 147  : HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */ 

  008cc	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  008cf	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  008d2	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  008d5	b9 04 00 00 00	 mov	 ecx, 4
  008da	6b d1 05	 imul	 edx, ecx, 5
  008dd	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  008e1	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  008e4	8d 94 01 42 39
	fa ff		 lea	 edx, DWORD PTR [ecx+eax-378558]
  008eb	89 55 f4	 mov	 DWORD PTR _a$[ebp], edx
  008ee	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  008f1	c1 e0 04	 shl	 eax, 4
  008f4	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  008f7	c1 e9 1c	 shr	 ecx, 28			; 0000001cH
  008fa	0b c1		 or	 eax, ecx
  008fc	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  008ff	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00902	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  00905	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 148  : HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */ 

  00908	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  0090b	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  0090e	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00911	b9 04 00 00 00	 mov	 ecx, 4
  00916	c1 e1 03	 shl	 ecx, 3
  00919	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  0091d	8b 55 e8	 mov	 edx, DWORD PTR _d$[ebp]
  00920	8d 84 02 81 f6
	71 87		 lea	 eax, DWORD PTR [edx+eax-2022574463]
  00927	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  0092a	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  0092d	c1 e0 0b	 shl	 eax, 11			; 0000000bH
  00930	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00933	c1 e9 15	 shr	 ecx, 21			; 00000015H
  00936	0b c1		 or	 eax, ecx
  00938	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  0093b	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  0093e	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00941	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 149  : HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ 

  00944	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00947	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  0094a	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  0094d	b9 04 00 00 00	 mov	 ecx, 4
  00952	6b d1 0b	 imul	 edx, ecx, 11
  00955	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00959	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  0095c	8d 94 01 22 61
	9d 6d		 lea	 edx, DWORD PTR [ecx+eax+1839030562]
  00963	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  00966	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00969	c1 e0 10	 shl	 eax, 16			; 00000010H
  0096c	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  0096f	c1 e9 10	 shr	 ecx, 16			; 00000010H
  00972	0b c1		 or	 eax, ecx
  00974	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00977	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  0097a	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  0097d	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 150  : HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ 

  00980	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00983	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00986	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00989	b9 04 00 00 00	 mov	 ecx, 4
  0098e	6b d1 0e	 imul	 edx, ecx, 14
  00991	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00995	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00998	8d 94 01 0c 38
	e5 fd		 lea	 edx, DWORD PTR [ecx+eax-35309556]
  0099f	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  009a2	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  009a5	c1 e0 17	 shl	 eax, 23			; 00000017H
  009a8	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  009ab	c1 e9 09	 shr	 ecx, 9
  009ae	0b c1		 or	 eax, ecx
  009b0	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  009b3	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  009b6	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  009b9	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 151  : HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */ 

  009bc	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  009bf	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  009c2	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  009c5	b9 04 00 00 00	 mov	 ecx, 4
  009ca	c1 e1 00	 shl	 ecx, 0
  009cd	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  009d1	8b 55 f4	 mov	 edx, DWORD PTR _a$[ebp]
  009d4	8d 84 02 44 ea
	be a4		 lea	 eax, DWORD PTR [edx+eax-1530992060]
  009db	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  009de	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  009e1	c1 e0 04	 shl	 eax, 4
  009e4	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  009e7	c1 e9 1c	 shr	 ecx, 28			; 0000001cH
  009ea	0b c1		 or	 eax, ecx
  009ec	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  009ef	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  009f2	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  009f5	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 152  : HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */ 

  009f8	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  009fb	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  009fe	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00a01	b9 04 00 00 00	 mov	 ecx, 4
  00a06	c1 e1 02	 shl	 ecx, 2
  00a09	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00a0d	8b 55 e8	 mov	 edx, DWORD PTR _d$[ebp]
  00a10	8d 84 02 a9 cf
	de 4b		 lea	 eax, DWORD PTR [edx+eax+1272893353]
  00a17	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00a1a	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00a1d	c1 e0 0b	 shl	 eax, 11			; 0000000bH
  00a20	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00a23	c1 e9 15	 shr	 ecx, 21			; 00000015H
  00a26	0b c1		 or	 eax, ecx
  00a28	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00a2b	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00a2e	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00a31	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 153  : HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */ 

  00a34	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00a37	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00a3a	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00a3d	b9 04 00 00 00	 mov	 ecx, 4
  00a42	6b d1 07	 imul	 edx, ecx, 7
  00a45	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00a49	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00a4c	8d 94 01 60 4b
	bb f6		 lea	 edx, DWORD PTR [ecx+eax-155497632]
  00a53	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  00a56	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00a59	c1 e0 10	 shl	 eax, 16			; 00000010H
  00a5c	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00a5f	c1 e9 10	 shr	 ecx, 16			; 00000010H
  00a62	0b c1		 or	 eax, ecx
  00a64	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00a67	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00a6a	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00a6d	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 154  : HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ 

  00a70	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00a73	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00a76	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00a79	b9 04 00 00 00	 mov	 ecx, 4
  00a7e	6b d1 0a	 imul	 edx, ecx, 10
  00a81	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00a85	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00a88	8d 94 01 70 bc
	bf be		 lea	 edx, DWORD PTR [ecx+eax-1094730640]
  00a8f	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  00a92	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00a95	c1 e0 17	 shl	 eax, 23			; 00000017H
  00a98	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00a9b	c1 e9 09	 shr	 ecx, 9
  00a9e	0b c1		 or	 eax, ecx
  00aa0	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00aa3	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00aa6	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  00aa9	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 155  : HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ 

  00aac	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00aaf	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00ab2	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00ab5	b9 04 00 00 00	 mov	 ecx, 4
  00aba	6b d1 0d	 imul	 edx, ecx, 13
  00abd	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00ac1	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00ac4	8d 94 01 c6 7e
	9b 28		 lea	 edx, DWORD PTR [ecx+eax+681279174]
  00acb	89 55 f4	 mov	 DWORD PTR _a$[ebp], edx
  00ace	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00ad1	c1 e0 04	 shl	 eax, 4
  00ad4	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00ad7	c1 e9 1c	 shr	 ecx, 28			; 0000001cH
  00ada	0b c1		 or	 eax, ecx
  00adc	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00adf	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00ae2	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  00ae5	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 156  : HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */ 

  00ae8	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00aeb	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00aee	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00af1	b9 04 00 00 00	 mov	 ecx, 4
  00af6	6b d1 00	 imul	 edx, ecx, 0
  00af9	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00afd	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00b00	8d 94 01 fa 27
	a1 ea		 lea	 edx, DWORD PTR [ecx+eax-358537222]
  00b07	89 55 e8	 mov	 DWORD PTR _d$[ebp], edx
  00b0a	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00b0d	c1 e0 0b	 shl	 eax, 11			; 0000000bH
  00b10	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00b13	c1 e9 15	 shr	 ecx, 21			; 00000015H
  00b16	0b c1		 or	 eax, ecx
  00b18	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00b1b	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00b1e	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00b21	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 157  : HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */ 

  00b24	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00b27	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00b2a	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00b2d	b9 04 00 00 00	 mov	 ecx, 4
  00b32	6b d1 03	 imul	 edx, ecx, 3
  00b35	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00b39	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00b3c	8d 94 01 85 30
	ef d4		 lea	 edx, DWORD PTR [ecx+eax-722521979]
  00b43	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  00b46	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00b49	c1 e0 10	 shl	 eax, 16			; 00000010H
  00b4c	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00b4f	c1 e9 10	 shr	 ecx, 16			; 00000010H
  00b52	0b c1		 or	 eax, ecx
  00b54	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00b57	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00b5a	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00b5d	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 158  : HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */ 

  00b60	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00b63	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00b66	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00b69	b9 04 00 00 00	 mov	 ecx, 4
  00b6e	6b d1 06	 imul	 edx, ecx, 6
  00b71	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00b75	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00b78	8d 94 01 05 1d
	88 04		 lea	 edx, DWORD PTR [ecx+eax+76029189]
  00b7f	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  00b82	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00b85	c1 e0 17	 shl	 eax, 23			; 00000017H
  00b88	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00b8b	c1 e9 09	 shr	 ecx, 9
  00b8e	0b c1		 or	 eax, ecx
  00b90	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00b93	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00b96	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  00b99	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 159  : HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */ 

  00b9c	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00b9f	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00ba2	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00ba5	b9 04 00 00 00	 mov	 ecx, 4
  00baa	6b d1 09	 imul	 edx, ecx, 9
  00bad	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00bb1	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00bb4	8d 94 01 39 d0
	d4 d9		 lea	 edx, DWORD PTR [ecx+eax-640364487]
  00bbb	89 55 f4	 mov	 DWORD PTR _a$[ebp], edx
  00bbe	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00bc1	c1 e0 04	 shl	 eax, 4
  00bc4	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00bc7	c1 e9 1c	 shr	 ecx, 28			; 0000001cH
  00bca	0b c1		 or	 eax, ecx
  00bcc	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00bcf	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00bd2	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  00bd5	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 160  : HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ 

  00bd8	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00bdb	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00bde	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00be1	b9 04 00 00 00	 mov	 ecx, 4
  00be6	6b d1 0c	 imul	 edx, ecx, 12
  00be9	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00bed	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00bf0	8d 94 01 e5 99
	db e6		 lea	 edx, DWORD PTR [ecx+eax-421815835]
  00bf7	89 55 e8	 mov	 DWORD PTR _d$[ebp], edx
  00bfa	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00bfd	c1 e0 0b	 shl	 eax, 11			; 0000000bH
  00c00	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00c03	c1 e9 15	 shr	 ecx, 21			; 00000015H
  00c06	0b c1		 or	 eax, ecx
  00c08	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00c0b	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00c0e	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00c11	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 161  : HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ 

  00c14	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00c17	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00c1a	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00c1d	b9 04 00 00 00	 mov	 ecx, 4
  00c22	6b d1 0f	 imul	 edx, ecx, 15
  00c25	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00c29	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00c2c	8d 94 01 f8 7c
	a2 1f		 lea	 edx, DWORD PTR [ecx+eax+530742520]
  00c33	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  00c36	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00c39	c1 e0 10	 shl	 eax, 16			; 00000010H
  00c3c	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00c3f	c1 e9 10	 shr	 ecx, 16			; 00000010H
  00c42	0b c1		 or	 eax, ecx
  00c44	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00c47	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00c4a	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00c4d	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 162  : HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */ 

  00c50	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00c53	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00c56	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00c59	b9 04 00 00 00	 mov	 ecx, 4
  00c5e	d1 e1		 shl	 ecx, 1
  00c60	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00c64	8b 55 f0	 mov	 edx, DWORD PTR _b$[ebp]
  00c67	8d 84 02 65 56
	ac c4		 lea	 eax, DWORD PTR [edx+eax-995338651]
  00c6e	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00c71	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00c74	c1 e0 17	 shl	 eax, 23			; 00000017H
  00c77	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00c7a	c1 e9 09	 shr	 ecx, 9
  00c7d	0b c1		 or	 eax, ecx
  00c7f	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00c82	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00c85	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  00c88	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 163  : 
; 164  : /* Round 4 */ 
; 165  : II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */ 

  00c8b	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00c8e	f7 d0		 not	 eax
  00c90	0b 45 f0	 or	 eax, DWORD PTR _b$[ebp]
  00c93	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00c96	b9 04 00 00 00	 mov	 ecx, 4
  00c9b	6b d1 00	 imul	 edx, ecx, 0
  00c9e	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00ca2	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00ca5	8d 94 01 44 22
	29 f4		 lea	 edx, DWORD PTR [ecx+eax-198630844]
  00cac	89 55 f4	 mov	 DWORD PTR _a$[ebp], edx
  00caf	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00cb2	c1 e0 06	 shl	 eax, 6
  00cb5	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00cb8	c1 e9 1a	 shr	 ecx, 26			; 0000001aH
  00cbb	0b c1		 or	 eax, ecx
  00cbd	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00cc0	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00cc3	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  00cc6	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 166  : II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */ 

  00cc9	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00ccc	f7 d0		 not	 eax
  00cce	0b 45 f4	 or	 eax, DWORD PTR _a$[ebp]
  00cd1	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00cd4	b9 04 00 00 00	 mov	 ecx, 4
  00cd9	6b d1 07	 imul	 edx, ecx, 7
  00cdc	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00ce0	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00ce3	8d 94 01 97 ff
	2a 43		 lea	 edx, DWORD PTR [ecx+eax+1126891415]
  00cea	89 55 e8	 mov	 DWORD PTR _d$[ebp], edx
  00ced	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00cf0	c1 e0 0a	 shl	 eax, 10			; 0000000aH
  00cf3	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00cf6	c1 e9 16	 shr	 ecx, 22			; 00000016H
  00cf9	0b c1		 or	 eax, ecx
  00cfb	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00cfe	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00d01	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00d04	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 167  : II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ 

  00d07	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00d0a	f7 d0		 not	 eax
  00d0c	0b 45 e8	 or	 eax, DWORD PTR _d$[ebp]
  00d0f	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00d12	b9 04 00 00 00	 mov	 ecx, 4
  00d17	6b d1 0e	 imul	 edx, ecx, 14
  00d1a	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00d1e	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00d21	8d 94 01 a7 23
	94 ab		 lea	 edx, DWORD PTR [ecx+eax-1416354905]
  00d28	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  00d2b	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00d2e	c1 e0 0f	 shl	 eax, 15			; 0000000fH
  00d31	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00d34	c1 e9 11	 shr	 ecx, 17			; 00000011H
  00d37	0b c1		 or	 eax, ecx
  00d39	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00d3c	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00d3f	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00d42	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 168  : II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */ 

  00d45	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00d48	f7 d0		 not	 eax
  00d4a	0b 45 ec	 or	 eax, DWORD PTR _c$[ebp]
  00d4d	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00d50	b9 04 00 00 00	 mov	 ecx, 4
  00d55	6b d1 05	 imul	 edx, ecx, 5
  00d58	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00d5c	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00d5f	8d 94 01 39 a0
	93 fc		 lea	 edx, DWORD PTR [ecx+eax-57434055]
  00d66	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  00d69	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00d6c	c1 e0 15	 shl	 eax, 21			; 00000015H
  00d6f	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00d72	c1 e9 0b	 shr	 ecx, 11			; 0000000bH
  00d75	0b c1		 or	 eax, ecx
  00d77	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00d7a	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00d7d	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  00d80	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 169  : II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ 

  00d83	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00d86	f7 d0		 not	 eax
  00d88	0b 45 f0	 or	 eax, DWORD PTR _b$[ebp]
  00d8b	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00d8e	b9 04 00 00 00	 mov	 ecx, 4
  00d93	6b d1 0c	 imul	 edx, ecx, 12
  00d96	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00d9a	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00d9d	8d 94 01 c3 59
	5b 65		 lea	 edx, DWORD PTR [ecx+eax+1700485571]
  00da4	89 55 f4	 mov	 DWORD PTR _a$[ebp], edx
  00da7	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00daa	c1 e0 06	 shl	 eax, 6
  00dad	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00db0	c1 e9 1a	 shr	 ecx, 26			; 0000001aH
  00db3	0b c1		 or	 eax, ecx
  00db5	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00db8	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00dbb	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  00dbe	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 170  : II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */ 

  00dc1	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00dc4	f7 d0		 not	 eax
  00dc6	0b 45 f4	 or	 eax, DWORD PTR _a$[ebp]
  00dc9	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00dcc	b9 04 00 00 00	 mov	 ecx, 4
  00dd1	6b d1 03	 imul	 edx, ecx, 3
  00dd4	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00dd8	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00ddb	8d 94 01 92 cc
	0c 8f		 lea	 edx, DWORD PTR [ecx+eax-1894986606]
  00de2	89 55 e8	 mov	 DWORD PTR _d$[ebp], edx
  00de5	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00de8	c1 e0 0a	 shl	 eax, 10			; 0000000aH
  00deb	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00dee	c1 e9 16	 shr	 ecx, 22			; 00000016H
  00df1	0b c1		 or	 eax, ecx
  00df3	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00df6	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00df9	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00dfc	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 171  : II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ 

  00dff	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00e02	f7 d0		 not	 eax
  00e04	0b 45 e8	 or	 eax, DWORD PTR _d$[ebp]
  00e07	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00e0a	b9 04 00 00 00	 mov	 ecx, 4
  00e0f	6b d1 0a	 imul	 edx, ecx, 10
  00e12	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00e16	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00e19	8d 94 01 7d f4
	ef ff		 lea	 edx, DWORD PTR [ecx+eax-1051523]
  00e20	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  00e23	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00e26	c1 e0 0f	 shl	 eax, 15			; 0000000fH
  00e29	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00e2c	c1 e9 11	 shr	 ecx, 17			; 00000011H
  00e2f	0b c1		 or	 eax, ecx
  00e31	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00e34	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00e37	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00e3a	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 172  : II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */ 

  00e3d	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00e40	f7 d0		 not	 eax
  00e42	0b 45 ec	 or	 eax, DWORD PTR _c$[ebp]
  00e45	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00e48	b9 04 00 00 00	 mov	 ecx, 4
  00e4d	c1 e1 00	 shl	 ecx, 0
  00e50	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00e54	8b 55 f0	 mov	 edx, DWORD PTR _b$[ebp]
  00e57	8d 84 02 d1 5d
	84 85		 lea	 eax, DWORD PTR [edx+eax-2054922799]
  00e5e	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00e61	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00e64	c1 e0 15	 shl	 eax, 21			; 00000015H
  00e67	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00e6a	c1 e9 0b	 shr	 ecx, 11			; 0000000bH
  00e6d	0b c1		 or	 eax, ecx
  00e6f	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00e72	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00e75	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  00e78	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 173  : II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */ 

  00e7b	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00e7e	f7 d0		 not	 eax
  00e80	0b 45 f0	 or	 eax, DWORD PTR _b$[ebp]
  00e83	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00e86	b9 04 00 00 00	 mov	 ecx, 4
  00e8b	c1 e1 03	 shl	 ecx, 3
  00e8e	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00e92	8b 55 f4	 mov	 edx, DWORD PTR _a$[ebp]
  00e95	8d 84 02 4f 7e
	a8 6f		 lea	 eax, DWORD PTR [edx+eax+1873313359]
  00e9c	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00e9f	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00ea2	c1 e0 06	 shl	 eax, 6
  00ea5	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00ea8	c1 e9 1a	 shr	 ecx, 26			; 0000001aH
  00eab	0b c1		 or	 eax, ecx
  00ead	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00eb0	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00eb3	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  00eb6	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 174  : II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ 

  00eb9	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00ebc	f7 d0		 not	 eax
  00ebe	0b 45 f4	 or	 eax, DWORD PTR _a$[ebp]
  00ec1	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00ec4	b9 04 00 00 00	 mov	 ecx, 4
  00ec9	6b d1 0f	 imul	 edx, ecx, 15
  00ecc	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00ed0	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00ed3	8d 94 01 e0 e6
	2c fe		 lea	 edx, DWORD PTR [ecx+eax-30611744]
  00eda	89 55 e8	 mov	 DWORD PTR _d$[ebp], edx
  00edd	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00ee0	c1 e0 0a	 shl	 eax, 10			; 0000000aH
  00ee3	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00ee6	c1 e9 16	 shr	 ecx, 22			; 00000016H
  00ee9	0b c1		 or	 eax, ecx
  00eeb	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00eee	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00ef1	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00ef4	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 175  : II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */ 

  00ef7	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00efa	f7 d0		 not	 eax
  00efc	0b 45 e8	 or	 eax, DWORD PTR _d$[ebp]
  00eff	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00f02	b9 04 00 00 00	 mov	 ecx, 4
  00f07	6b d1 06	 imul	 edx, ecx, 6
  00f0a	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00f0e	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00f11	8d 94 01 14 43
	01 a3		 lea	 edx, DWORD PTR [ecx+eax-1560198380]
  00f18	89 55 ec	 mov	 DWORD PTR _c$[ebp], edx
  00f1b	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00f1e	c1 e0 0f	 shl	 eax, 15			; 0000000fH
  00f21	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  00f24	c1 e9 11	 shr	 ecx, 17			; 00000011H
  00f27	0b c1		 or	 eax, ecx
  00f29	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  00f2c	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00f2f	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  00f32	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 176  : II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ 

  00f35	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00f38	f7 d0		 not	 eax
  00f3a	0b 45 ec	 or	 eax, DWORD PTR _c$[ebp]
  00f3d	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  00f40	b9 04 00 00 00	 mov	 ecx, 4
  00f45	6b d1 0d	 imul	 edx, ecx, 13
  00f48	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00f4c	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00f4f	8d 94 01 a1 11
	08 4e		 lea	 edx, DWORD PTR [ecx+eax+1309151649]
  00f56	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  00f59	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00f5c	c1 e0 15	 shl	 eax, 21			; 00000015H
  00f5f	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  00f62	c1 e9 0b	 shr	 ecx, 11			; 0000000bH
  00f65	0b c1		 or	 eax, ecx
  00f67	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  00f6a	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00f6d	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  00f70	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 177  : II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */ 

  00f73	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00f76	f7 d0		 not	 eax
  00f78	0b 45 f0	 or	 eax, DWORD PTR _b$[ebp]
  00f7b	33 45 ec	 xor	 eax, DWORD PTR _c$[ebp]
  00f7e	b9 04 00 00 00	 mov	 ecx, 4
  00f83	c1 e1 02	 shl	 ecx, 2
  00f86	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  00f8a	8b 55 f4	 mov	 edx, DWORD PTR _a$[ebp]
  00f8d	8d 84 02 82 7e
	53 f7		 lea	 eax, DWORD PTR [edx+eax-145523070]
  00f94	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00f97	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00f9a	c1 e0 06	 shl	 eax, 6
  00f9d	8b 4d f4	 mov	 ecx, DWORD PTR _a$[ebp]
  00fa0	c1 e9 1a	 shr	 ecx, 26			; 0000001aH
  00fa3	0b c1		 or	 eax, ecx
  00fa5	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax
  00fa8	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  00fab	03 45 f0	 add	 eax, DWORD PTR _b$[ebp]
  00fae	89 45 f4	 mov	 DWORD PTR _a$[ebp], eax

; 178  : II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ 

  00fb1	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  00fb4	f7 d0		 not	 eax
  00fb6	0b 45 f4	 or	 eax, DWORD PTR _a$[ebp]
  00fb9	33 45 f0	 xor	 eax, DWORD PTR _b$[ebp]
  00fbc	b9 04 00 00 00	 mov	 ecx, 4
  00fc1	6b d1 0b	 imul	 edx, ecx, 11
  00fc4	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  00fc8	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00fcb	8d 94 01 35 f2
	3a bd		 lea	 edx, DWORD PTR [ecx+eax-1120210379]
  00fd2	89 55 e8	 mov	 DWORD PTR _d$[ebp], edx
  00fd5	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00fd8	c1 e0 0a	 shl	 eax, 10			; 0000000aH
  00fdb	8b 4d e8	 mov	 ecx, DWORD PTR _d$[ebp]
  00fde	c1 e9 16	 shr	 ecx, 22			; 00000016H
  00fe1	0b c1		 or	 eax, ecx
  00fe3	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax
  00fe6	8b 45 e8	 mov	 eax, DWORD PTR _d$[ebp]
  00fe9	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  00fec	89 45 e8	 mov	 DWORD PTR _d$[ebp], eax

; 179  : II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */ 

  00fef	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  00ff2	f7 d0		 not	 eax
  00ff4	0b 45 e8	 or	 eax, DWORD PTR _d$[ebp]
  00ff7	33 45 f4	 xor	 eax, DWORD PTR _a$[ebp]
  00ffa	b9 04 00 00 00	 mov	 ecx, 4
  00fff	d1 e1		 shl	 ecx, 1
  01001	03 44 0d a8	 add	 eax, DWORD PTR _x$[ebp+ecx]
  01005	8b 55 ec	 mov	 edx, DWORD PTR _c$[ebp]
  01008	8d 84 02 bb d2
	d7 2a		 lea	 eax, DWORD PTR [edx+eax+718787259]
  0100f	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  01012	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  01015	c1 e0 0f	 shl	 eax, 15			; 0000000fH
  01018	8b 4d ec	 mov	 ecx, DWORD PTR _c$[ebp]
  0101b	c1 e9 11	 shr	 ecx, 17			; 00000011H
  0101e	0b c1		 or	 eax, ecx
  01020	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax
  01023	8b 45 ec	 mov	 eax, DWORD PTR _c$[ebp]
  01026	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  01029	89 45 ec	 mov	 DWORD PTR _c$[ebp], eax

; 180  : II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */ 

  0102c	8b 45 f4	 mov	 eax, DWORD PTR _a$[ebp]
  0102f	f7 d0		 not	 eax
  01031	0b 45 ec	 or	 eax, DWORD PTR _c$[ebp]
  01034	33 45 e8	 xor	 eax, DWORD PTR _d$[ebp]
  01037	b9 04 00 00 00	 mov	 ecx, 4
  0103c	6b d1 09	 imul	 edx, ecx, 9
  0103f	03 44 15 a8	 add	 eax, DWORD PTR _x$[ebp+edx]
  01043	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  01046	8d 94 01 91 d3
	86 eb		 lea	 edx, DWORD PTR [ecx+eax-343485551]
  0104d	89 55 f0	 mov	 DWORD PTR _b$[ebp], edx
  01050	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  01053	c1 e0 15	 shl	 eax, 21			; 00000015H
  01056	8b 4d f0	 mov	 ecx, DWORD PTR _b$[ebp]
  01059	c1 e9 0b	 shr	 ecx, 11			; 0000000bH
  0105c	0b c1		 or	 eax, ecx
  0105e	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax
  01061	8b 45 f0	 mov	 eax, DWORD PTR _b$[ebp]
  01064	03 45 ec	 add	 eax, DWORD PTR _c$[ebp]
  01067	89 45 f0	 mov	 DWORD PTR _b$[ebp], eax

; 181  : 
; 182  : state[0] += a; 

  0106a	b8 04 00 00 00	 mov	 eax, 4
  0106f	6b c8 00	 imul	 ecx, eax, 0
  01072	8b 55 08	 mov	 edx, DWORD PTR _state$[ebp]
  01075	8b 04 0a	 mov	 eax, DWORD PTR [edx+ecx]
  01078	03 45 f4	 add	 eax, DWORD PTR _a$[ebp]
  0107b	b9 04 00 00 00	 mov	 ecx, 4
  01080	6b d1 00	 imul	 edx, ecx, 0
  01083	8b 4d 08	 mov	 ecx, DWORD PTR _state$[ebp]
  01086	89 04 11	 mov	 DWORD PTR [ecx+edx], eax

; 183  : state[1] += b; 

  01089	b8 04 00 00 00	 mov	 eax, 4
  0108e	c1 e0 00	 shl	 eax, 0
  01091	8b 4d 08	 mov	 ecx, DWORD PTR _state$[ebp]
  01094	8b 14 01	 mov	 edx, DWORD PTR [ecx+eax]
  01097	03 55 f0	 add	 edx, DWORD PTR _b$[ebp]
  0109a	b8 04 00 00 00	 mov	 eax, 4
  0109f	c1 e0 00	 shl	 eax, 0
  010a2	8b 4d 08	 mov	 ecx, DWORD PTR _state$[ebp]
  010a5	89 14 01	 mov	 DWORD PTR [ecx+eax], edx

; 184  : state[2] += c; 

  010a8	b8 04 00 00 00	 mov	 eax, 4
  010ad	d1 e0		 shl	 eax, 1
  010af	8b 4d 08	 mov	 ecx, DWORD PTR _state$[ebp]
  010b2	8b 14 01	 mov	 edx, DWORD PTR [ecx+eax]
  010b5	03 55 ec	 add	 edx, DWORD PTR _c$[ebp]
  010b8	b8 04 00 00 00	 mov	 eax, 4
  010bd	d1 e0		 shl	 eax, 1
  010bf	8b 4d 08	 mov	 ecx, DWORD PTR _state$[ebp]
  010c2	89 14 01	 mov	 DWORD PTR [ecx+eax], edx

; 185  : state[3] += d; 

  010c5	b8 04 00 00 00	 mov	 eax, 4
  010ca	6b c8 03	 imul	 ecx, eax, 3
  010cd	8b 55 08	 mov	 edx, DWORD PTR _state$[ebp]
  010d0	8b 04 0a	 mov	 eax, DWORD PTR [edx+ecx]
  010d3	03 45 e8	 add	 eax, DWORD PTR _d$[ebp]
  010d6	b9 04 00 00 00	 mov	 ecx, 4
  010db	6b d1 03	 imul	 edx, ecx, 3
  010de	8b 4d 08	 mov	 ecx, DWORD PTR _state$[ebp]
  010e1	89 04 11	 mov	 DWORD PTR [ecx+edx], eax

; 186  : 
; 187  : /* Zeroize sensitive information. 
; 188  : */ 
; 189  : MD5_memset ((POINTER)x, 0, sizeof (x)); 

  010e4	6a 40		 push	 64			; 00000040H
  010e6	6a 00		 push	 0
  010e8	8d 45 a8	 lea	 eax, DWORD PTR _x$[ebp]
  010eb	50		 push	 eax
  010ec	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  010ef	e8 00 00 00 00	 call	 ?MD5_memset@MD5_L@@QAEXPAEHI@Z ; MD5_L::MD5_memset

; 190  : } 

  010f4	5f		 pop	 edi
  010f5	5e		 pop	 esi
  010f6	5b		 pop	 ebx
  010f7	8b 4d fc	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  010fa	33 cd		 xor	 ecx, ebp
  010fc	e8 00 00 00 00	 call	 @__security_check_cookie@4
  01101	8b e5		 mov	 esp, ebp
  01103	5d		 pop	 ebp
  01104	c2 08 00	 ret	 8
?MD5Transform@MD5_L@@QAEXQAKQAE@Z ENDP			; MD5_L::MD5Transform
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h
;	COMDAT _sprintf
_TEXT	SEGMENT
__ArgList$ = -8						; size = 4
__Result$ = -4						; size = 4
__Buffer$ = 8						; size = 4
__Format$ = 12						; size = 4
_sprintf PROC						; COMDAT

; 1771 :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 4c	 sub	 esp, 76			; 0000004cH
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi

; 1772 :         int _Result;
; 1773 :         va_list _ArgList;
; 1774 :         __crt_va_start(_ArgList, _Format);

  00009	8d 45 10	 lea	 eax, DWORD PTR __Format$[ebp+4]
  0000c	89 45 f8	 mov	 DWORD PTR __ArgList$[ebp], eax

; 1775 : 
; 1776 :         _Result = _vsprintf_l(_Buffer, _Format, NULL, _ArgList);

  0000f	8b 45 f8	 mov	 eax, DWORD PTR __ArgList$[ebp]
  00012	50		 push	 eax
  00013	6a 00		 push	 0
  00015	8b 4d 0c	 mov	 ecx, DWORD PTR __Format$[ebp]
  00018	51		 push	 ecx
  00019	8b 55 08	 mov	 edx, DWORD PTR __Buffer$[ebp]
  0001c	52		 push	 edx
  0001d	e8 00 00 00 00	 call	 __vsprintf_l
  00022	83 c4 10	 add	 esp, 16			; 00000010H
  00025	89 45 fc	 mov	 DWORD PTR __Result$[ebp], eax

; 1777 : 
; 1778 :         __crt_va_end(_ArgList);

  00028	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR __ArgList$[ebp], 0

; 1779 :         return _Result;

  0002f	8b 45 fc	 mov	 eax, DWORD PTR __Result$[ebp]

; 1780 :     }

  00032	5f		 pop	 edi
  00033	5e		 pop	 esi
  00034	5b		 pop	 ebx
  00035	8b e5		 mov	 esp, ebp
  00037	5d		 pop	 ebp
  00038	c3		 ret	 0
_sprintf ENDP
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h
;	COMDAT __vsprintf_l
_TEXT	SEGMENT
__Buffer$ = 8						; size = 4
__Format$ = 12						; size = 4
__Locale$ = 16						; size = 4
__ArgList$ = 20						; size = 4
__vsprintf_l PROC					; COMDAT

; 1458 :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi

; 1459 :         return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList);

  00009	8b 45 14	 mov	 eax, DWORD PTR __ArgList$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d 10	 mov	 ecx, DWORD PTR __Locale$[ebp]
  00010	51		 push	 ecx
  00011	8b 55 0c	 mov	 edx, DWORD PTR __Format$[ebp]
  00014	52		 push	 edx
  00015	6a ff		 push	 -1
  00017	8b 45 08	 mov	 eax, DWORD PTR __Buffer$[ebp]
  0001a	50		 push	 eax
  0001b	e8 00 00 00 00	 call	 __vsnprintf_l
  00020	83 c4 14	 add	 esp, 20			; 00000014H

; 1460 :     }

  00023	5f		 pop	 edi
  00024	5e		 pop	 esi
  00025	5b		 pop	 ebx
  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c3		 ret	 0
__vsprintf_l ENDP
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h
;	COMDAT __vsnprintf_l
_TEXT	SEGMENT
tv74 = -72						; size = 4
__Result$ = -4						; size = 4
__Buffer$ = 8						; size = 4
__BufferCount$ = 12					; size = 4
__Format$ = 16						; size = 4
__Locale$ = 20						; size = 4
__ArgList$ = 24						; size = 4
__vsnprintf_l PROC					; COMDAT

; 1391 :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 48	 sub	 esp, 72			; 00000048H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi

; 1392 :         int const _Result = __stdio_common_vsprintf(

  00009	8b 45 18	 mov	 eax, DWORD PTR __ArgList$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d 14	 mov	 ecx, DWORD PTR __Locale$[ebp]
  00010	51		 push	 ecx
  00011	8b 55 10	 mov	 edx, DWORD PTR __Format$[ebp]
  00014	52		 push	 edx
  00015	8b 45 0c	 mov	 eax, DWORD PTR __BufferCount$[ebp]
  00018	50		 push	 eax
  00019	8b 4d 08	 mov	 ecx, DWORD PTR __Buffer$[ebp]
  0001c	51		 push	 ecx
  0001d	e8 00 00 00 00	 call	 ___local_stdio_printf_options
  00022	8b 10		 mov	 edx, DWORD PTR [eax]
  00024	83 ca 01	 or	 edx, 1
  00027	8b 40 04	 mov	 eax, DWORD PTR [eax+4]
  0002a	50		 push	 eax
  0002b	52		 push	 edx
  0002c	e8 00 00 00 00	 call	 ___stdio_common_vsprintf
  00031	83 c4 1c	 add	 esp, 28			; 0000001cH
  00034	89 45 fc	 mov	 DWORD PTR __Result$[ebp], eax

; 1393 :             _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION,
; 1394 :             _Buffer, _BufferCount, _Format, _Locale, _ArgList);
; 1395 : 
; 1396 :         return _Result < 0 ? -1 : _Result;

  00037	83 7d fc 00	 cmp	 DWORD PTR __Result$[ebp], 0
  0003b	7d 09		 jge	 SHORT $LN3@vsnprintf_
  0003d	c7 45 b8 ff ff
	ff ff		 mov	 DWORD PTR tv74[ebp], -1
  00044	eb 06		 jmp	 SHORT $LN4@vsnprintf_
$LN3@vsnprintf_:
  00046	8b 45 fc	 mov	 eax, DWORD PTR __Result$[ebp]
  00049	89 45 b8	 mov	 DWORD PTR tv74[ebp], eax
$LN4@vsnprintf_:
  0004c	8b 45 b8	 mov	 eax, DWORD PTR tv74[ebp]

; 1397 :     }

  0004f	5f		 pop	 edi
  00050	5e		 pop	 esi
  00051	5b		 pop	 ebx
  00052	8b e5		 mov	 esp, ebp
  00054	5d		 pop	 ebp
  00055	c3		 ret	 0
__vsnprintf_l ENDP
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h
;	COMDAT ___local_stdio_printf_options
_TEXT	SEGMENT
___local_stdio_printf_options PROC			; COMDAT

; 90   :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi

; 91   :         static unsigned __int64 _OptionsStorage;
; 92   :         return &_OptionsStorage;

  00009	b8 00 00 00 00	 mov	 eax, OFFSET ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage

; 93   :     }

  0000e	5f		 pop	 edi
  0000f	5e		 pop	 esi
  00010	5b		 pop	 ebx
  00011	8b e5		 mov	 esp, ebp
  00013	5d		 pop	 ebp
  00014	c3		 ret	 0
___local_stdio_printf_options ENDP
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
___formal$ = 16						; size = 4
?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	5f		 pop	 edi
  0000a	5e		 pop	 esi
  0000b	5b		 pop	 ebx
  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z ENDP ; __empty_global_delete
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	5f		 pop	 edi
  0000a	5e		 pop	 esi
  0000b	5b		 pop	 ebx
  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?__empty_global_delete@@YAXPAXI@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
?__empty_global_delete@@YAXPAXI@Z PROC			; __empty_global_delete, COMDAT

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	5f		 pop	 edi
  0000a	5e		 pop	 esi
  0000b	5b		 pop	 ebx
  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?__empty_global_delete@@YAXPAXI@Z ENDP			; __empty_global_delete
_TEXT	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?__empty_global_delete@@YAXPAX@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
?__empty_global_delete@@YAXPAX@Z PROC			; __empty_global_delete, COMDAT

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 40	 sub	 esp, 64			; 00000040H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	5f		 pop	 edi
  0000a	5e		 pop	 esi
  0000b	5b		 pop	 ebx
  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?__empty_global_delete@@YAXPAX@Z ENDP			; __empty_global_delete
_TEXT	ENDS
END