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

include listing.inc

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	?__empty_global_delete@@YAXPEAX@Z		; __empty_global_delete
PUBLIC	?__empty_global_delete@@YAXPEAX_K@Z		; __empty_global_delete
PUBLIC	?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete
PUBLIC	?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete
PUBLIC	__local_stdio_printf_options
PUBLIC	_vsnprintf_l
PUBLIC	_vsprintf_l
PUBLIC	sprintf
PUBLIC	?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z		; MD5_L::MD5Transform
PUBLIC	?Encode@MD5_L@@QEAAXPEAEPEAKI@Z			; MD5_L::Encode
PUBLIC	?Decode@MD5_L@@QEAAXPEAKPEAEI@Z			; MD5_L::Decode
PUBLIC	?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z		; MD5_L::MD5_memcpy
PUBLIC	?MD5_memset@MD5_L@@QEAAXPEAEHI@Z		; MD5_L::MD5_memset
PUBLIC	?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z		; MD5_L::MD5Init
PUBLIC	?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z	; MD5_L::MD5Update
PUBLIC	?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z	; MD5_L::MD5Final
PUBLIC	?StringAddOne@MD5_L@@QEAAXPEAD@Z		; MD5_L::StringAddOne
PUBLIC	?MD5String@MD5_L@@QEAAPEADPEAD0@Z		; MD5_L::MD5String
PUBLIC	?MD5String@MD5_L@@QEAAPEADPEAD@Z		; MD5_L::MD5String
PUBLIC	?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z		; MD5_L::MD5Byte
PUBLIC	?MD5Check@MD5_L@@QEAA_NPEAD0@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	__GSHandlerCheck:PROC
EXTRN	__security_check_cookie:PROC
EXTRN	__security_cookie:QWORD
;	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@@QEAAPEADPEAD@Z@4PADA DB 040H DUP (?) ; `MD5_L::MD5String'::`2'::output
_BSS	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3
	DD	imagerel $LN3+19
	DD	imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3
	DD	imagerel $LN3+24
	DD	imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3
	DD	imagerel $LN3+24
	DD	imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3
	DD	imagerel $LN3+29
	DD	imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$__local_stdio_printf_options DD imagerel $LN3
	DD	imagerel $LN3+22
	DD	imagerel $unwind$__local_stdio_printf_options
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$_vsnprintf_l DD imagerel $LN5
	DD	imagerel $LN5+119
	DD	imagerel $unwind$_vsnprintf_l
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$_vsprintf_l DD imagerel $LN3
	DD	imagerel $LN3+69
	DD	imagerel $unwind$_vsprintf_l
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$sprintf DD imagerel $LN3
	DD	imagerel $LN3+84
	DD	imagerel $unwind$sprintf
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z DD imagerel $LN3
	DD	imagerel $LN3+5307
	DD	imagerel $unwind$?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?Encode@MD5_L@@QEAAXPEAEPEAKI@Z DD imagerel $LN6
	DD	imagerel $LN6+207
	DD	imagerel $unwind$?Encode@MD5_L@@QEAAXPEAEPEAKI@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?Decode@MD5_L@@QEAAXPEAKPEAEI@Z DD imagerel $LN6
	DD	imagerel $LN6+160
	DD	imagerel $unwind$?Decode@MD5_L@@QEAAXPEAKPEAEI@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z DD imagerel $LN6
	DD	imagerel $LN6+83
	DD	imagerel $unwind$?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5_memset@MD5_L@@QEAAXPEAEHI@Z DD imagerel $LN6
	DD	imagerel $LN6+75
	DD	imagerel $unwind$?MD5_memset@MD5_L@@QEAAXPEAEHI@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z DD imagerel $LN3
	DD	imagerel $LN3+146
	DD	imagerel $unwind$?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z DD imagerel $LN9
	DD	imagerel $LN9+407
	DD	imagerel $unwind$?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z DD imagerel $LN5
	DD	imagerel $LN5+265
	DD	imagerel $unwind$?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?StringAddOne@MD5_L@@QEAAXPEAD@Z DD imagerel $LN12
	DD	imagerel $LN12+203
	DD	imagerel $unwind$?StringAddOne@MD5_L@@QEAAXPEAD@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5String@MD5_L@@QEAAPEADPEAD0@Z DD imagerel $LN9
	DD	imagerel $LN9+411
	DD	imagerel $unwind$?MD5String@MD5_L@@QEAAPEADPEAD0@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5String@MD5_L@@QEAAPEADPEAD@Z DD imagerel $LN11
	DD	imagerel $LN11+437
	DD	imagerel $unwind$?MD5String@MD5_L@@QEAAPEADPEAD@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z DD imagerel $LN6
	DD	imagerel $LN6+219
	DD	imagerel $unwind$?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z
pdata	ENDS
;	COMDAT pdata
pdata	SEGMENT
$pdata$?MD5Check@MD5_L@@QEAA_NPEAD0@Z DD imagerel $LN5
	DD	imagerel $LN5+80
	DD	imagerel $unwind$?MD5Check@MD5_L@@QEAA_NPEAD0@Z
pdata	ENDS
;	COMDAT ??_C@_04JFFKLGJF@?$CF02X@
CONST	SEGMENT
??_C@_04JFFKLGJF@?$CF02X@ DB '%02X', 00H		; `string'
CONST	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5Check@MD5_L@@QEAA_NPEAD0@Z DD 025031901H
	DD	0d2142319H
	DD	05010H
xdata	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DB	02cH
	DB	0c2H
voltbl	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z DD 025053319H
	DD	011d2322H
	DD	07016001dH
	DD	05015H
	DD	imagerel __GSHandlerCheck
	DD	0d8H
xdata	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DW	022H
	DW	019cH
voltbl	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5String@MD5_L@@QEAAPEADPEAD@Z DD 025052919H
	DD	01132318H
	DD	0700c0027H
	DD	0500bH
	DD	imagerel __GSHandlerCheck
	DD	0120H
xdata	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DW	027H
	DW	0182H
voltbl	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5String@MD5_L@@QEAAPEADPEAD0@Z DD 025052e19H
	DD	0118231dH
	DD	070110025H
	DD	05010H
	DD	imagerel __GSHandlerCheck
	DD	0118H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?StringAddOne@MD5_L@@QEAAXPEAD@Z DD 025031401H
	DD	0d20f2314H
	DD	0500bH
xdata	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DB	026H
	DB	0f7H
voltbl	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z DD 025032a19H
	DD	0f217231cH
	DD	05010H
	DD	imagerel __GSHandlerCheck
	DD	078H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z DD 025031e01H
	DD	0d219231eH
	DD	05015H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z DD 05031201H
	DD	0720f0312H
	DD	0500bH
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5_memset@MD5_L@@QEAAXPEAEHI@Z DD 05031c01H
	DD	09219031cH
	DD	05015H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z DD 05031c01H
	DD	09219031cH
	DD	05015H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?Decode@MD5_L@@QEAAXPEAKPEAEI@Z DD 05031c01H
	DD	09219031cH
	DD	05015H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?Encode@MD5_L@@QEAAXPEAEPEAKI@Z DD 05031c01H
	DD	09219031cH
	DD	05015H
xdata	ENDS
;	COMDAT voltbl
voltbl	SEGMENT
_volmd	DW	026H
	DW	014a3H
voltbl	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z DD 025042d19H
	DD	0117231cH
	DD	050100018H
	DD	imagerel __GSHandlerCheck
	DD	0b0H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$sprintf DD 025032101H
	DD	0f21c2321H
	DD	05015H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$_vsprintf_l DD 035031e01H
	DD	0d219331eH
	DD	05015H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$_vsnprintf_l DD 035032101H
	DD	0f21c3321H
	DD	05015H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$__local_stdio_printf_options DD 05030901H
	DD	072060309H
	DD	05002H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 05031701H
	DD	072140317H
	DD	05010H
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 05031201H
	DD	0720f0312H
	DD	0500bH
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 05031201H
	DD	0720f0312H
	DD	0500bH
xdata	ENDS
;	COMDAT xdata
xdata	SEGMENT
$unwind$?__empty_global_delete@@YAXPEAX@Z DD 05030d01H
	DD	0720a030dH
	DD	05006H
xdata	ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
;	COMDAT ?MD5Check@MD5_L@@QEAA_NPEAD0@Z
_TEXT	SEGMENT
tv71 = 64
this$ = 96
md5string$ = 104
string$ = 112
?MD5Check@MD5_L@@QEAA_NPEAD0@Z PROC			; MD5_L::MD5Check, COMDAT

; 371  : { 

$LN5:
  00000	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  00005	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000a	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000f	55		 push	 rbp
  00010	48 83 ec 70	 sub	 rsp, 112		; 00000070H
  00014	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]

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

  00019	48 8b 55 70	 mov	 rdx, QWORD PTR string$[rbp]
  0001d	48 8b 4d 60	 mov	 rcx, QWORD PTR this$[rbp]
  00021	e8 00 00 00 00	 call	 ?MD5String@MD5_L@@QEAAPEADPEAD@Z ; MD5_L::MD5String
  00026	48 8b d0	 mov	 rdx, rax
  00029	48 8b 4d 68	 mov	 rcx, QWORD PTR md5string$[rbp]
  0002d	e8 00 00 00 00	 call	 strcmp
  00032	85 c0		 test	 eax, eax
  00034	75 09		 jne	 SHORT $LN3@MD5Check
  00036	c7 45 40 01 00
	00 00		 mov	 DWORD PTR tv71[rbp], 1
  0003d	eb 07		 jmp	 SHORT $LN4@MD5Check
$LN3@MD5Check:
  0003f	c7 45 40 00 00
	00 00		 mov	 DWORD PTR tv71[rbp], 0
$LN4@MD5Check:
  00046	0f b6 45 40	 movzx	 eax, BYTE PTR tv71[rbp]

; 373  : }

  0004a	48 8d 65 50	 lea	 rsp, QWORD PTR [rbp+80]
  0004e	5d		 pop	 rbp
  0004f	c3		 ret	 0
?MD5Check@MD5_L@@QEAA_NPEAD0@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@@QEAAPEAEPEAEJ0@Z
_TEXT	SEGMENT
context$ = 0
digest$ = 96
len$ = 112
i$ = 116
__$ArrayPad$ = 184
this$ = 224
bMd5$ = 232
lLen$ = 240
output$ = 248
?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z PROC			; MD5_L::MD5Byte, COMDAT

; 256  : {

$LN6:
  00000	4c 89 4c 24 20	 mov	 QWORD PTR [rsp+32], r9
  00005	44 89 44 24 18	 mov	 DWORD PTR [rsp+24], r8d
  0000a	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000f	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00014	55		 push	 rbp
  00015	57		 push	 rdi
  00016	48 81 ec e8 00
	00 00		 sub	 rsp, 232		; 000000e8H
  0001d	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]
  00022	48 8b 05 00 00
	00 00		 mov	 rax, QWORD PTR __security_cookie
  00029	48 33 c5	 xor	 rax, rbp
  0002c	48 89 85 b8 00
	00 00		 mov	 QWORD PTR __$ArrayPad$[rbp], rax

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

  00033	48 8d 45 60	 lea	 rax, QWORD PTR digest$[rbp]
  00037	48 8b f8	 mov	 rdi, rax
  0003a	33 c0		 xor	 eax, eax
  0003c	b9 10 00 00 00	 mov	 ecx, 16
  00041	f3 aa		 rep stosb

; 259  : //BYTE output[64]={0}; 
; 260  : unsigned int len = lLen; 

  00043	8b 85 f0 00 00
	00		 mov	 eax, DWORD PTR lLen$[rbp]
  00049	89 45 70	 mov	 DWORD PTR len$[rbp], eax

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

  0004c	48 8d 55 00	 lea	 rdx, QWORD PTR context$[rbp]
  00050	48 8b 8d e0 00
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  00057	e8 00 00 00 00	 call	 ?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Init

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

  0005c	44 8b 4d 70	 mov	 r9d, DWORD PTR len$[rbp]
  00060	4c 8b 85 e8 00
	00 00		 mov	 r8, QWORD PTR bMd5$[rbp]
  00067	48 8d 55 00	 lea	 rdx, QWORD PTR context$[rbp]
  0006b	48 8b 8d e0 00
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  00072	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update

; 265  : MD5Final( digest, &context ); 

  00077	4c 8d 45 00	 lea	 r8, QWORD PTR context$[rbp]
  0007b	48 8d 55 60	 lea	 rdx, QWORD PTR digest$[rbp]
  0007f	48 8b 8d e0 00
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  00086	e8 00 00 00 00	 call	 ?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Final

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

  0008b	c7 45 74 00 00
	00 00		 mov	 DWORD PTR i$[rbp], 0
  00092	eb 08		 jmp	 SHORT $LN4@MD5Byte
$LN2@MD5Byte:
  00094	8b 45 74	 mov	 eax, DWORD PTR i$[rbp]
  00097	ff c0		 inc	 eax
  00099	89 45 74	 mov	 DWORD PTR i$[rbp], eax
$LN4@MD5Byte:
  0009c	83 7d 74 10	 cmp	 DWORD PTR i$[rbp], 16
  000a0	7d 19		 jge	 SHORT $LN3@MD5Byte

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

  000a2	48 63 45 74	 movsxd	 rax, DWORD PTR i$[rbp]
  000a6	48 63 4d 74	 movsxd	 rcx, DWORD PTR i$[rbp]
  000aa	48 8b 95 f8 00
	00 00		 mov	 rdx, QWORD PTR output$[rbp]
  000b1	0f b6 44 05 60	 movzx	 eax, BYTE PTR digest$[rbp+rax]
  000b6	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al

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

  000b9	eb d9		 jmp	 SHORT $LN2@MD5Byte
$LN3@MD5Byte:

; 273  : return output; 

  000bb	48 8b 85 f8 00
	00 00		 mov	 rax, QWORD PTR output$[rbp]

; 274  : 
; 275  : }

  000c2	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR __$ArrayPad$[rbp]
  000c9	48 33 cd	 xor	 rcx, rbp
  000cc	e8 00 00 00 00	 call	 __security_check_cookie
  000d1	48 8d a5 c8 00
	00 00		 lea	 rsp, QWORD PTR [rbp+200]
  000d8	5f		 pop	 rdi
  000d9	5d		 pop	 rbp
  000da	c3		 ret	 0
?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@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@@QEAAPEADPEAD@Z
_TEXT	SEGMENT
context$ = 0
digest$ = 96
output1$ = 112
len$ = 176
i$ = 180
$T1 = 248
__$ArrayPad$ = 256
this$ = 304
string$ = 312
?MD5String@MD5_L@@QEAAPEADPEAD@Z PROC			; MD5_L::MD5String, COMDAT

; 280  : { 

$LN11:
  00000	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  00005	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000a	55		 push	 rbp
  0000b	57		 push	 rdi
  0000c	48 81 ec 38 01
	00 00		 sub	 rsp, 312		; 00000138H
  00013	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]
  00018	48 8b 05 00 00
	00 00		 mov	 rax, QWORD PTR __security_cookie
  0001f	48 33 c5	 xor	 rax, rbp
  00022	48 89 85 00 01
	00 00		 mov	 QWORD PTR __$ArrayPad$[rbp], rax

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

  00029	48 8d 45 60	 lea	 rax, QWORD PTR digest$[rbp]
  0002d	48 8b f8	 mov	 rdi, rax
  00030	33 c0		 xor	 eax, eax
  00032	b9 10 00 00 00	 mov	 ecx, 16
  00037	f3 aa		 rep stosb

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

  00039	48 8d 45 70	 lea	 rax, QWORD PTR output1$[rbp]
  0003d	48 8b f8	 mov	 rdi, rax
  00040	33 c0		 xor	 eax, eax
  00042	b9 40 00 00 00	 mov	 ecx, 64			; 00000040H
  00047	f3 aa		 rep stosb

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

  00049	48 8b 8d 38 01
	00 00		 mov	 rcx, QWORD PTR string$[rbp]
  00050	e8 00 00 00 00	 call	 strlen
  00055	89 85 b0 00 00
	00		 mov	 DWORD PTR len$[rbp], eax

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

  0005b	48 8d 55 00	 lea	 rdx, QWORD PTR context$[rbp]
  0005f	48 8b 8d 30 01
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  00066	e8 00 00 00 00	 call	 ?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Init

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

  0006b	44 8b 8d b0 00
	00 00		 mov	 r9d, DWORD PTR len$[rbp]
  00072	4c 8b 85 38 01
	00 00		 mov	 r8, QWORD PTR string$[rbp]
  00079	48 8d 55 00	 lea	 rdx, QWORD PTR context$[rbp]
  0007d	48 8b 8d 30 01
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  00084	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update

; 291  : MD5Final( digest, &context ); 

  00089	4c 8d 45 00	 lea	 r8, QWORD PTR context$[rbp]
  0008d	48 8d 55 60	 lea	 rdx, QWORD PTR digest$[rbp]
  00091	48 8b 8d 30 01
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  00098	e8 00 00 00 00	 call	 ?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Final

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

  0009d	c7 85 b4 00 00
	00 00 00 00 00	 mov	 DWORD PTR i$[rbp], 0
  000a7	eb 0e		 jmp	 SHORT $LN4@MD5String
$LN2@MD5String:
  000a9	8b 85 b4 00 00
	00		 mov	 eax, DWORD PTR i$[rbp]
  000af	ff c0		 inc	 eax
  000b1	89 85 b4 00 00
	00		 mov	 DWORD PTR i$[rbp], eax
$LN4@MD5String:
  000b7	83 bd b4 00 00
	00 10		 cmp	 DWORD PTR i$[rbp], 16
  000be	7d 60		 jge	 SHORT $LN3@MD5String

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

  000c0	48 63 85 b4 00
	00 00		 movsxd	 rax, DWORD PTR i$[rbp]
  000c7	0f b6 44 05 60	 movzx	 eax, BYTE PTR digest$[rbp+rax]
  000cc	8b 8d b4 00 00
	00		 mov	 ecx, DWORD PTR i$[rbp]
  000d2	03 c9		 add	 ecx, ecx
  000d4	48 63 c9	 movsxd	 rcx, ecx
  000d7	48 8d 4c 0d 70	 lea	 rcx, QWORD PTR output1$[rbp+rcx]
  000dc	44 8b c0	 mov	 r8d, eax
  000df	48 8d 15 00 00
	00 00		 lea	 rdx, OFFSET FLAT:??_C@_04JFFKLGJF@?$CF02X@
  000e6	e8 00 00 00 00	 call	 sprintf

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

  000eb	48 63 85 b4 00
	00 00		 movsxd	 rax, DWORD PTR i$[rbp]
  000f2	0f b6 44 05 60	 movzx	 eax, BYTE PTR digest$[rbp+rax]
  000f7	c1 e0 04	 shl	 eax, 4
  000fa	0f b6 c0	 movzx	 eax, al
  000fd	8b 8d b4 00 00
	00		 mov	 ecx, DWORD PTR i$[rbp]
  00103	8d 4c 09 01	 lea	 ecx, DWORD PTR [rcx+rcx+1]
  00107	48 63 c9	 movsxd	 rcx, ecx
  0010a	48 8d 4c 0d 70	 lea	 rcx, QWORD PTR output1$[rbp+rcx]
  0010f	44 8b c0	 mov	 r8d, eax
  00112	48 8d 15 00 00
	00 00		 lea	 rdx, OFFSET FLAT:??_C@_04JFFKLGJF@?$CF02X@
  00119	e8 00 00 00 00	 call	 sprintf

; 297  : } 

  0011e	eb 89		 jmp	 SHORT $LN2@MD5String
$LN3@MD5String:

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

  00120	c7 85 b4 00 00
	00 00 00 00 00	 mov	 DWORD PTR i$[rbp], 0
  0012a	eb 0e		 jmp	 SHORT $LN7@MD5String
$LN5@MD5String:
  0012c	8b 85 b4 00 00
	00		 mov	 eax, DWORD PTR i$[rbp]
  00132	ff c0		 inc	 eax
  00134	89 85 b4 00 00
	00		 mov	 DWORD PTR i$[rbp], eax
$LN7@MD5String:
  0013a	83 bd b4 00 00
	00 20		 cmp	 DWORD PTR i$[rbp], 32	; 00000020H
  00141	7d 1f		 jge	 SHORT $LN6@MD5String

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

  00143	48 63 85 b4 00
	00 00		 movsxd	 rax, DWORD PTR i$[rbp]
  0014a	48 63 8d b4 00
	00 00		 movsxd	 rcx, DWORD PTR i$[rbp]
  00151	48 8d 15 00 00
	00 00		 lea	 rdx, OFFSET FLAT:?output@?1??MD5String@MD5_L@@QEAAPEADPEAD@Z@4PADA
  00158	0f b6 44 05 70	 movzx	 eax, BYTE PTR output1$[rbp+rax]
  0015d	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al

; 301  : } 

  00160	eb ca		 jmp	 SHORT $LN5@MD5String
$LN6@MD5String:

; 302  : output[32] = 0;

  00162	b8 01 00 00 00	 mov	 eax, 1
  00167	48 6b c0 20	 imul	 rax, rax, 32		; 00000020H
  0016b	48 89 85 f8 00
	00 00		 mov	 QWORD PTR $T1[rbp], rax
  00172	48 83 bd f8 00
	00 00 40	 cmp	 QWORD PTR $T1[rbp], 64	; 00000040H
  0017a	73 02		 jae	 SHORT $LN9@MD5String
  0017c	eb 05		 jmp	 SHORT $LN10@MD5String
$LN9@MD5String:
  0017e	e8 00 00 00 00	 call	 __report_rangecheckfailure
$LN10@MD5String:
  00183	48 8d 05 00 00
	00 00		 lea	 rax, OFFSET FLAT:?output@?1??MD5String@MD5_L@@QEAAPEADPEAD@Z@4PADA
  0018a	48 8b 8d f8 00
	00 00		 mov	 rcx, QWORD PTR $T1[rbp]
  00191	c6 04 08 00	 mov	 BYTE PTR [rax+rcx], 0

; 303  : 
; 304  : return output; 

  00195	48 8d 05 00 00
	00 00		 lea	 rax, OFFSET FLAT:?output@?1??MD5String@MD5_L@@QEAAPEADPEAD@Z@4PADA
$LN8@MD5String:

; 305  : } 

  0019c	48 8b 8d 00 01
	00 00		 mov	 rcx, QWORD PTR __$ArrayPad$[rbp]
  001a3	48 33 cd	 xor	 rcx, rbp
  001a6	e8 00 00 00 00	 call	 __security_check_cookie
  001ab	48 8d a5 18 01
	00 00		 lea	 rsp, QWORD PTR [rbp+280]
  001b2	5f		 pop	 rdi
  001b3	5d		 pop	 rbp
  001b4	c3		 ret	 0
?MD5String@MD5_L@@QEAAPEADPEAD@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@@QEAAPEADPEAD0@Z
_TEXT	SEGMENT
context$ = 0
digest$ = 96
output1$ = 112
len$ = 176
i$ = 180
__$ArrayPad$ = 248
this$ = 288
string$ = 296
strMD5$ = 304
?MD5String@MD5_L@@QEAAPEADPEAD0@Z PROC			; MD5_L::MD5String, COMDAT

; 309  : {

$LN9:
  00000	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  00005	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000a	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000f	55		 push	 rbp
  00010	57		 push	 rdi
  00011	48 81 ec 28 01
	00 00		 sub	 rsp, 296		; 00000128H
  00018	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]
  0001d	48 8b 05 00 00
	00 00		 mov	 rax, QWORD PTR __security_cookie
  00024	48 33 c5	 xor	 rax, rbp
  00027	48 89 85 f8 00
	00 00		 mov	 QWORD PTR __$ArrayPad$[rbp], rax

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

  0002e	48 8d 45 60	 lea	 rax, QWORD PTR digest$[rbp]
  00032	48 8b f8	 mov	 rdi, rax
  00035	33 c0		 xor	 eax, eax
  00037	b9 10 00 00 00	 mov	 ecx, 16
  0003c	f3 aa		 rep stosb

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

  0003e	48 8d 45 70	 lea	 rax, QWORD PTR output1$[rbp]
  00042	48 8b f8	 mov	 rdi, rax
  00045	33 c0		 xor	 eax, eax
  00047	b9 40 00 00 00	 mov	 ecx, 64			; 00000040H
  0004c	f3 aa		 rep stosb

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

  0004e	48 8b 8d 28 01
	00 00		 mov	 rcx, QWORD PTR string$[rbp]
  00055	e8 00 00 00 00	 call	 strlen
  0005a	89 85 b0 00 00
	00		 mov	 DWORD PTR len$[rbp], eax

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

  00060	48 8d 55 00	 lea	 rdx, QWORD PTR context$[rbp]
  00064	48 8b 8d 20 01
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  0006b	e8 00 00 00 00	 call	 ?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Init

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

  00070	44 8b 8d b0 00
	00 00		 mov	 r9d, DWORD PTR len$[rbp]
  00077	4c 8b 85 28 01
	00 00		 mov	 r8, QWORD PTR string$[rbp]
  0007e	48 8d 55 00	 lea	 rdx, QWORD PTR context$[rbp]
  00082	48 8b 8d 20 01
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  00089	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update

; 319  : 	MD5Final(digest, &context);

  0008e	4c 8d 45 00	 lea	 r8, QWORD PTR context$[rbp]
  00092	48 8d 55 60	 lea	 rdx, QWORD PTR digest$[rbp]
  00096	48 8b 8d 20 01
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  0009d	e8 00 00 00 00	 call	 ?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Final

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

  000a2	c7 85 b4 00 00
	00 00 00 00 00	 mov	 DWORD PTR i$[rbp], 0
  000ac	eb 0e		 jmp	 SHORT $LN4@MD5String
$LN2@MD5String:
  000ae	8b 85 b4 00 00
	00		 mov	 eax, DWORD PTR i$[rbp]
  000b4	ff c0		 inc	 eax
  000b6	89 85 b4 00 00
	00		 mov	 DWORD PTR i$[rbp], eax
$LN4@MD5String:
  000bc	83 bd b4 00 00
	00 10		 cmp	 DWORD PTR i$[rbp], 16
  000c3	7d 60		 jge	 SHORT $LN3@MD5String

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

  000c5	48 63 85 b4 00
	00 00		 movsxd	 rax, DWORD PTR i$[rbp]
  000cc	0f b6 44 05 60	 movzx	 eax, BYTE PTR digest$[rbp+rax]
  000d1	8b 8d b4 00 00
	00		 mov	 ecx, DWORD PTR i$[rbp]
  000d7	03 c9		 add	 ecx, ecx
  000d9	48 63 c9	 movsxd	 rcx, ecx
  000dc	48 8d 4c 0d 70	 lea	 rcx, QWORD PTR output1$[rbp+rcx]
  000e1	44 8b c0	 mov	 r8d, eax
  000e4	48 8d 15 00 00
	00 00		 lea	 rdx, OFFSET FLAT:??_C@_04JFFKLGJF@?$CF02X@
  000eb	e8 00 00 00 00	 call	 sprintf

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

  000f0	48 63 85 b4 00
	00 00		 movsxd	 rax, DWORD PTR i$[rbp]
  000f7	0f b6 44 05 60	 movzx	 eax, BYTE PTR digest$[rbp+rax]
  000fc	c1 e0 04	 shl	 eax, 4
  000ff	0f b6 c0	 movzx	 eax, al
  00102	8b 8d b4 00 00
	00		 mov	 ecx, DWORD PTR i$[rbp]
  00108	8d 4c 09 01	 lea	 ecx, DWORD PTR [rcx+rcx+1]
  0010c	48 63 c9	 movsxd	 rcx, ecx
  0010f	48 8d 4c 0d 70	 lea	 rcx, QWORD PTR output1$[rbp+rcx]
  00114	44 8b c0	 mov	 r8d, eax
  00117	48 8d 15 00 00
	00 00		 lea	 rdx, OFFSET FLAT:??_C@_04JFFKLGJF@?$CF02X@
  0011e	e8 00 00 00 00	 call	 sprintf

; 325  : 	}

  00123	eb 89		 jmp	 SHORT $LN2@MD5String
$LN3@MD5String:

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

  00125	c7 85 b4 00 00
	00 00 00 00 00	 mov	 DWORD PTR i$[rbp], 0
  0012f	eb 0e		 jmp	 SHORT $LN7@MD5String
$LN5@MD5String:
  00131	8b 85 b4 00 00
	00		 mov	 eax, DWORD PTR i$[rbp]
  00137	ff c0		 inc	 eax
  00139	89 85 b4 00 00
	00		 mov	 DWORD PTR i$[rbp], eax
$LN7@MD5String:
  0013f	83 bd b4 00 00
	00 20		 cmp	 DWORD PTR i$[rbp], 32	; 00000020H
  00146	7d 1f		 jge	 SHORT $LN6@MD5String

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

  00148	48 63 85 b4 00
	00 00		 movsxd	 rax, DWORD PTR i$[rbp]
  0014f	48 63 8d b4 00
	00 00		 movsxd	 rcx, DWORD PTR i$[rbp]
  00156	48 8b 95 30 01
	00 00		 mov	 rdx, QWORD PTR strMD5$[rbp]
  0015d	0f b6 44 05 70	 movzx	 eax, BYTE PTR output1$[rbp+rax]
  00162	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al

; 329  : 	}

  00165	eb ca		 jmp	 SHORT $LN5@MD5String
$LN6@MD5String:

; 330  : 	strMD5[32] = 0;

  00167	b8 01 00 00 00	 mov	 eax, 1
  0016c	48 6b c0 20	 imul	 rax, rax, 32		; 00000020H
  00170	48 8b 8d 30 01
	00 00		 mov	 rcx, QWORD PTR strMD5$[rbp]
  00177	c6 04 01 00	 mov	 BYTE PTR [rcx+rax], 0

; 331  : 
; 332  : 	return strMD5;

  0017b	48 8b 85 30 01
	00 00		 mov	 rax, QWORD PTR strMD5$[rbp]

; 333  : }

  00182	48 8b 8d f8 00
	00 00		 mov	 rcx, QWORD PTR __$ArrayPad$[rbp]
  00189	48 33 cd	 xor	 rcx, rbp
  0018c	e8 00 00 00 00	 call	 __security_check_cookie
  00191	48 8d a5 08 01
	00 00		 lea	 rsp, QWORD PTR [rbp+264]
  00198	5f		 pop	 rdi
  00199	5d		 pop	 rbp
  0019a	c3		 ret	 0
?MD5String@MD5_L@@QEAAPEADPEAD0@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@@QEAAXPEAD@Z
_TEXT	SEGMENT
len$ = 0
i$ = 4
n$ = 8
this$ = 96
orstring$ = 104
?StringAddOne@MD5_L@@QEAAXPEAD@Z PROC			; MD5_L::StringAddOne, COMDAT

; 339  : { 

$LN12:
  00000	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  00005	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000a	55		 push	 rbp
  0000b	48 83 ec 70	 sub	 rsp, 112		; 00000070H
  0000f	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]

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

  00014	48 8b 4d 68	 mov	 rcx, QWORD PTR orstring$[rbp]
  00018	e8 00 00 00 00	 call	 strlen
  0001d	89 45 00	 mov	 DWORD PTR len$[rbp], eax

; 344  : n = len - 1; 

  00020	8b 45 00	 mov	 eax, DWORD PTR len$[rbp]
  00023	ff c8		 dec	 eax
  00025	89 45 08	 mov	 DWORD PTR n$[rbp], eax

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

  00028	8b 45 08	 mov	 eax, DWORD PTR n$[rbp]
  0002b	89 45 04	 mov	 DWORD PTR i$[rbp], eax
  0002e	eb 08		 jmp	 SHORT $LN4@StringAddO
$LN2@StringAddO:
  00030	8b 45 04	 mov	 eax, DWORD PTR i$[rbp]
  00033	ff c8		 dec	 eax
  00035	89 45 04	 mov	 DWORD PTR i$[rbp], eax
$LN4@StringAddO:
  00038	83 7d 04 00	 cmp	 DWORD PTR i$[rbp], 0
  0003c	0f 8c 83 00 00
	00		 jl	 $LN3@StringAddO

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

  00042	48 63 45 04	 movsxd	 rax, DWORD PTR i$[rbp]
  00046	48 8b 4d 68	 mov	 rcx, QWORD PTR orstring$[rbp]
  0004a	0f be 04 01	 movsx	 eax, BYTE PTR [rcx+rax]
  0004e	83 f8 39	 cmp	 eax, 57			; 00000039H
  00051	75 10		 jne	 SHORT $LN5@StringAddO

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

  00053	48 63 45 04	 movsxd	 rax, DWORD PTR i$[rbp]
  00057	48 8b 4d 68	 mov	 rcx, QWORD PTR orstring$[rbp]
  0005b	c6 04 01 41	 mov	 BYTE PTR [rcx+rax], 65	; 00000041H

; 350  : break; 

  0005f	eb 64		 jmp	 SHORT $LN3@StringAddO

; 351  : } 

  00061	eb 5b		 jmp	 SHORT $LN6@StringAddO
$LN5@StringAddO:

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

  00063	48 63 45 04	 movsxd	 rax, DWORD PTR i$[rbp]
  00067	48 8b 4d 68	 mov	 rcx, QWORD PTR orstring$[rbp]
  0006b	0f be 04 01	 movsx	 eax, BYTE PTR [rcx+rax]
  0006f	83 f8 5a	 cmp	 eax, 90			; 0000005aH
  00072	75 10		 jne	 SHORT $LN7@StringAddO

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

  00074	48 63 45 04	 movsxd	 rax, DWORD PTR i$[rbp]
  00078	48 8b 4d 68	 mov	 rcx, QWORD PTR orstring$[rbp]
  0007c	c6 04 01 61	 mov	 BYTE PTR [rcx+rax], 97	; 00000061H

; 355  : break; 

  00080	eb 43		 jmp	 SHORT $LN3@StringAddO

; 356  : } 

  00082	eb 3a		 jmp	 SHORT $LN8@StringAddO
$LN7@StringAddO:

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

  00084	48 63 45 04	 movsxd	 rax, DWORD PTR i$[rbp]
  00088	48 8b 4d 68	 mov	 rcx, QWORD PTR orstring$[rbp]
  0008c	0f be 04 01	 movsx	 eax, BYTE PTR [rcx+rax]
  00090	83 f8 7a	 cmp	 eax, 122		; 0000007aH
  00093	75 10		 jne	 SHORT $LN9@StringAddO

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

  00095	48 63 45 04	 movsxd	 rax, DWORD PTR i$[rbp]
  00099	48 8b 4d 68	 mov	 rcx, QWORD PTR orstring$[rbp]
  0009d	c6 04 01 30	 mov	 BYTE PTR [rcx+rax], 48	; 00000030H

; 360  : continue; 

  000a1	eb 8d		 jmp	 SHORT $LN2@StringAddO

; 361  : } 

  000a3	eb 19		 jmp	 SHORT $LN10@StringAddO
$LN9@StringAddO:

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

  000a5	48 63 45 04	 movsxd	 rax, DWORD PTR i$[rbp]
  000a9	48 8b 4d 68	 mov	 rcx, QWORD PTR orstring$[rbp]
  000ad	0f be 04 01	 movsx	 eax, BYTE PTR [rcx+rax]
  000b1	ff c0		 inc	 eax
  000b3	48 63 4d 04	 movsxd	 rcx, DWORD PTR i$[rbp]
  000b7	48 8b 55 68	 mov	 rdx, QWORD PTR orstring$[rbp]
  000bb	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al
$LN10@StringAddO:
$LN8@StringAddO:
$LN6@StringAddO:

; 364  : break; 

  000be	eb 05		 jmp	 SHORT $LN3@StringAddO

; 365  : } 

  000c0	e9 6b ff ff ff	 jmp	 $LN2@StringAddO
$LN3@StringAddO:

; 366  : } 

  000c5	48 8d 65 50	 lea	 rsp, QWORD PTR [rbp+80]
  000c9	5d		 pop	 rbp
  000ca	c3		 ret	 0
?StringAddOne@MD5_L@@QEAAXPEAD@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@@QEAAXQEAEPEAU_MD5_CTX@1@@Z
_TEXT	SEGMENT
bits$ = 0
index$ = 8
padLen$ = 12
tv77 = 80
__$ArrayPad$ = 88
this$ = 112
digest$ = 120
context$ = 128
?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z PROC	; MD5_L::MD5Final, COMDAT

; 75   : { 

$LN5:
  00000	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  00005	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000a	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000f	55		 push	 rbp
  00010	48 81 ec 80 00
	00 00		 sub	 rsp, 128		; 00000080H
  00017	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]
  0001c	48 8b 05 00 00
	00 00		 mov	 rax, QWORD PTR __security_cookie
  00023	48 33 c5	 xor	 rax, rbp
  00026	48 89 45 58	 mov	 QWORD PTR __$ArrayPad$[rbp], rax

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

  0002a	48 8b 85 80 00
	00 00		 mov	 rax, QWORD PTR context$[rbp]
  00031	48 83 c0 10	 add	 rax, 16
  00035	41 b9 08 00 00
	00		 mov	 r9d, 8
  0003b	4c 8b c0	 mov	 r8, rax
  0003e	48 8d 55 00	 lea	 rdx, QWORD PTR bits$[rbp]
  00042	48 8b 4d 70	 mov	 rcx, QWORD PTR this$[rbp]
  00046	e8 00 00 00 00	 call	 ?Encode@MD5_L@@QEAAXPEAEPEAKI@Z ; MD5_L::Encode

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

  0004b	b8 04 00 00 00	 mov	 eax, 4
  00050	48 6b c0 00	 imul	 rax, rax, 0
  00054	48 8b 8d 80 00
	00 00		 mov	 rcx, QWORD PTR context$[rbp]
  0005b	8b 44 01 10	 mov	 eax, DWORD PTR [rcx+rax+16]
  0005f	c1 e8 03	 shr	 eax, 3
  00062	83 e0 3f	 and	 eax, 63			; 0000003fH
  00065	89 45 08	 mov	 DWORD PTR index$[rbp], eax

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

  00068	83 7d 08 38	 cmp	 DWORD PTR index$[rbp], 56 ; 00000038H
  0006c	73 0d		 jae	 SHORT $LN3@MD5Final
  0006e	b8 38 00 00 00	 mov	 eax, 56			; 00000038H
  00073	2b 45 08	 sub	 eax, DWORD PTR index$[rbp]
  00076	89 45 50	 mov	 DWORD PTR tv77[rbp], eax
  00079	eb 0b		 jmp	 SHORT $LN4@MD5Final
$LN3@MD5Final:
  0007b	b8 78 00 00 00	 mov	 eax, 120		; 00000078H
  00080	2b 45 08	 sub	 eax, DWORD PTR index$[rbp]
  00083	89 45 50	 mov	 DWORD PTR tv77[rbp], eax
$LN4@MD5Final:
  00086	8b 45 50	 mov	 eax, DWORD PTR tv77[rbp]
  00089	89 45 0c	 mov	 DWORD PTR padLen$[rbp], eax

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

  0008c	48 8b 45 70	 mov	 rax, QWORD PTR this$[rbp]
  00090	44 8b 4d 0c	 mov	 r9d, DWORD PTR padLen$[rbp]
  00094	4c 8b c0	 mov	 r8, rax
  00097	48 8b 95 80 00
	00 00		 mov	 rdx, QWORD PTR context$[rbp]
  0009e	48 8b 4d 70	 mov	 rcx, QWORD PTR this$[rbp]
  000a2	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update

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

  000a7	41 b9 08 00 00
	00		 mov	 r9d, 8
  000ad	4c 8d 45 00	 lea	 r8, QWORD PTR bits$[rbp]
  000b1	48 8b 95 80 00
	00 00		 mov	 rdx, QWORD PTR context$[rbp]
  000b8	48 8b 4d 70	 mov	 rcx, QWORD PTR this$[rbp]
  000bc	e8 00 00 00 00	 call	 ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update

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

  000c1	48 8b 85 80 00
	00 00		 mov	 rax, QWORD PTR context$[rbp]
  000c8	41 b9 10 00 00
	00		 mov	 r9d, 16
  000ce	4c 8b c0	 mov	 r8, rax
  000d1	48 8b 55 78	 mov	 rdx, QWORD PTR digest$[rbp]
  000d5	48 8b 4d 70	 mov	 rcx, QWORD PTR this$[rbp]
  000d9	e8 00 00 00 00	 call	 ?Encode@MD5_L@@QEAAXPEAEPEAKI@Z ; MD5_L::Encode

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

  000de	41 b9 58 00 00
	00		 mov	 r9d, 88			; 00000058H
  000e4	45 33 c0	 xor	 r8d, r8d
  000e7	48 8b 95 80 00
	00 00		 mov	 rdx, QWORD PTR context$[rbp]
  000ee	48 8b 4d 70	 mov	 rcx, QWORD PTR this$[rbp]
  000f2	e8 00 00 00 00	 call	 ?MD5_memset@MD5_L@@QEAAXPEAEHI@Z ; MD5_L::MD5_memset

; 97   : } 

  000f7	48 8b 4d 58	 mov	 rcx, QWORD PTR __$ArrayPad$[rbp]
  000fb	48 33 cd	 xor	 rcx, rbp
  000fe	e8 00 00 00 00	 call	 __security_check_cookie
  00103	48 8d 65 60	 lea	 rsp, QWORD PTR [rbp+96]
  00107	5d		 pop	 rbp
  00108	c3		 ret	 0
?MD5Final@MD5_L@@QEAAXQEAEPEAU_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@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z
_TEXT	SEGMENT
i$ = 0
index$ = 4
partLen$ = 8
tv76 = 76
this$ = 96
context$ = 104
input$ = 112
inputLen$ = 120
?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z PROC	; MD5_L::MD5Update, COMDAT

; 33   : { 

$LN9:
  00000	44 89 4c 24 20	 mov	 DWORD PTR [rsp+32], r9d
  00005	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  0000a	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000f	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00014	55		 push	 rbp
  00015	48 83 ec 70	 sub	 rsp, 112		; 00000070H
  00019	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]

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

  0001e	b8 04 00 00 00	 mov	 eax, 4
  00023	48 6b c0 00	 imul	 rax, rax, 0
  00027	48 8b 4d 68	 mov	 rcx, QWORD PTR context$[rbp]
  0002b	8b 44 01 10	 mov	 eax, DWORD PTR [rcx+rax+16]
  0002f	c1 e8 03	 shr	 eax, 3
  00032	83 e0 3f	 and	 eax, 63			; 0000003fH
  00035	89 45 04	 mov	 DWORD PTR index$[rbp], eax

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

  00038	8b 45 78	 mov	 eax, DWORD PTR inputLen$[rbp]
  0003b	c1 e0 03	 shl	 eax, 3
  0003e	b9 04 00 00 00	 mov	 ecx, 4
  00043	48 6b c9 00	 imul	 rcx, rcx, 0
  00047	48 8b 55 68	 mov	 rdx, QWORD PTR context$[rbp]
  0004b	8b 4c 0a 10	 mov	 ecx, DWORD PTR [rdx+rcx+16]
  0004f	03 c8		 add	 ecx, eax
  00051	89 4d 4c	 mov	 DWORD PTR tv76[rbp], ecx
  00054	b8 04 00 00 00	 mov	 eax, 4
  00059	48 6b c0 00	 imul	 rax, rax, 0
  0005d	48 8b 4d 68	 mov	 rcx, QWORD PTR context$[rbp]
  00061	8b 55 4c	 mov	 edx, DWORD PTR tv76[rbp]
  00064	89 54 01 10	 mov	 DWORD PTR [rcx+rax+16], edx
  00068	8b 45 78	 mov	 eax, DWORD PTR inputLen$[rbp]
  0006b	c1 e0 03	 shl	 eax, 3
  0006e	39 45 4c	 cmp	 DWORD PTR tv76[rbp], eax
  00071	73 24		 jae	 SHORT $LN5@MD5Update

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

  00073	b8 04 00 00 00	 mov	 eax, 4
  00078	48 6b c0 01	 imul	 rax, rax, 1
  0007c	48 8b 4d 68	 mov	 rcx, QWORD PTR context$[rbp]
  00080	8b 44 01 10	 mov	 eax, DWORD PTR [rcx+rax+16]
  00084	ff c0		 inc	 eax
  00086	b9 04 00 00 00	 mov	 ecx, 4
  0008b	48 6b c9 01	 imul	 rcx, rcx, 1
  0008f	48 8b 55 68	 mov	 rdx, QWORD PTR context$[rbp]
  00093	89 44 0a 10	 mov	 DWORD PTR [rdx+rcx+16], eax
$LN5@MD5Update:

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

  00097	8b 45 78	 mov	 eax, DWORD PTR inputLen$[rbp]
  0009a	c1 e8 1d	 shr	 eax, 29
  0009d	b9 04 00 00 00	 mov	 ecx, 4
  000a2	48 6b c9 01	 imul	 rcx, rcx, 1
  000a6	48 8b 55 68	 mov	 rdx, QWORD PTR context$[rbp]
  000aa	03 44 0a 10	 add	 eax, DWORD PTR [rdx+rcx+16]
  000ae	b9 04 00 00 00	 mov	 ecx, 4
  000b3	48 6b c9 01	 imul	 rcx, rcx, 1
  000b7	48 8b 55 68	 mov	 rdx, QWORD PTR context$[rbp]
  000bb	89 44 0a 10	 mov	 DWORD PTR [rdx+rcx+16], eax

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

  000bf	b8 40 00 00 00	 mov	 eax, 64			; 00000040H
  000c4	2b 45 04	 sub	 eax, DWORD PTR index$[rbp]
  000c7	89 45 08	 mov	 DWORD PTR partLen$[rbp], eax

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

  000ca	8b 45 08	 mov	 eax, DWORD PTR partLen$[rbp]
  000cd	39 45 78	 cmp	 DWORD PTR inputLen$[rbp], eax
  000d0	0f 82 82 00 00
	00		 jb	 $LN6@MD5Update

; 50   : MD5_memcpy 

  000d6	8b 45 04	 mov	 eax, DWORD PTR index$[rbp]
  000d9	48 8b 4d 68	 mov	 rcx, QWORD PTR context$[rbp]
  000dd	48 8d 44 01 18	 lea	 rax, QWORD PTR [rcx+rax+24]
  000e2	44 8b 4d 08	 mov	 r9d, DWORD PTR partLen$[rbp]
  000e6	4c 8b 45 70	 mov	 r8, QWORD PTR input$[rbp]
  000ea	48 8b d0	 mov	 rdx, rax
  000ed	48 8b 4d 60	 mov	 rcx, QWORD PTR this$[rbp]
  000f1	e8 00 00 00 00	 call	 ?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z ; MD5_L::MD5_memcpy

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

  000f6	48 8b 45 68	 mov	 rax, QWORD PTR context$[rbp]
  000fa	48 83 c0 18	 add	 rax, 24
  000fe	48 8b 4d 68	 mov	 rcx, QWORD PTR context$[rbp]
  00102	4c 8b c0	 mov	 r8, rax
  00105	48 8b d1	 mov	 rdx, rcx
  00108	48 8b 4d 60	 mov	 rcx, QWORD PTR this$[rbp]
  0010c	e8 00 00 00 00	 call	 ?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z ; MD5_L::MD5Transform

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

  00111	8b 45 08	 mov	 eax, DWORD PTR partLen$[rbp]
  00114	89 45 00	 mov	 DWORD PTR i$[rbp], eax
  00117	eb 09		 jmp	 SHORT $LN4@MD5Update
$LN2@MD5Update:
  00119	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  0011c	83 c0 40	 add	 eax, 64			; 00000040H
  0011f	89 45 00	 mov	 DWORD PTR i$[rbp], eax
$LN4@MD5Update:
  00122	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00125	83 c0 3f	 add	 eax, 63			; 0000003fH
  00128	3b 45 78	 cmp	 eax, DWORD PTR inputLen$[rbp]
  0012b	73 22		 jae	 SHORT $LN3@MD5Update

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

  0012d	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00130	48 8b 4d 70	 mov	 rcx, QWORD PTR input$[rbp]
  00134	48 03 c8	 add	 rcx, rax
  00137	48 8b c1	 mov	 rax, rcx
  0013a	48 8b 4d 68	 mov	 rcx, QWORD PTR context$[rbp]
  0013e	4c 8b c0	 mov	 r8, rax
  00141	48 8b d1	 mov	 rdx, rcx
  00144	48 8b 4d 60	 mov	 rcx, QWORD PTR this$[rbp]
  00148	e8 00 00 00 00	 call	 ?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z ; MD5_L::MD5Transform
  0014d	eb ca		 jmp	 SHORT $LN2@MD5Update
$LN3@MD5Update:

; 56   : 
; 57   : index = 0; 

  0014f	c7 45 04 00 00
	00 00		 mov	 DWORD PTR index$[rbp], 0

; 58   : } 

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

; 59   : else 
; 60   : i = 0; 

  00158	c7 45 00 00 00
	00 00		 mov	 DWORD PTR i$[rbp], 0
$LN7@MD5Update:

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

  0015f	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00162	8b 4d 78	 mov	 ecx, DWORD PTR inputLen$[rbp]
  00165	2b c8		 sub	 ecx, eax
  00167	8b c1		 mov	 eax, ecx
  00169	8b 4d 00	 mov	 ecx, DWORD PTR i$[rbp]
  0016c	48 8b 55 70	 mov	 rdx, QWORD PTR input$[rbp]
  00170	48 03 d1	 add	 rdx, rcx
  00173	48 8b ca	 mov	 rcx, rdx
  00176	8b 55 04	 mov	 edx, DWORD PTR index$[rbp]
  00179	4c 8b 45 68	 mov	 r8, QWORD PTR context$[rbp]
  0017d	49 8d 54 10 18	 lea	 rdx, QWORD PTR [r8+rdx+24]
  00182	44 8b c8	 mov	 r9d, eax
  00185	4c 8b c1	 mov	 r8, rcx
  00188	48 8b 4d 60	 mov	 rcx, QWORD PTR this$[rbp]
  0018c	e8 00 00 00 00	 call	 ?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z ; MD5_L::MD5_memcpy

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

  00191	48 8d 65 50	 lea	 rsp, QWORD PTR [rbp+80]
  00195	5d		 pop	 rbp
  00196	c3		 ret	 0
?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@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@@QEAAXPEAU_MD5_CTX@1@@Z
_TEXT	SEGMENT
this$ = 80
context$ = 88
?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z PROC		; MD5_L::MD5Init, COMDAT

; 14   : { 

$LN3:
  00000	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  00005	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000a	55		 push	 rbp
  0000b	48 83 ec 40	 sub	 rsp, 64			; 00000040H
  0000f	48 8b ec	 mov	 rbp, rsp

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

  00012	b8 04 00 00 00	 mov	 eax, 4
  00017	48 6b c0 01	 imul	 rax, rax, 1
  0001b	48 8b 4d 58	 mov	 rcx, QWORD PTR context$[rbp]
  0001f	c7 44 01 10 00
	00 00 00	 mov	 DWORD PTR [rcx+rax+16], 0
  00027	b8 04 00 00 00	 mov	 eax, 4
  0002c	48 6b c0 00	 imul	 rax, rax, 0
  00030	48 8b 4d 58	 mov	 rcx, QWORD PTR context$[rbp]
  00034	c7 44 01 10 00
	00 00 00	 mov	 DWORD PTR [rcx+rax+16], 0

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

  0003c	b8 04 00 00 00	 mov	 eax, 4
  00041	48 6b c0 00	 imul	 rax, rax, 0
  00045	48 8b 4d 58	 mov	 rcx, QWORD PTR context$[rbp]
  00049	c7 04 01 01 23
	45 67		 mov	 DWORD PTR [rcx+rax], 1732584193 ; 67452301H

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

  00050	b8 04 00 00 00	 mov	 eax, 4
  00055	48 6b c0 01	 imul	 rax, rax, 1
  00059	48 8b 4d 58	 mov	 rcx, QWORD PTR context$[rbp]
  0005d	c7 04 01 89 ab
	cd ef		 mov	 DWORD PTR [rcx+rax], -271733879 ; efcdab89H

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

  00064	b8 04 00 00 00	 mov	 eax, 4
  00069	48 6b c0 02	 imul	 rax, rax, 2
  0006d	48 8b 4d 58	 mov	 rcx, QWORD PTR context$[rbp]
  00071	c7 04 01 fe dc
	ba 98		 mov	 DWORD PTR [rcx+rax], -1732584194 ; 98badcfeH

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

  00078	b8 04 00 00 00	 mov	 eax, 4
  0007d	48 6b c0 03	 imul	 rax, rax, 3
  00081	48 8b 4d 58	 mov	 rcx, QWORD PTR context$[rbp]
  00085	c7 04 01 76 54
	32 10		 mov	 DWORD PTR [rcx+rax], 271733878 ; 10325476H

; 22   : } 

  0008c	48 8d 65 40	 lea	 rsp, QWORD PTR [rbp+64]
  00090	5d		 pop	 rbp
  00091	c3		 ret	 0
?MD5Init@MD5_L@@QEAAXPEAU_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@@QEAAXPEAEHI@Z
_TEXT	SEGMENT
i$ = 0
this$ = 96
output$ = 104
value$ = 112
len$ = 120
?MD5_memset@MD5_L@@QEAAXPEAEHI@Z PROC			; MD5_L::MD5_memset, COMDAT

; 248  : { 

$LN6:
  00000	44 89 4c 24 20	 mov	 DWORD PTR [rsp+32], r9d
  00005	44 89 44 24 18	 mov	 DWORD PTR [rsp+24], r8d
  0000a	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000f	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00014	55		 push	 rbp
  00015	48 83 ec 50	 sub	 rsp, 80			; 00000050H
  00019	48 8b ec	 mov	 rbp, rsp

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

  0001c	c7 45 00 00 00
	00 00		 mov	 DWORD PTR i$[rbp], 0
  00023	eb 08		 jmp	 SHORT $LN4@MD5_memset
$LN2@MD5_memset:
  00025	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00028	ff c0		 inc	 eax
  0002a	89 45 00	 mov	 DWORD PTR i$[rbp], eax
$LN4@MD5_memset:
  0002d	8b 45 78	 mov	 eax, DWORD PTR len$[rbp]
  00030	39 45 00	 cmp	 DWORD PTR i$[rbp], eax
  00033	73 10		 jae	 SHORT $LN3@MD5_memset

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

  00035	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00038	48 8b 4d 68	 mov	 rcx, QWORD PTR output$[rbp]
  0003c	0f b6 55 70	 movzx	 edx, BYTE PTR value$[rbp]
  00040	88 14 01	 mov	 BYTE PTR [rcx+rax], dl
  00043	eb e0		 jmp	 SHORT $LN2@MD5_memset
$LN3@MD5_memset:

; 253  : } 

  00045	48 8d 65 50	 lea	 rsp, QWORD PTR [rbp+80]
  00049	5d		 pop	 rbp
  0004a	c3		 ret	 0
?MD5_memset@MD5_L@@QEAAXPEAEHI@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@@QEAAXPEAE0I@Z
_TEXT	SEGMENT
i$ = 0
this$ = 96
output$ = 104
input$ = 112
len$ = 120
?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z PROC			; MD5_L::MD5_memcpy, COMDAT

; 234  : { 

$LN6:
  00000	44 89 4c 24 20	 mov	 DWORD PTR [rsp+32], r9d
  00005	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  0000a	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000f	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00014	55		 push	 rbp
  00015	48 83 ec 50	 sub	 rsp, 80			; 00000050H
  00019	48 8b ec	 mov	 rbp, rsp

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

  0001c	c7 45 00 00 00
	00 00		 mov	 DWORD PTR i$[rbp], 0
  00023	eb 08		 jmp	 SHORT $LN4@MD5_memcpy
$LN2@MD5_memcpy:
  00025	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00028	ff c0		 inc	 eax
  0002a	89 45 00	 mov	 DWORD PTR i$[rbp], eax
$LN4@MD5_memcpy:
  0002d	8b 45 78	 mov	 eax, DWORD PTR len$[rbp]
  00030	39 45 00	 cmp	 DWORD PTR i$[rbp], eax
  00033	73 18		 jae	 SHORT $LN3@MD5_memcpy

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

  00035	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00038	8b 4d 00	 mov	 ecx, DWORD PTR i$[rbp]
  0003b	48 8b 55 68	 mov	 rdx, QWORD PTR output$[rbp]
  0003f	4c 8b 45 70	 mov	 r8, QWORD PTR input$[rbp]
  00043	41 0f b6 04 00	 movzx	 eax, BYTE PTR [r8+rax]
  00048	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al
  0004b	eb d8		 jmp	 SHORT $LN2@MD5_memcpy
$LN3@MD5_memcpy:

; 239  : } 

  0004d	48 8d 65 50	 lea	 rsp, QWORD PTR [rbp+80]
  00051	5d		 pop	 rbp
  00052	c3		 ret	 0
?MD5_memcpy@MD5_L@@QEAAXPEAE0I@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@@QEAAXPEAKPEAEI@Z
_TEXT	SEGMENT
i$ = 0
j$ = 4
this$ = 96
output$ = 104
input$ = 112
len$ = 120
?Decode@MD5_L@@QEAAXPEAKPEAEI@Z PROC			; MD5_L::Decode, COMDAT

; 219  : { 

$LN6:
  00000	44 89 4c 24 20	 mov	 DWORD PTR [rsp+32], r9d
  00005	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  0000a	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000f	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00014	55		 push	 rbp
  00015	48 83 ec 50	 sub	 rsp, 80			; 00000050H
  00019	48 8b ec	 mov	 rbp, rsp

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

  0001c	c7 45 00 00 00
	00 00		 mov	 DWORD PTR i$[rbp], 0
  00023	c7 45 04 00 00
	00 00		 mov	 DWORD PTR j$[rbp], 0
  0002a	eb 11		 jmp	 SHORT $LN4@Decode
$LN2@Decode:
  0002c	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  0002f	ff c0		 inc	 eax
  00031	89 45 00	 mov	 DWORD PTR i$[rbp], eax
  00034	8b 45 04	 mov	 eax, DWORD PTR j$[rbp]
  00037	83 c0 04	 add	 eax, 4
  0003a	89 45 04	 mov	 DWORD PTR j$[rbp], eax
$LN4@Decode:
  0003d	8b 45 78	 mov	 eax, DWORD PTR len$[rbp]
  00040	39 45 04	 cmp	 DWORD PTR j$[rbp], eax
  00043	73 55		 jae	 SHORT $LN3@Decode

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

  00045	8b 45 04	 mov	 eax, DWORD PTR j$[rbp]
  00048	48 8b 4d 70	 mov	 rcx, QWORD PTR input$[rbp]
  0004c	0f b6 04 01	 movzx	 eax, BYTE PTR [rcx+rax]
  00050	8b 4d 04	 mov	 ecx, DWORD PTR j$[rbp]
  00053	ff c1		 inc	 ecx
  00055	8b c9		 mov	 ecx, ecx
  00057	48 8b 55 70	 mov	 rdx, QWORD PTR input$[rbp]
  0005b	0f b6 0c 0a	 movzx	 ecx, BYTE PTR [rdx+rcx]
  0005f	c1 e1 08	 shl	 ecx, 8
  00062	0b c1		 or	 eax, ecx
  00064	8b 4d 04	 mov	 ecx, DWORD PTR j$[rbp]
  00067	83 c1 02	 add	 ecx, 2
  0006a	8b c9		 mov	 ecx, ecx
  0006c	48 8b 55 70	 mov	 rdx, QWORD PTR input$[rbp]
  00070	0f b6 0c 0a	 movzx	 ecx, BYTE PTR [rdx+rcx]
  00074	c1 e1 10	 shl	 ecx, 16
  00077	0b c1		 or	 eax, ecx
  00079	8b 4d 04	 mov	 ecx, DWORD PTR j$[rbp]
  0007c	83 c1 03	 add	 ecx, 3
  0007f	8b c9		 mov	 ecx, ecx
  00081	48 8b 55 70	 mov	 rdx, QWORD PTR input$[rbp]
  00085	0f b6 0c 0a	 movzx	 ecx, BYTE PTR [rdx+rcx]
  00089	c1 e1 18	 shl	 ecx, 24
  0008c	0b c1		 or	 eax, ecx
  0008e	8b 4d 00	 mov	 ecx, DWORD PTR i$[rbp]
  00091	48 8b 55 68	 mov	 rdx, QWORD PTR output$[rbp]
  00095	89 04 8a	 mov	 DWORD PTR [rdx+rcx*4], eax
  00098	eb 92		 jmp	 SHORT $LN2@Decode
$LN3@Decode:

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

  0009a	48 8d 65 50	 lea	 rsp, QWORD PTR [rbp+80]
  0009e	5d		 pop	 rbp
  0009f	c3		 ret	 0
?Decode@MD5_L@@QEAAXPEAKPEAEI@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@@QEAAXPEAEPEAKI@Z
_TEXT	SEGMENT
i$ = 0
j$ = 4
this$ = 96
output$ = 104
input$ = 112
len$ = 120
?Encode@MD5_L@@QEAAXPEAEPEAKI@Z PROC			; MD5_L::Encode, COMDAT

; 200  : { 

$LN6:
  00000	44 89 4c 24 20	 mov	 DWORD PTR [rsp+32], r9d
  00005	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  0000a	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000f	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00014	55		 push	 rbp
  00015	48 83 ec 50	 sub	 rsp, 80			; 00000050H
  00019	48 8b ec	 mov	 rbp, rsp

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

  0001c	c7 45 00 00 00
	00 00		 mov	 DWORD PTR i$[rbp], 0
  00023	c7 45 04 00 00
	00 00		 mov	 DWORD PTR j$[rbp], 0
  0002a	eb 11		 jmp	 SHORT $LN4@Encode
$LN2@Encode:
  0002c	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  0002f	ff c0		 inc	 eax
  00031	89 45 00	 mov	 DWORD PTR i$[rbp], eax
  00034	8b 45 04	 mov	 eax, DWORD PTR j$[rbp]
  00037	83 c0 04	 add	 eax, 4
  0003a	89 45 04	 mov	 DWORD PTR j$[rbp], eax
$LN4@Encode:
  0003d	8b 45 78	 mov	 eax, DWORD PTR len$[rbp]
  00040	39 45 04	 cmp	 DWORD PTR j$[rbp], eax
  00043	0f 83 80 00 00
	00		 jae	 $LN3@Encode

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

  00049	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  0004c	48 8b 4d 70	 mov	 rcx, QWORD PTR input$[rbp]
  00050	8b 04 81	 mov	 eax, DWORD PTR [rcx+rax*4]
  00053	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00058	8b 4d 04	 mov	 ecx, DWORD PTR j$[rbp]
  0005b	48 8b 55 68	 mov	 rdx, QWORD PTR output$[rbp]
  0005f	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al

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

  00062	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00065	48 8b 4d 70	 mov	 rcx, QWORD PTR input$[rbp]
  00069	8b 04 81	 mov	 eax, DWORD PTR [rcx+rax*4]
  0006c	c1 e8 08	 shr	 eax, 8
  0006f	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00074	8b 4d 04	 mov	 ecx, DWORD PTR j$[rbp]
  00077	ff c1		 inc	 ecx
  00079	8b c9		 mov	 ecx, ecx
  0007b	48 8b 55 68	 mov	 rdx, QWORD PTR output$[rbp]
  0007f	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al

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

  00082	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  00085	48 8b 4d 70	 mov	 rcx, QWORD PTR input$[rbp]
  00089	8b 04 81	 mov	 eax, DWORD PTR [rcx+rax*4]
  0008c	c1 e8 10	 shr	 eax, 16
  0008f	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00094	8b 4d 04	 mov	 ecx, DWORD PTR j$[rbp]
  00097	83 c1 02	 add	 ecx, 2
  0009a	8b c9		 mov	 ecx, ecx
  0009c	48 8b 55 68	 mov	 rdx, QWORD PTR output$[rbp]
  000a0	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al

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

  000a3	8b 45 00	 mov	 eax, DWORD PTR i$[rbp]
  000a6	48 8b 4d 70	 mov	 rcx, QWORD PTR input$[rbp]
  000aa	8b 04 81	 mov	 eax, DWORD PTR [rcx+rax*4]
  000ad	c1 e8 18	 shr	 eax, 24
  000b0	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  000b5	8b 4d 04	 mov	 ecx, DWORD PTR j$[rbp]
  000b8	83 c1 03	 add	 ecx, 3
  000bb	8b c9		 mov	 ecx, ecx
  000bd	48 8b 55 68	 mov	 rdx, QWORD PTR output$[rbp]
  000c1	88 04 0a	 mov	 BYTE PTR [rdx+rcx], al

; 208  : } 

  000c4	e9 63 ff ff ff	 jmp	 $LN2@Encode
$LN3@Encode:

; 209  : } 

  000c9	48 8d 65 50	 lea	 rsp, QWORD PTR [rbp+80]
  000cd	5d		 pop	 rbp
  000ce	c3		 ret	 0
?Encode@MD5_L@@QEAAXPEAEPEAKI@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@@QEAAXQEAKQEAE@Z
_TEXT	SEGMENT
a$ = 0
b$ = 4
c$ = 8
d$ = 12
x$ = 16
__$ArrayPad$ = 144
this$ = 176
state$ = 184
block$ = 192
?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z PROC		; MD5_L::MD5Transform, COMDAT

; 105  : { 

$LN3:
  00000	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  00005	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000a	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000f	55		 push	 rbp
  00010	48 81 ec c0 00
	00 00		 sub	 rsp, 192		; 000000c0H
  00017	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]
  0001c	48 8b 05 00 00
	00 00		 mov	 rax, QWORD PTR __security_cookie
  00023	48 33 c5	 xor	 rax, rbp
  00026	48 89 85 90 00
	00 00		 mov	 QWORD PTR __$ArrayPad$[rbp], rax

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

  0002d	b8 04 00 00 00	 mov	 eax, 4
  00032	48 6b c0 00	 imul	 rax, rax, 0
  00036	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR state$[rbp]
  0003d	8b 04 01	 mov	 eax, DWORD PTR [rcx+rax]
  00040	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00043	b8 04 00 00 00	 mov	 eax, 4
  00048	48 6b c0 01	 imul	 rax, rax, 1
  0004c	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR state$[rbp]
  00053	8b 04 01	 mov	 eax, DWORD PTR [rcx+rax]
  00056	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00059	b8 04 00 00 00	 mov	 eax, 4
  0005e	48 6b c0 02	 imul	 rax, rax, 2
  00062	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR state$[rbp]
  00069	8b 04 01	 mov	 eax, DWORD PTR [rcx+rax]
  0006c	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  0006f	b8 04 00 00 00	 mov	 eax, 4
  00074	48 6b c0 03	 imul	 rax, rax, 3
  00078	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR state$[rbp]
  0007f	8b 04 01	 mov	 eax, DWORD PTR [rcx+rax]
  00082	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00085	41 b9 40 00 00
	00		 mov	 r9d, 64			; 00000040H
  0008b	4c 8b 85 c0 00
	00 00		 mov	 r8, QWORD PTR block$[rbp]
  00092	48 8d 55 10	 lea	 rdx, QWORD PTR x$[rbp]
  00096	48 8b 8d b0 00
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  0009d	e8 00 00 00 00	 call	 ?Decode@MD5_L@@QEAAXPEAKPEAEI@Z ; MD5_L::Decode

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

  000a2	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  000a5	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  000a8	23 c8		 and	 ecx, eax
  000aa	8b c1		 mov	 eax, ecx
  000ac	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  000af	f7 d1		 not	 ecx
  000b1	23 4d 0c	 and	 ecx, DWORD PTR d$[rbp]
  000b4	0b c1		 or	 eax, ecx
  000b6	b9 04 00 00 00	 mov	 ecx, 4
  000bb	48 6b c9 00	 imul	 rcx, rcx, 0
  000bf	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  000c3	b9 78 a4 6a d7	 mov	 ecx, -680876936		; ffffffffd76aa478H
  000c8	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  000cb	48 03 ca	 add	 rcx, rdx
  000ce	03 c1		 add	 eax, ecx
  000d0	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  000d3	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  000d6	c1 e0 07	 shl	 eax, 7
  000d9	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  000dc	c1 e9 19	 shr	 ecx, 25
  000df	0b c1		 or	 eax, ecx
  000e1	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  000e4	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  000e7	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  000ea	03 c8		 add	 ecx, eax
  000ec	8b c1		 mov	 eax, ecx
  000ee	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  000f1	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  000f4	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  000f7	23 c8		 and	 ecx, eax
  000f9	8b c1		 mov	 eax, ecx
  000fb	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  000fe	f7 d1		 not	 ecx
  00100	23 4d 08	 and	 ecx, DWORD PTR c$[rbp]
  00103	0b c1		 or	 eax, ecx
  00105	b9 04 00 00 00	 mov	 ecx, 4
  0010a	48 6b c9 01	 imul	 rcx, rcx, 1
  0010e	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00112	b9 56 b7 c7 e8	 mov	 ecx, -389564586		; ffffffffe8c7b756H
  00117	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  0011a	48 03 ca	 add	 rcx, rdx
  0011d	03 c1		 add	 eax, ecx
  0011f	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00122	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00125	c1 e0 0c	 shl	 eax, 12
  00128	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0012b	c1 e9 14	 shr	 ecx, 20
  0012e	0b c1		 or	 eax, ecx
  00130	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00133	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00136	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00139	03 c8		 add	 ecx, eax
  0013b	8b c1		 mov	 eax, ecx
  0013d	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00140	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00143	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00146	23 c8		 and	 ecx, eax
  00148	8b c1		 mov	 eax, ecx
  0014a	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0014d	f7 d1		 not	 ecx
  0014f	23 4d 04	 and	 ecx, DWORD PTR b$[rbp]
  00152	0b c1		 or	 eax, ecx
  00154	b9 04 00 00 00	 mov	 ecx, 4
  00159	48 6b c9 02	 imul	 rcx, rcx, 2
  0015d	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00161	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00164	8d 84 01 db 70
	20 24		 lea	 eax, DWORD PTR [rcx+rax+606105819]
  0016b	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  0016e	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00171	c1 e0 11	 shl	 eax, 17
  00174	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00177	c1 e9 0f	 shr	 ecx, 15
  0017a	0b c1		 or	 eax, ecx
  0017c	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  0017f	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00182	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00185	03 c8		 add	 ecx, eax
  00187	8b c1		 mov	 eax, ecx
  00189	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  0018c	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0018f	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00192	23 c8		 and	 ecx, eax
  00194	8b c1		 mov	 eax, ecx
  00196	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00199	f7 d1		 not	 ecx
  0019b	23 4d 00	 and	 ecx, DWORD PTR a$[rbp]
  0019e	0b c1		 or	 eax, ecx
  001a0	b9 04 00 00 00	 mov	 ecx, 4
  001a5	48 6b c9 03	 imul	 rcx, rcx, 3
  001a9	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  001ad	b9 ee ce bd c1	 mov	 ecx, -1044525330	; ffffffffc1bdceeeH
  001b2	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  001b5	48 03 ca	 add	 rcx, rdx
  001b8	03 c1		 add	 eax, ecx
  001ba	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  001bd	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  001c0	c1 e0 16	 shl	 eax, 22
  001c3	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  001c6	c1 e9 0a	 shr	 ecx, 10
  001c9	0b c1		 or	 eax, ecx
  001cb	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  001ce	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  001d1	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  001d4	03 c8		 add	 ecx, eax
  001d6	8b c1		 mov	 eax, ecx
  001d8	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  001db	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  001de	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  001e1	23 c8		 and	 ecx, eax
  001e3	8b c1		 mov	 eax, ecx
  001e5	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  001e8	f7 d1		 not	 ecx
  001ea	23 4d 0c	 and	 ecx, DWORD PTR d$[rbp]
  001ed	0b c1		 or	 eax, ecx
  001ef	b9 04 00 00 00	 mov	 ecx, 4
  001f4	48 6b c9 04	 imul	 rcx, rcx, 4
  001f8	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  001fc	b9 af 0f 7c f5	 mov	 ecx, -176418897		; fffffffff57c0fafH
  00201	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  00204	48 03 ca	 add	 rcx, rdx
  00207	03 c1		 add	 eax, ecx
  00209	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  0020c	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0020f	c1 e0 07	 shl	 eax, 7
  00212	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00215	c1 e9 19	 shr	 ecx, 25
  00218	0b c1		 or	 eax, ecx
  0021a	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  0021d	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00220	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00223	03 c8		 add	 ecx, eax
  00225	8b c1		 mov	 eax, ecx
  00227	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  0022a	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  0022d	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00230	23 c8		 and	 ecx, eax
  00232	8b c1		 mov	 eax, ecx
  00234	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00237	f7 d1		 not	 ecx
  00239	23 4d 08	 and	 ecx, DWORD PTR c$[rbp]
  0023c	0b c1		 or	 eax, ecx
  0023e	b9 04 00 00 00	 mov	 ecx, 4
  00243	48 6b c9 05	 imul	 rcx, rcx, 5
  00247	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0024b	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0024e	8d 84 01 2a c6
	87 47		 lea	 eax, DWORD PTR [rcx+rax+1200080426]
  00255	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00258	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0025b	c1 e0 0c	 shl	 eax, 12
  0025e	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00261	c1 e9 14	 shr	 ecx, 20
  00264	0b c1		 or	 eax, ecx
  00266	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00269	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0026c	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0026f	03 c8		 add	 ecx, eax
  00271	8b c1		 mov	 eax, ecx
  00273	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00276	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00279	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0027c	23 c8		 and	 ecx, eax
  0027e	8b c1		 mov	 eax, ecx
  00280	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00283	f7 d1		 not	 ecx
  00285	23 4d 04	 and	 ecx, DWORD PTR b$[rbp]
  00288	0b c1		 or	 eax, ecx
  0028a	b9 04 00 00 00	 mov	 ecx, 4
  0028f	48 6b c9 06	 imul	 rcx, rcx, 6
  00293	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00297	b9 13 46 30 a8	 mov	 ecx, -1473231341	; ffffffffa8304613H
  0029c	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  0029f	48 03 ca	 add	 rcx, rdx
  002a2	03 c1		 add	 eax, ecx
  002a4	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  002a7	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  002aa	c1 e0 11	 shl	 eax, 17
  002ad	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  002b0	c1 e9 0f	 shr	 ecx, 15
  002b3	0b c1		 or	 eax, ecx
  002b5	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  002b8	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  002bb	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  002be	03 c8		 add	 ecx, eax
  002c0	8b c1		 mov	 eax, ecx
  002c2	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  002c5	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  002c8	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  002cb	23 c8		 and	 ecx, eax
  002cd	8b c1		 mov	 eax, ecx
  002cf	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  002d2	f7 d1		 not	 ecx
  002d4	23 4d 00	 and	 ecx, DWORD PTR a$[rbp]
  002d7	0b c1		 or	 eax, ecx
  002d9	b9 04 00 00 00	 mov	 ecx, 4
  002de	48 6b c9 07	 imul	 rcx, rcx, 7
  002e2	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  002e6	b9 01 95 46 fd	 mov	 ecx, -45705983		; fffffffffd469501H
  002eb	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  002ee	48 03 ca	 add	 rcx, rdx
  002f1	03 c1		 add	 eax, ecx
  002f3	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  002f6	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  002f9	c1 e0 16	 shl	 eax, 22
  002fc	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  002ff	c1 e9 0a	 shr	 ecx, 10
  00302	0b c1		 or	 eax, ecx
  00304	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00307	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  0030a	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0030d	03 c8		 add	 ecx, eax
  0030f	8b c1		 mov	 eax, ecx
  00311	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  00314	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00317	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0031a	23 c8		 and	 ecx, eax
  0031c	8b c1		 mov	 eax, ecx
  0031e	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00321	f7 d1		 not	 ecx
  00323	23 4d 0c	 and	 ecx, DWORD PTR d$[rbp]
  00326	0b c1		 or	 eax, ecx
  00328	b9 04 00 00 00	 mov	 ecx, 4
  0032d	48 6b c9 08	 imul	 rcx, rcx, 8
  00331	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00335	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00338	8d 84 01 d8 98
	80 69		 lea	 eax, DWORD PTR [rcx+rax+1770035416]
  0033f	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00342	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00345	c1 e0 07	 shl	 eax, 7
  00348	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0034b	c1 e9 19	 shr	 ecx, 25
  0034e	0b c1		 or	 eax, ecx
  00350	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00353	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00356	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00359	03 c8		 add	 ecx, eax
  0035b	8b c1		 mov	 eax, ecx
  0035d	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  00360	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00363	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00366	23 c8		 and	 ecx, eax
  00368	8b c1		 mov	 eax, ecx
  0036a	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0036d	f7 d1		 not	 ecx
  0036f	23 4d 08	 and	 ecx, DWORD PTR c$[rbp]
  00372	0b c1		 or	 eax, ecx
  00374	b9 04 00 00 00	 mov	 ecx, 4
  00379	48 6b c9 09	 imul	 rcx, rcx, 9
  0037d	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00381	b9 af f7 44 8b	 mov	 ecx, -1958414417	; ffffffff8b44f7afH
  00386	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  00389	48 03 ca	 add	 rcx, rdx
  0038c	03 c1		 add	 eax, ecx
  0038e	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00391	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00394	c1 e0 0c	 shl	 eax, 12
  00397	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0039a	c1 e9 14	 shr	 ecx, 20
  0039d	0b c1		 or	 eax, ecx
  0039f	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  003a2	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  003a5	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  003a8	03 c8		 add	 ecx, eax
  003aa	8b c1		 mov	 eax, ecx
  003ac	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  003af	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  003b2	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  003b5	23 c8		 and	 ecx, eax
  003b7	8b c1		 mov	 eax, ecx
  003b9	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  003bc	f7 d1		 not	 ecx
  003be	23 4d 04	 and	 ecx, DWORD PTR b$[rbp]
  003c1	0b c1		 or	 eax, ecx
  003c3	b9 04 00 00 00	 mov	 ecx, 4
  003c8	48 6b c9 0a	 imul	 rcx, rcx, 10
  003cc	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  003d0	b9 b1 5b ff ff	 mov	 ecx, -42063		; ffffffffffff5bb1H
  003d5	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  003d8	48 03 ca	 add	 rcx, rdx
  003db	03 c1		 add	 eax, ecx
  003dd	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  003e0	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  003e3	c1 e0 11	 shl	 eax, 17
  003e6	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  003e9	c1 e9 0f	 shr	 ecx, 15
  003ec	0b c1		 or	 eax, ecx
  003ee	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  003f1	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  003f4	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  003f7	03 c8		 add	 ecx, eax
  003f9	8b c1		 mov	 eax, ecx
  003fb	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  003fe	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00401	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00404	23 c8		 and	 ecx, eax
  00406	8b c1		 mov	 eax, ecx
  00408	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0040b	f7 d1		 not	 ecx
  0040d	23 4d 00	 and	 ecx, DWORD PTR a$[rbp]
  00410	0b c1		 or	 eax, ecx
  00412	b9 04 00 00 00	 mov	 ecx, 4
  00417	48 6b c9 0b	 imul	 rcx, rcx, 11
  0041b	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0041f	b9 be d7 5c 89	 mov	 ecx, -1990404162	; ffffffff895cd7beH
  00424	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  00427	48 03 ca	 add	 rcx, rdx
  0042a	03 c1		 add	 eax, ecx
  0042c	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  0042f	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00432	c1 e0 16	 shl	 eax, 22
  00435	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00438	c1 e9 0a	 shr	 ecx, 10
  0043b	0b c1		 or	 eax, ecx
  0043d	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00440	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00443	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00446	03 c8		 add	 ecx, eax
  00448	8b c1		 mov	 eax, ecx
  0044a	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  0044d	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00450	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00453	23 c8		 and	 ecx, eax
  00455	8b c1		 mov	 eax, ecx
  00457	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0045a	f7 d1		 not	 ecx
  0045c	23 4d 0c	 and	 ecx, DWORD PTR d$[rbp]
  0045f	0b c1		 or	 eax, ecx
  00461	b9 04 00 00 00	 mov	 ecx, 4
  00466	48 6b c9 0c	 imul	 rcx, rcx, 12
  0046a	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0046e	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00471	8d 84 01 22 11
	90 6b		 lea	 eax, DWORD PTR [rcx+rax+1804603682]
  00478	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  0047b	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0047e	c1 e0 07	 shl	 eax, 7
  00481	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00484	c1 e9 19	 shr	 ecx, 25
  00487	0b c1		 or	 eax, ecx
  00489	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  0048c	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  0048f	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00492	03 c8		 add	 ecx, eax
  00494	8b c1		 mov	 eax, ecx
  00496	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  00499	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  0049c	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0049f	23 c8		 and	 ecx, eax
  004a1	8b c1		 mov	 eax, ecx
  004a3	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  004a6	f7 d1		 not	 ecx
  004a8	23 4d 08	 and	 ecx, DWORD PTR c$[rbp]
  004ab	0b c1		 or	 eax, ecx
  004ad	b9 04 00 00 00	 mov	 ecx, 4
  004b2	48 6b c9 0d	 imul	 rcx, rcx, 13
  004b6	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  004ba	b9 93 71 98 fd	 mov	 ecx, -40341101		; fffffffffd987193H
  004bf	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  004c2	48 03 ca	 add	 rcx, rdx
  004c5	03 c1		 add	 eax, ecx
  004c7	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  004ca	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  004cd	c1 e0 0c	 shl	 eax, 12
  004d0	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  004d3	c1 e9 14	 shr	 ecx, 20
  004d6	0b c1		 or	 eax, ecx
  004d8	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  004db	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  004de	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  004e1	03 c8		 add	 ecx, eax
  004e3	8b c1		 mov	 eax, ecx
  004e5	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  004e8	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  004eb	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  004ee	23 c8		 and	 ecx, eax
  004f0	8b c1		 mov	 eax, ecx
  004f2	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  004f5	f7 d1		 not	 ecx
  004f7	23 4d 04	 and	 ecx, DWORD PTR b$[rbp]
  004fa	0b c1		 or	 eax, ecx
  004fc	b9 04 00 00 00	 mov	 ecx, 4
  00501	48 6b c9 0e	 imul	 rcx, rcx, 14
  00505	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00509	b9 8e 43 79 a6	 mov	 ecx, -1502002290	; ffffffffa679438eH
  0050e	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  00511	48 03 ca	 add	 rcx, rdx
  00514	03 c1		 add	 eax, ecx
  00516	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00519	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  0051c	c1 e0 11	 shl	 eax, 17
  0051f	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00522	c1 e9 0f	 shr	 ecx, 15
  00525	0b c1		 or	 eax, ecx
  00527	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  0052a	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0052d	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00530	03 c8		 add	 ecx, eax
  00532	8b c1		 mov	 eax, ecx
  00534	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  00537	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0053a	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0053d	23 c8		 and	 ecx, eax
  0053f	8b c1		 mov	 eax, ecx
  00541	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00544	f7 d1		 not	 ecx
  00546	23 4d 00	 and	 ecx, DWORD PTR a$[rbp]
  00549	0b c1		 or	 eax, ecx
  0054b	b9 04 00 00 00	 mov	 ecx, 4
  00550	48 6b c9 0f	 imul	 rcx, rcx, 15
  00554	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00558	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0055b	8d 84 01 21 08
	b4 49		 lea	 eax, DWORD PTR [rcx+rax+1236535329]
  00562	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00565	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00568	c1 e0 16	 shl	 eax, 22
  0056b	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0056e	c1 e9 0a	 shr	 ecx, 10
  00571	0b c1		 or	 eax, ecx
  00573	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00576	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00579	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0057c	03 c8		 add	 ecx, eax
  0057e	8b c1		 mov	 eax, ecx
  00580	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  00583	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00586	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00589	23 c8		 and	 ecx, eax
  0058b	8b c1		 mov	 eax, ecx
  0058d	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00590	f7 d1		 not	 ecx
  00592	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  00595	23 d1		 and	 edx, ecx
  00597	8b ca		 mov	 ecx, edx
  00599	0b c1		 or	 eax, ecx
  0059b	b9 04 00 00 00	 mov	 ecx, 4
  005a0	48 6b c9 01	 imul	 rcx, rcx, 1
  005a4	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  005a8	b9 62 25 1e f6	 mov	 ecx, -165796510		; fffffffff61e2562H
  005ad	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  005b0	48 03 ca	 add	 rcx, rdx
  005b3	03 c1		 add	 eax, ecx
  005b5	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  005b8	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  005bb	c1 e0 05	 shl	 eax, 5
  005be	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  005c1	c1 e9 1b	 shr	 ecx, 27
  005c4	0b c1		 or	 eax, ecx
  005c6	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  005c9	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  005cc	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  005cf	03 c8		 add	 ecx, eax
  005d1	8b c1		 mov	 eax, ecx
  005d3	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  005d6	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  005d9	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  005dc	23 c8		 and	 ecx, eax
  005de	8b c1		 mov	 eax, ecx
  005e0	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  005e3	f7 d1		 not	 ecx
  005e5	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  005e8	23 d1		 and	 edx, ecx
  005ea	8b ca		 mov	 ecx, edx
  005ec	0b c1		 or	 eax, ecx
  005ee	b9 04 00 00 00	 mov	 ecx, 4
  005f3	48 6b c9 06	 imul	 rcx, rcx, 6
  005f7	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  005fb	b9 40 b3 40 c0	 mov	 ecx, -1069501632	; ffffffffc040b340H
  00600	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  00603	48 03 ca	 add	 rcx, rdx
  00606	03 c1		 add	 eax, ecx
  00608	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  0060b	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0060e	c1 e0 09	 shl	 eax, 9
  00611	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00614	c1 e9 17	 shr	 ecx, 23
  00617	0b c1		 or	 eax, ecx
  00619	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  0061c	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0061f	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00622	03 c8		 add	 ecx, eax
  00624	8b c1		 mov	 eax, ecx
  00626	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00629	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  0062c	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0062f	23 c8		 and	 ecx, eax
  00631	8b c1		 mov	 eax, ecx
  00633	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00636	f7 d1		 not	 ecx
  00638	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  0063b	23 d1		 and	 edx, ecx
  0063d	8b ca		 mov	 ecx, edx
  0063f	0b c1		 or	 eax, ecx
  00641	b9 04 00 00 00	 mov	 ecx, 4
  00646	48 6b c9 0b	 imul	 rcx, rcx, 11
  0064a	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0064e	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00651	8d 84 01 51 5a
	5e 26		 lea	 eax, DWORD PTR [rcx+rax+643717713]
  00658	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  0065b	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  0065e	c1 e0 0e	 shl	 eax, 14
  00661	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00664	c1 e9 12	 shr	 ecx, 18
  00667	0b c1		 or	 eax, ecx
  00669	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  0066c	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0066f	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00672	03 c8		 add	 ecx, eax
  00674	8b c1		 mov	 eax, ecx
  00676	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  00679	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0067c	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0067f	23 c8		 and	 ecx, eax
  00681	8b c1		 mov	 eax, ecx
  00683	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00686	f7 d1		 not	 ecx
  00688	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  0068b	23 d1		 and	 edx, ecx
  0068d	8b ca		 mov	 ecx, edx
  0068f	0b c1		 or	 eax, ecx
  00691	b9 04 00 00 00	 mov	 ecx, 4
  00696	48 6b c9 00	 imul	 rcx, rcx, 0
  0069a	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0069e	b9 aa c7 b6 e9	 mov	 ecx, -373897302		; ffffffffe9b6c7aaH
  006a3	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  006a6	48 03 ca	 add	 rcx, rdx
  006a9	03 c1		 add	 eax, ecx
  006ab	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  006ae	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  006b1	c1 e0 14	 shl	 eax, 20
  006b4	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  006b7	c1 e9 0c	 shr	 ecx, 12
  006ba	0b c1		 or	 eax, ecx
  006bc	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  006bf	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  006c2	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  006c5	03 c8		 add	 ecx, eax
  006c7	8b c1		 mov	 eax, ecx
  006c9	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  006cc	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  006cf	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  006d2	23 c8		 and	 ecx, eax
  006d4	8b c1		 mov	 eax, ecx
  006d6	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  006d9	f7 d1		 not	 ecx
  006db	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  006de	23 d1		 and	 edx, ecx
  006e0	8b ca		 mov	 ecx, edx
  006e2	0b c1		 or	 eax, ecx
  006e4	b9 04 00 00 00	 mov	 ecx, 4
  006e9	48 6b c9 05	 imul	 rcx, rcx, 5
  006ed	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  006f1	b9 5d 10 2f d6	 mov	 ecx, -701558691		; ffffffffd62f105dH
  006f6	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  006f9	48 03 ca	 add	 rcx, rdx
  006fc	03 c1		 add	 eax, ecx
  006fe	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00701	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00704	c1 e0 05	 shl	 eax, 5
  00707	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0070a	c1 e9 1b	 shr	 ecx, 27
  0070d	0b c1		 or	 eax, ecx
  0070f	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00712	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00715	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00718	03 c8		 add	 ecx, eax
  0071a	8b c1		 mov	 eax, ecx
  0071c	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  0071f	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00722	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00725	23 c8		 and	 ecx, eax
  00727	8b c1		 mov	 eax, ecx
  00729	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0072c	f7 d1		 not	 ecx
  0072e	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  00731	23 d1		 and	 edx, ecx
  00733	8b ca		 mov	 ecx, edx
  00735	0b c1		 or	 eax, ecx
  00737	b9 04 00 00 00	 mov	 ecx, 4
  0073c	48 6b c9 0a	 imul	 rcx, rcx, 10
  00740	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00744	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00747	8d 84 01 53 14
	44 02		 lea	 eax, DWORD PTR [rcx+rax+38016083]
  0074e	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00751	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00754	c1 e0 09	 shl	 eax, 9
  00757	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0075a	c1 e9 17	 shr	 ecx, 23
  0075d	0b c1		 or	 eax, ecx
  0075f	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00762	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00765	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00768	03 c8		 add	 ecx, eax
  0076a	8b c1		 mov	 eax, ecx
  0076c	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  0076f	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00772	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00775	23 c8		 and	 ecx, eax
  00777	8b c1		 mov	 eax, ecx
  00779	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0077c	f7 d1		 not	 ecx
  0077e	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  00781	23 d1		 and	 edx, ecx
  00783	8b ca		 mov	 ecx, edx
  00785	0b c1		 or	 eax, ecx
  00787	b9 04 00 00 00	 mov	 ecx, 4
  0078c	48 6b c9 0f	 imul	 rcx, rcx, 15
  00790	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00794	b9 81 e6 a1 d8	 mov	 ecx, -660478335		; ffffffffd8a1e681H
  00799	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  0079c	48 03 ca	 add	 rcx, rdx
  0079f	03 c1		 add	 eax, ecx
  007a1	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  007a4	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  007a7	c1 e0 0e	 shl	 eax, 14
  007aa	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  007ad	c1 e9 12	 shr	 ecx, 18
  007b0	0b c1		 or	 eax, ecx
  007b2	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  007b5	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  007b8	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  007bb	03 c8		 add	 ecx, eax
  007bd	8b c1		 mov	 eax, ecx
  007bf	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  007c2	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  007c5	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  007c8	23 c8		 and	 ecx, eax
  007ca	8b c1		 mov	 eax, ecx
  007cc	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  007cf	f7 d1		 not	 ecx
  007d1	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  007d4	23 d1		 and	 edx, ecx
  007d6	8b ca		 mov	 ecx, edx
  007d8	0b c1		 or	 eax, ecx
  007da	b9 04 00 00 00	 mov	 ecx, 4
  007df	48 6b c9 04	 imul	 rcx, rcx, 4
  007e3	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  007e7	b9 c8 fb d3 e7	 mov	 ecx, -405537848		; ffffffffe7d3fbc8H
  007ec	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  007ef	48 03 ca	 add	 rcx, rdx
  007f2	03 c1		 add	 eax, ecx
  007f4	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  007f7	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  007fa	c1 e0 14	 shl	 eax, 20
  007fd	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00800	c1 e9 0c	 shr	 ecx, 12
  00803	0b c1		 or	 eax, ecx
  00805	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00808	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  0080b	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0080e	03 c8		 add	 ecx, eax
  00810	8b c1		 mov	 eax, ecx
  00812	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  00815	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00818	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0081b	23 c8		 and	 ecx, eax
  0081d	8b c1		 mov	 eax, ecx
  0081f	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00822	f7 d1		 not	 ecx
  00824	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  00827	23 d1		 and	 edx, ecx
  00829	8b ca		 mov	 ecx, edx
  0082b	0b c1		 or	 eax, ecx
  0082d	b9 04 00 00 00	 mov	 ecx, 4
  00832	48 6b c9 09	 imul	 rcx, rcx, 9
  00836	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0083a	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0083d	8d 84 01 e6 cd
	e1 21		 lea	 eax, DWORD PTR [rcx+rax+568446438]
  00844	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00847	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0084a	c1 e0 05	 shl	 eax, 5
  0084d	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00850	c1 e9 1b	 shr	 ecx, 27
  00853	0b c1		 or	 eax, ecx
  00855	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00858	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  0085b	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0085e	03 c8		 add	 ecx, eax
  00860	8b c1		 mov	 eax, ecx
  00862	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  00865	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00868	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0086b	23 c8		 and	 ecx, eax
  0086d	8b c1		 mov	 eax, ecx
  0086f	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00872	f7 d1		 not	 ecx
  00874	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  00877	23 d1		 and	 edx, ecx
  00879	8b ca		 mov	 ecx, edx
  0087b	0b c1		 or	 eax, ecx
  0087d	b9 04 00 00 00	 mov	 ecx, 4
  00882	48 6b c9 0e	 imul	 rcx, rcx, 14
  00886	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0088a	b9 d6 07 37 c3	 mov	 ecx, -1019803690	; ffffffffc33707d6H
  0088f	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  00892	48 03 ca	 add	 rcx, rdx
  00895	03 c1		 add	 eax, ecx
  00897	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  0089a	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0089d	c1 e0 09	 shl	 eax, 9
  008a0	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  008a3	c1 e9 17	 shr	 ecx, 23
  008a6	0b c1		 or	 eax, ecx
  008a8	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  008ab	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  008ae	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  008b1	03 c8		 add	 ecx, eax
  008b3	8b c1		 mov	 eax, ecx
  008b5	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  008b8	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  008bb	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  008be	23 c8		 and	 ecx, eax
  008c0	8b c1		 mov	 eax, ecx
  008c2	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  008c5	f7 d1		 not	 ecx
  008c7	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  008ca	23 d1		 and	 edx, ecx
  008cc	8b ca		 mov	 ecx, edx
  008ce	0b c1		 or	 eax, ecx
  008d0	b9 04 00 00 00	 mov	 ecx, 4
  008d5	48 6b c9 03	 imul	 rcx, rcx, 3
  008d9	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  008dd	b9 87 0d d5 f4	 mov	 ecx, -187363961		; fffffffff4d50d87H
  008e2	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  008e5	48 03 ca	 add	 rcx, rdx
  008e8	03 c1		 add	 eax, ecx
  008ea	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  008ed	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  008f0	c1 e0 0e	 shl	 eax, 14
  008f3	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  008f6	c1 e9 12	 shr	 ecx, 18
  008f9	0b c1		 or	 eax, ecx
  008fb	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  008fe	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00901	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00904	03 c8		 add	 ecx, eax
  00906	8b c1		 mov	 eax, ecx
  00908	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  0090b	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0090e	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00911	23 c8		 and	 ecx, eax
  00913	8b c1		 mov	 eax, ecx
  00915	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00918	f7 d1		 not	 ecx
  0091a	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  0091d	23 d1		 and	 edx, ecx
  0091f	8b ca		 mov	 ecx, edx
  00921	0b c1		 or	 eax, ecx
  00923	b9 04 00 00 00	 mov	 ecx, 4
  00928	48 6b c9 08	 imul	 rcx, rcx, 8
  0092c	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00930	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00933	8d 84 01 ed 14
	5a 45		 lea	 eax, DWORD PTR [rcx+rax+1163531501]
  0093a	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  0093d	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00940	c1 e0 14	 shl	 eax, 20
  00943	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00946	c1 e9 0c	 shr	 ecx, 12
  00949	0b c1		 or	 eax, ecx
  0094b	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  0094e	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00951	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00954	03 c8		 add	 ecx, eax
  00956	8b c1		 mov	 eax, ecx
  00958	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  0095b	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0095e	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00961	23 c8		 and	 ecx, eax
  00963	8b c1		 mov	 eax, ecx
  00965	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00968	f7 d1		 not	 ecx
  0096a	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  0096d	23 d1		 and	 edx, ecx
  0096f	8b ca		 mov	 ecx, edx
  00971	0b c1		 or	 eax, ecx
  00973	b9 04 00 00 00	 mov	 ecx, 4
  00978	48 6b c9 0d	 imul	 rcx, rcx, 13
  0097c	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00980	b9 05 e9 e3 a9	 mov	 ecx, -1444681467	; ffffffffa9e3e905H
  00985	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  00988	48 03 ca	 add	 rcx, rdx
  0098b	03 c1		 add	 eax, ecx
  0098d	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00990	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00993	c1 e0 05	 shl	 eax, 5
  00996	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00999	c1 e9 1b	 shr	 ecx, 27
  0099c	0b c1		 or	 eax, ecx
  0099e	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  009a1	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  009a4	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  009a7	03 c8		 add	 ecx, eax
  009a9	8b c1		 mov	 eax, ecx
  009ab	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  009ae	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  009b1	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  009b4	23 c8		 and	 ecx, eax
  009b6	8b c1		 mov	 eax, ecx
  009b8	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  009bb	f7 d1		 not	 ecx
  009bd	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  009c0	23 d1		 and	 edx, ecx
  009c2	8b ca		 mov	 ecx, edx
  009c4	0b c1		 or	 eax, ecx
  009c6	b9 04 00 00 00	 mov	 ecx, 4
  009cb	48 6b c9 02	 imul	 rcx, rcx, 2
  009cf	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  009d3	b9 f8 a3 ef fc	 mov	 ecx, -51403784		; fffffffffcefa3f8H
  009d8	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  009db	48 03 ca	 add	 rcx, rdx
  009de	03 c1		 add	 eax, ecx
  009e0	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  009e3	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  009e6	c1 e0 09	 shl	 eax, 9
  009e9	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  009ec	c1 e9 17	 shr	 ecx, 23
  009ef	0b c1		 or	 eax, ecx
  009f1	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  009f4	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  009f7	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  009fa	03 c8		 add	 ecx, eax
  009fc	8b c1		 mov	 eax, ecx
  009fe	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00a01	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00a04	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00a07	23 c8		 and	 ecx, eax
  00a09	8b c1		 mov	 eax, ecx
  00a0b	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00a0e	f7 d1		 not	 ecx
  00a10	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  00a13	23 d1		 and	 edx, ecx
  00a15	8b ca		 mov	 ecx, edx
  00a17	0b c1		 or	 eax, ecx
  00a19	b9 04 00 00 00	 mov	 ecx, 4
  00a1e	48 6b c9 07	 imul	 rcx, rcx, 7
  00a22	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00a26	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00a29	8d 84 01 d9 02
	6f 67		 lea	 eax, DWORD PTR [rcx+rax+1735328473]
  00a30	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00a33	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00a36	c1 e0 0e	 shl	 eax, 14
  00a39	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00a3c	c1 e9 12	 shr	 ecx, 18
  00a3f	0b c1		 or	 eax, ecx
  00a41	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00a44	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00a47	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00a4a	03 c8		 add	 ecx, eax
  00a4c	8b c1		 mov	 eax, ecx
  00a4e	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  00a51	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00a54	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00a57	23 c8		 and	 ecx, eax
  00a59	8b c1		 mov	 eax, ecx
  00a5b	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00a5e	f7 d1		 not	 ecx
  00a60	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  00a63	23 d1		 and	 edx, ecx
  00a65	8b ca		 mov	 ecx, edx
  00a67	0b c1		 or	 eax, ecx
  00a69	b9 04 00 00 00	 mov	 ecx, 4
  00a6e	48 6b c9 0c	 imul	 rcx, rcx, 12
  00a72	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00a76	b9 8a 4c 2a 8d	 mov	 ecx, -1926607734	; ffffffff8d2a4c8aH
  00a7b	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  00a7e	48 03 ca	 add	 rcx, rdx
  00a81	03 c1		 add	 eax, ecx
  00a83	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00a86	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00a89	c1 e0 14	 shl	 eax, 20
  00a8c	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00a8f	c1 e9 0c	 shr	 ecx, 12
  00a92	0b c1		 or	 eax, ecx
  00a94	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00a97	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00a9a	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00a9d	03 c8		 add	 ecx, eax
  00a9f	8b c1		 mov	 eax, ecx
  00aa1	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  00aa4	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00aa7	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00aaa	33 c8		 xor	 ecx, eax
  00aac	8b c1		 mov	 eax, ecx
  00aae	33 45 0c	 xor	 eax, DWORD PTR d$[rbp]
  00ab1	b9 04 00 00 00	 mov	 ecx, 4
  00ab6	48 6b c9 05	 imul	 rcx, rcx, 5
  00aba	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00abe	b9 42 39 fa ff	 mov	 ecx, -378558		; fffffffffffa3942H
  00ac3	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  00ac6	48 03 ca	 add	 rcx, rdx
  00ac9	03 c1		 add	 eax, ecx
  00acb	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00ace	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00ad1	c1 e0 04	 shl	 eax, 4
  00ad4	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00ad7	c1 e9 1c	 shr	 ecx, 28
  00ada	0b c1		 or	 eax, ecx
  00adc	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00adf	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00ae2	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00ae5	03 c8		 add	 ecx, eax
  00ae7	8b c1		 mov	 eax, ecx
  00ae9	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  00aec	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00aef	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00af2	33 c8		 xor	 ecx, eax
  00af4	8b c1		 mov	 eax, ecx
  00af6	33 45 08	 xor	 eax, DWORD PTR c$[rbp]
  00af9	b9 04 00 00 00	 mov	 ecx, 4
  00afe	48 6b c9 08	 imul	 rcx, rcx, 8
  00b02	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00b06	b9 81 f6 71 87	 mov	 ecx, -2022574463	; ffffffff8771f681H
  00b0b	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  00b0e	48 03 ca	 add	 rcx, rdx
  00b11	03 c1		 add	 eax, ecx
  00b13	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00b16	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00b19	c1 e0 0b	 shl	 eax, 11
  00b1c	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00b1f	c1 e9 15	 shr	 ecx, 21
  00b22	0b c1		 or	 eax, ecx
  00b24	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00b27	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00b2a	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00b2d	03 c8		 add	 ecx, eax
  00b2f	8b c1		 mov	 eax, ecx
  00b31	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00b34	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00b37	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00b3a	33 c8		 xor	 ecx, eax
  00b3c	8b c1		 mov	 eax, ecx
  00b3e	33 45 04	 xor	 eax, DWORD PTR b$[rbp]
  00b41	b9 04 00 00 00	 mov	 ecx, 4
  00b46	48 6b c9 0b	 imul	 rcx, rcx, 11
  00b4a	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00b4e	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00b51	8d 84 01 22 61
	9d 6d		 lea	 eax, DWORD PTR [rcx+rax+1839030562]
  00b58	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00b5b	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00b5e	c1 e0 10	 shl	 eax, 16
  00b61	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00b64	c1 e9 10	 shr	 ecx, 16
  00b67	0b c1		 or	 eax, ecx
  00b69	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00b6c	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00b6f	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00b72	03 c8		 add	 ecx, eax
  00b74	8b c1		 mov	 eax, ecx
  00b76	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  00b79	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00b7c	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00b7f	33 c8		 xor	 ecx, eax
  00b81	8b c1		 mov	 eax, ecx
  00b83	33 45 00	 xor	 eax, DWORD PTR a$[rbp]
  00b86	b9 04 00 00 00	 mov	 ecx, 4
  00b8b	48 6b c9 0e	 imul	 rcx, rcx, 14
  00b8f	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00b93	b9 0c 38 e5 fd	 mov	 ecx, -35309556		; fffffffffde5380cH
  00b98	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  00b9b	48 03 ca	 add	 rcx, rdx
  00b9e	03 c1		 add	 eax, ecx
  00ba0	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00ba3	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00ba6	c1 e0 17	 shl	 eax, 23
  00ba9	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00bac	c1 e9 09	 shr	 ecx, 9
  00baf	0b c1		 or	 eax, ecx
  00bb1	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00bb4	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00bb7	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00bba	03 c8		 add	 ecx, eax
  00bbc	8b c1		 mov	 eax, ecx
  00bbe	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  00bc1	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00bc4	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00bc7	33 c8		 xor	 ecx, eax
  00bc9	8b c1		 mov	 eax, ecx
  00bcb	33 45 0c	 xor	 eax, DWORD PTR d$[rbp]
  00bce	b9 04 00 00 00	 mov	 ecx, 4
  00bd3	48 6b c9 01	 imul	 rcx, rcx, 1
  00bd7	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00bdb	b9 44 ea be a4	 mov	 ecx, -1530992060	; ffffffffa4beea44H
  00be0	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  00be3	48 03 ca	 add	 rcx, rdx
  00be6	03 c1		 add	 eax, ecx
  00be8	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00beb	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00bee	c1 e0 04	 shl	 eax, 4
  00bf1	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00bf4	c1 e9 1c	 shr	 ecx, 28
  00bf7	0b c1		 or	 eax, ecx
  00bf9	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00bfc	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00bff	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00c02	03 c8		 add	 ecx, eax
  00c04	8b c1		 mov	 eax, ecx
  00c06	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  00c09	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00c0c	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00c0f	33 c8		 xor	 ecx, eax
  00c11	8b c1		 mov	 eax, ecx
  00c13	33 45 08	 xor	 eax, DWORD PTR c$[rbp]
  00c16	b9 04 00 00 00	 mov	 ecx, 4
  00c1b	48 6b c9 04	 imul	 rcx, rcx, 4
  00c1f	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00c23	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00c26	8d 84 01 a9 cf
	de 4b		 lea	 eax, DWORD PTR [rcx+rax+1272893353]
  00c2d	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00c30	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00c33	c1 e0 0b	 shl	 eax, 11
  00c36	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00c39	c1 e9 15	 shr	 ecx, 21
  00c3c	0b c1		 or	 eax, ecx
  00c3e	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00c41	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00c44	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00c47	03 c8		 add	 ecx, eax
  00c49	8b c1		 mov	 eax, ecx
  00c4b	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00c4e	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00c51	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00c54	33 c8		 xor	 ecx, eax
  00c56	8b c1		 mov	 eax, ecx
  00c58	33 45 04	 xor	 eax, DWORD PTR b$[rbp]
  00c5b	b9 04 00 00 00	 mov	 ecx, 4
  00c60	48 6b c9 07	 imul	 rcx, rcx, 7
  00c64	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00c68	b9 60 4b bb f6	 mov	 ecx, -155497632		; fffffffff6bb4b60H
  00c6d	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  00c70	48 03 ca	 add	 rcx, rdx
  00c73	03 c1		 add	 eax, ecx
  00c75	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00c78	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00c7b	c1 e0 10	 shl	 eax, 16
  00c7e	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00c81	c1 e9 10	 shr	 ecx, 16
  00c84	0b c1		 or	 eax, ecx
  00c86	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00c89	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00c8c	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00c8f	03 c8		 add	 ecx, eax
  00c91	8b c1		 mov	 eax, ecx
  00c93	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  00c96	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00c99	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00c9c	33 c8		 xor	 ecx, eax
  00c9e	8b c1		 mov	 eax, ecx
  00ca0	33 45 00	 xor	 eax, DWORD PTR a$[rbp]
  00ca3	b9 04 00 00 00	 mov	 ecx, 4
  00ca8	48 6b c9 0a	 imul	 rcx, rcx, 10
  00cac	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00cb0	b9 70 bc bf be	 mov	 ecx, -1094730640	; ffffffffbebfbc70H
  00cb5	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  00cb8	48 03 ca	 add	 rcx, rdx
  00cbb	03 c1		 add	 eax, ecx
  00cbd	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00cc0	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00cc3	c1 e0 17	 shl	 eax, 23
  00cc6	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00cc9	c1 e9 09	 shr	 ecx, 9
  00ccc	0b c1		 or	 eax, ecx
  00cce	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00cd1	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00cd4	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00cd7	03 c8		 add	 ecx, eax
  00cd9	8b c1		 mov	 eax, ecx
  00cdb	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  00cde	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00ce1	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00ce4	33 c8		 xor	 ecx, eax
  00ce6	8b c1		 mov	 eax, ecx
  00ce8	33 45 0c	 xor	 eax, DWORD PTR d$[rbp]
  00ceb	b9 04 00 00 00	 mov	 ecx, 4
  00cf0	48 6b c9 0d	 imul	 rcx, rcx, 13
  00cf4	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00cf8	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00cfb	8d 84 01 c6 7e
	9b 28		 lea	 eax, DWORD PTR [rcx+rax+681279174]
  00d02	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00d05	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00d08	c1 e0 04	 shl	 eax, 4
  00d0b	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00d0e	c1 e9 1c	 shr	 ecx, 28
  00d11	0b c1		 or	 eax, ecx
  00d13	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00d16	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00d19	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00d1c	03 c8		 add	 ecx, eax
  00d1e	8b c1		 mov	 eax, ecx
  00d20	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  00d23	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00d26	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00d29	33 c8		 xor	 ecx, eax
  00d2b	8b c1		 mov	 eax, ecx
  00d2d	33 45 08	 xor	 eax, DWORD PTR c$[rbp]
  00d30	b9 04 00 00 00	 mov	 ecx, 4
  00d35	48 6b c9 00	 imul	 rcx, rcx, 0
  00d39	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00d3d	b9 fa 27 a1 ea	 mov	 ecx, -358537222		; ffffffffeaa127faH
  00d42	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  00d45	48 03 ca	 add	 rcx, rdx
  00d48	03 c1		 add	 eax, ecx
  00d4a	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00d4d	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00d50	c1 e0 0b	 shl	 eax, 11
  00d53	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00d56	c1 e9 15	 shr	 ecx, 21
  00d59	0b c1		 or	 eax, ecx
  00d5b	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00d5e	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00d61	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00d64	03 c8		 add	 ecx, eax
  00d66	8b c1		 mov	 eax, ecx
  00d68	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00d6b	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00d6e	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00d71	33 c8		 xor	 ecx, eax
  00d73	8b c1		 mov	 eax, ecx
  00d75	33 45 04	 xor	 eax, DWORD PTR b$[rbp]
  00d78	b9 04 00 00 00	 mov	 ecx, 4
  00d7d	48 6b c9 03	 imul	 rcx, rcx, 3
  00d81	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00d85	b9 85 30 ef d4	 mov	 ecx, -722521979		; ffffffffd4ef3085H
  00d8a	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  00d8d	48 03 ca	 add	 rcx, rdx
  00d90	03 c1		 add	 eax, ecx
  00d92	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00d95	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00d98	c1 e0 10	 shl	 eax, 16
  00d9b	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00d9e	c1 e9 10	 shr	 ecx, 16
  00da1	0b c1		 or	 eax, ecx
  00da3	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00da6	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00da9	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00dac	03 c8		 add	 ecx, eax
  00dae	8b c1		 mov	 eax, ecx
  00db0	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  00db3	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00db6	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00db9	33 c8		 xor	 ecx, eax
  00dbb	8b c1		 mov	 eax, ecx
  00dbd	33 45 00	 xor	 eax, DWORD PTR a$[rbp]
  00dc0	b9 04 00 00 00	 mov	 ecx, 4
  00dc5	48 6b c9 06	 imul	 rcx, rcx, 6
  00dc9	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00dcd	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00dd0	8d 84 01 05 1d
	88 04		 lea	 eax, DWORD PTR [rcx+rax+76029189]
  00dd7	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00dda	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00ddd	c1 e0 17	 shl	 eax, 23
  00de0	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00de3	c1 e9 09	 shr	 ecx, 9
  00de6	0b c1		 or	 eax, ecx
  00de8	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00deb	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00dee	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00df1	03 c8		 add	 ecx, eax
  00df3	8b c1		 mov	 eax, ecx
  00df5	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  00df8	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00dfb	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00dfe	33 c8		 xor	 ecx, eax
  00e00	8b c1		 mov	 eax, ecx
  00e02	33 45 0c	 xor	 eax, DWORD PTR d$[rbp]
  00e05	b9 04 00 00 00	 mov	 ecx, 4
  00e0a	48 6b c9 09	 imul	 rcx, rcx, 9
  00e0e	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00e12	b9 39 d0 d4 d9	 mov	 ecx, -640364487		; ffffffffd9d4d039H
  00e17	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  00e1a	48 03 ca	 add	 rcx, rdx
  00e1d	03 c1		 add	 eax, ecx
  00e1f	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00e22	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00e25	c1 e0 04	 shl	 eax, 4
  00e28	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00e2b	c1 e9 1c	 shr	 ecx, 28
  00e2e	0b c1		 or	 eax, ecx
  00e30	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00e33	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00e36	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00e39	03 c8		 add	 ecx, eax
  00e3b	8b c1		 mov	 eax, ecx
  00e3d	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  00e40	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00e43	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00e46	33 c8		 xor	 ecx, eax
  00e48	8b c1		 mov	 eax, ecx
  00e4a	33 45 08	 xor	 eax, DWORD PTR c$[rbp]
  00e4d	b9 04 00 00 00	 mov	 ecx, 4
  00e52	48 6b c9 0c	 imul	 rcx, rcx, 12
  00e56	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00e5a	b9 e5 99 db e6	 mov	 ecx, -421815835		; ffffffffe6db99e5H
  00e5f	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  00e62	48 03 ca	 add	 rcx, rdx
  00e65	03 c1		 add	 eax, ecx
  00e67	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00e6a	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00e6d	c1 e0 0b	 shl	 eax, 11
  00e70	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00e73	c1 e9 15	 shr	 ecx, 21
  00e76	0b c1		 or	 eax, ecx
  00e78	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00e7b	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00e7e	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00e81	03 c8		 add	 ecx, eax
  00e83	8b c1		 mov	 eax, ecx
  00e85	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00e88	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00e8b	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00e8e	33 c8		 xor	 ecx, eax
  00e90	8b c1		 mov	 eax, ecx
  00e92	33 45 04	 xor	 eax, DWORD PTR b$[rbp]
  00e95	b9 04 00 00 00	 mov	 ecx, 4
  00e9a	48 6b c9 0f	 imul	 rcx, rcx, 15
  00e9e	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00ea2	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00ea5	8d 84 01 f8 7c
	a2 1f		 lea	 eax, DWORD PTR [rcx+rax+530742520]
  00eac	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00eaf	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00eb2	c1 e0 10	 shl	 eax, 16
  00eb5	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00eb8	c1 e9 10	 shr	 ecx, 16
  00ebb	0b c1		 or	 eax, ecx
  00ebd	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00ec0	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00ec3	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00ec6	03 c8		 add	 ecx, eax
  00ec8	8b c1		 mov	 eax, ecx
  00eca	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  00ecd	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00ed0	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00ed3	33 c8		 xor	 ecx, eax
  00ed5	8b c1		 mov	 eax, ecx
  00ed7	33 45 00	 xor	 eax, DWORD PTR a$[rbp]
  00eda	b9 04 00 00 00	 mov	 ecx, 4
  00edf	48 6b c9 02	 imul	 rcx, rcx, 2
  00ee3	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00ee7	b9 65 56 ac c4	 mov	 ecx, -995338651		; ffffffffc4ac5665H
  00eec	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  00eef	48 03 ca	 add	 rcx, rdx
  00ef2	03 c1		 add	 eax, ecx
  00ef4	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00ef7	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00efa	c1 e0 17	 shl	 eax, 23
  00efd	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00f00	c1 e9 09	 shr	 ecx, 9
  00f03	0b c1		 or	 eax, ecx
  00f05	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  00f08	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00f0b	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00f0e	03 c8		 add	 ecx, eax
  00f10	8b c1		 mov	 eax, ecx
  00f12	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  00f15	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00f18	f7 d0		 not	 eax
  00f1a	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00f1d	0b c8		 or	 ecx, eax
  00f1f	8b c1		 mov	 eax, ecx
  00f21	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00f24	33 c8		 xor	 ecx, eax
  00f26	8b c1		 mov	 eax, ecx
  00f28	b9 04 00 00 00	 mov	 ecx, 4
  00f2d	48 6b c9 00	 imul	 rcx, rcx, 0
  00f31	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00f35	b9 44 22 29 f4	 mov	 ecx, -198630844		; fffffffff4292244H
  00f3a	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  00f3d	48 03 ca	 add	 rcx, rdx
  00f40	03 c1		 add	 eax, ecx
  00f42	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00f45	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00f48	c1 e0 06	 shl	 eax, 6
  00f4b	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00f4e	c1 e9 1a	 shr	 ecx, 26
  00f51	0b c1		 or	 eax, ecx
  00f53	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  00f56	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00f59	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00f5c	03 c8		 add	 ecx, eax
  00f5e	8b c1		 mov	 eax, ecx
  00f60	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  00f63	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00f66	f7 d0		 not	 eax
  00f68	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00f6b	0b c8		 or	 ecx, eax
  00f6d	8b c1		 mov	 eax, ecx
  00f6f	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  00f72	33 c8		 xor	 ecx, eax
  00f74	8b c1		 mov	 eax, ecx
  00f76	b9 04 00 00 00	 mov	 ecx, 4
  00f7b	48 6b c9 07	 imul	 rcx, rcx, 7
  00f7f	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00f83	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00f86	8d 84 01 97 ff
	2a 43		 lea	 eax, DWORD PTR [rcx+rax+1126891415]
  00f8d	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00f90	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00f93	c1 e0 0a	 shl	 eax, 10
  00f96	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00f99	c1 e9 16	 shr	 ecx, 22
  00f9c	0b c1		 or	 eax, ecx
  00f9e	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  00fa1	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00fa4	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00fa7	03 c8		 add	 ecx, eax
  00fa9	8b c1		 mov	 eax, ecx
  00fab	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  00fae	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  00fb1	f7 d0		 not	 eax
  00fb3	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  00fb6	0b c8		 or	 ecx, eax
  00fb8	8b c1		 mov	 eax, ecx
  00fba	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  00fbd	33 c8		 xor	 ecx, eax
  00fbf	8b c1		 mov	 eax, ecx
  00fc1	b9 04 00 00 00	 mov	 ecx, 4
  00fc6	48 6b c9 0e	 imul	 rcx, rcx, 14
  00fca	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  00fce	b9 a7 23 94 ab	 mov	 ecx, -1416354905	; ffffffffab9423a7H
  00fd3	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  00fd6	48 03 ca	 add	 rcx, rdx
  00fd9	03 c1		 add	 eax, ecx
  00fdb	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00fde	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  00fe1	c1 e0 0f	 shl	 eax, 15
  00fe4	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00fe7	c1 e9 11	 shr	 ecx, 17
  00fea	0b c1		 or	 eax, ecx
  00fec	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  00fef	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  00ff2	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  00ff5	03 c8		 add	 ecx, eax
  00ff7	8b c1		 mov	 eax, ecx
  00ff9	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  00ffc	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  00fff	f7 d0		 not	 eax
  01001	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  01004	0b c8		 or	 ecx, eax
  01006	8b c1		 mov	 eax, ecx
  01008	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  0100b	33 c8		 xor	 ecx, eax
  0100d	8b c1		 mov	 eax, ecx
  0100f	b9 04 00 00 00	 mov	 ecx, 4
  01014	48 6b c9 05	 imul	 rcx, rcx, 5
  01018	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0101c	b9 39 a0 93 fc	 mov	 ecx, -57434055		; fffffffffc93a039H
  01021	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  01024	48 03 ca	 add	 rcx, rdx
  01027	03 c1		 add	 eax, ecx
  01029	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  0102c	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  0102f	c1 e0 15	 shl	 eax, 21
  01032	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  01035	c1 e9 0b	 shr	 ecx, 11
  01038	0b c1		 or	 eax, ecx
  0103a	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  0103d	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  01040	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  01043	03 c8		 add	 ecx, eax
  01045	8b c1		 mov	 eax, ecx
  01047	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  0104a	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0104d	f7 d0		 not	 eax
  0104f	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  01052	0b c8		 or	 ecx, eax
  01054	8b c1		 mov	 eax, ecx
  01056	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  01059	33 c8		 xor	 ecx, eax
  0105b	8b c1		 mov	 eax, ecx
  0105d	b9 04 00 00 00	 mov	 ecx, 4
  01062	48 6b c9 0c	 imul	 rcx, rcx, 12
  01066	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0106a	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0106d	8d 84 01 c3 59
	5b 65		 lea	 eax, DWORD PTR [rcx+rax+1700485571]
  01074	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  01077	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0107a	c1 e0 06	 shl	 eax, 6
  0107d	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  01080	c1 e9 1a	 shr	 ecx, 26
  01083	0b c1		 or	 eax, ecx
  01085	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  01088	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  0108b	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0108e	03 c8		 add	 ecx, eax
  01090	8b c1		 mov	 eax, ecx
  01092	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  01095	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  01098	f7 d0		 not	 eax
  0109a	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0109d	0b c8		 or	 ecx, eax
  0109f	8b c1		 mov	 eax, ecx
  010a1	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  010a4	33 c8		 xor	 ecx, eax
  010a6	8b c1		 mov	 eax, ecx
  010a8	b9 04 00 00 00	 mov	 ecx, 4
  010ad	48 6b c9 03	 imul	 rcx, rcx, 3
  010b1	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  010b5	b9 92 cc 0c 8f	 mov	 ecx, -1894986606	; ffffffff8f0ccc92H
  010ba	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  010bd	48 03 ca	 add	 rcx, rdx
  010c0	03 c1		 add	 eax, ecx
  010c2	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  010c5	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  010c8	c1 e0 0a	 shl	 eax, 10
  010cb	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  010ce	c1 e9 16	 shr	 ecx, 22
  010d1	0b c1		 or	 eax, ecx
  010d3	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  010d6	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  010d9	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  010dc	03 c8		 add	 ecx, eax
  010de	8b c1		 mov	 eax, ecx
  010e0	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  010e3	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  010e6	f7 d0		 not	 eax
  010e8	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  010eb	0b c8		 or	 ecx, eax
  010ed	8b c1		 mov	 eax, ecx
  010ef	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  010f2	33 c8		 xor	 ecx, eax
  010f4	8b c1		 mov	 eax, ecx
  010f6	b9 04 00 00 00	 mov	 ecx, 4
  010fb	48 6b c9 0a	 imul	 rcx, rcx, 10
  010ff	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  01103	b9 7d f4 ef ff	 mov	 ecx, -1051523		; ffffffffffeff47dH
  01108	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  0110b	48 03 ca	 add	 rcx, rdx
  0110e	03 c1		 add	 eax, ecx
  01110	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  01113	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  01116	c1 e0 0f	 shl	 eax, 15
  01119	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0111c	c1 e9 11	 shr	 ecx, 17
  0111f	0b c1		 or	 eax, ecx
  01121	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  01124	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  01127	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0112a	03 c8		 add	 ecx, eax
  0112c	8b c1		 mov	 eax, ecx
  0112e	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  01131	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  01134	f7 d0		 not	 eax
  01136	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  01139	0b c8		 or	 ecx, eax
  0113b	8b c1		 mov	 eax, ecx
  0113d	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  01140	33 c8		 xor	 ecx, eax
  01142	8b c1		 mov	 eax, ecx
  01144	b9 04 00 00 00	 mov	 ecx, 4
  01149	48 6b c9 01	 imul	 rcx, rcx, 1
  0114d	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  01151	b9 d1 5d 84 85	 mov	 ecx, -2054922799	; ffffffff85845dd1H
  01156	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  01159	48 03 ca	 add	 rcx, rdx
  0115c	03 c1		 add	 eax, ecx
  0115e	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  01161	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  01164	c1 e0 15	 shl	 eax, 21
  01167	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0116a	c1 e9 0b	 shr	 ecx, 11
  0116d	0b c1		 or	 eax, ecx
  0116f	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  01172	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  01175	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  01178	03 c8		 add	 ecx, eax
  0117a	8b c1		 mov	 eax, ecx
  0117c	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  0117f	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  01182	f7 d0		 not	 eax
  01184	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  01187	0b c8		 or	 ecx, eax
  01189	8b c1		 mov	 eax, ecx
  0118b	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0118e	33 c8		 xor	 ecx, eax
  01190	8b c1		 mov	 eax, ecx
  01192	b9 04 00 00 00	 mov	 ecx, 4
  01197	48 6b c9 08	 imul	 rcx, rcx, 8
  0119b	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0119f	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  011a2	8d 84 01 4f 7e
	a8 6f		 lea	 eax, DWORD PTR [rcx+rax+1873313359]
  011a9	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  011ac	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  011af	c1 e0 06	 shl	 eax, 6
  011b2	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  011b5	c1 e9 1a	 shr	 ecx, 26
  011b8	0b c1		 or	 eax, ecx
  011ba	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  011bd	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  011c0	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  011c3	03 c8		 add	 ecx, eax
  011c5	8b c1		 mov	 eax, ecx
  011c7	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  011ca	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  011cd	f7 d0		 not	 eax
  011cf	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  011d2	0b c8		 or	 ecx, eax
  011d4	8b c1		 mov	 eax, ecx
  011d6	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  011d9	33 c8		 xor	 ecx, eax
  011db	8b c1		 mov	 eax, ecx
  011dd	b9 04 00 00 00	 mov	 ecx, 4
  011e2	48 6b c9 0f	 imul	 rcx, rcx, 15
  011e6	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  011ea	b9 e0 e6 2c fe	 mov	 ecx, -30611744		; fffffffffe2ce6e0H
  011ef	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  011f2	48 03 ca	 add	 rcx, rdx
  011f5	03 c1		 add	 eax, ecx
  011f7	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  011fa	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  011fd	c1 e0 0a	 shl	 eax, 10
  01200	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  01203	c1 e9 16	 shr	 ecx, 22
  01206	0b c1		 or	 eax, ecx
  01208	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  0120b	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0120e	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  01211	03 c8		 add	 ecx, eax
  01213	8b c1		 mov	 eax, ecx
  01215	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  01218	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  0121b	f7 d0		 not	 eax
  0121d	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  01220	0b c8		 or	 ecx, eax
  01222	8b c1		 mov	 eax, ecx
  01224	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  01227	33 c8		 xor	 ecx, eax
  01229	8b c1		 mov	 eax, ecx
  0122b	b9 04 00 00 00	 mov	 ecx, 4
  01230	48 6b c9 06	 imul	 rcx, rcx, 6
  01234	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  01238	b9 14 43 01 a3	 mov	 ecx, -1560198380	; ffffffffa3014314H
  0123d	8b 55 08	 mov	 edx, DWORD PTR c$[rbp]
  01240	48 03 ca	 add	 rcx, rdx
  01243	03 c1		 add	 eax, ecx
  01245	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  01248	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  0124b	c1 e0 0f	 shl	 eax, 15
  0124e	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  01251	c1 e9 11	 shr	 ecx, 17
  01254	0b c1		 or	 eax, ecx
  01256	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  01259	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0125c	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0125f	03 c8		 add	 ecx, eax
  01261	8b c1		 mov	 eax, ecx
  01263	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  01266	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  01269	f7 d0		 not	 eax
  0126b	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  0126e	0b c8		 or	 ecx, eax
  01270	8b c1		 mov	 eax, ecx
  01272	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  01275	33 c8		 xor	 ecx, eax
  01277	8b c1		 mov	 eax, ecx
  01279	b9 04 00 00 00	 mov	 ecx, 4
  0127e	48 6b c9 0d	 imul	 rcx, rcx, 13
  01282	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  01286	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  01289	8d 84 01 a1 11
	08 4e		 lea	 eax, DWORD PTR [rcx+rax+1309151649]
  01290	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  01293	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  01296	c1 e0 15	 shl	 eax, 21
  01299	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0129c	c1 e9 0b	 shr	 ecx, 11
  0129f	0b c1		 or	 eax, ecx
  012a1	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  012a4	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  012a7	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  012aa	03 c8		 add	 ecx, eax
  012ac	8b c1		 mov	 eax, ecx
  012ae	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  012b1	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  012b4	f7 d0		 not	 eax
  012b6	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  012b9	0b c8		 or	 ecx, eax
  012bb	8b c1		 mov	 eax, ecx
  012bd	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  012c0	33 c8		 xor	 ecx, eax
  012c2	8b c1		 mov	 eax, ecx
  012c4	b9 04 00 00 00	 mov	 ecx, 4
  012c9	48 6b c9 04	 imul	 rcx, rcx, 4
  012cd	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  012d1	b9 82 7e 53 f7	 mov	 ecx, -145523070		; fffffffff7537e82H
  012d6	8b 55 00	 mov	 edx, DWORD PTR a$[rbp]
  012d9	48 03 ca	 add	 rcx, rdx
  012dc	03 c1		 add	 eax, ecx
  012de	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  012e1	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  012e4	c1 e0 06	 shl	 eax, 6
  012e7	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  012ea	c1 e9 1a	 shr	 ecx, 26
  012ed	0b c1		 or	 eax, ecx
  012ef	89 45 00	 mov	 DWORD PTR a$[rbp], eax
  012f2	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  012f5	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  012f8	03 c8		 add	 ecx, eax
  012fa	8b c1		 mov	 eax, ecx
  012fc	89 45 00	 mov	 DWORD PTR a$[rbp], eax

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

  012ff	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  01302	f7 d0		 not	 eax
  01304	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  01307	0b c8		 or	 ecx, eax
  01309	8b c1		 mov	 eax, ecx
  0130b	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  0130e	33 c8		 xor	 ecx, eax
  01310	8b c1		 mov	 eax, ecx
  01312	b9 04 00 00 00	 mov	 ecx, 4
  01317	48 6b c9 0b	 imul	 rcx, rcx, 11
  0131b	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0131f	b9 35 f2 3a bd	 mov	 ecx, -1120210379	; ffffffffbd3af235H
  01324	8b 55 0c	 mov	 edx, DWORD PTR d$[rbp]
  01327	48 03 ca	 add	 rcx, rdx
  0132a	03 c1		 add	 eax, ecx
  0132c	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  0132f	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  01332	c1 e0 0a	 shl	 eax, 10
  01335	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  01338	c1 e9 16	 shr	 ecx, 22
  0133b	0b c1		 or	 eax, ecx
  0133d	89 45 0c	 mov	 DWORD PTR d$[rbp], eax
  01340	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  01343	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  01346	03 c8		 add	 ecx, eax
  01348	8b c1		 mov	 eax, ecx
  0134a	89 45 0c	 mov	 DWORD PTR d$[rbp], eax

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

  0134d	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  01350	f7 d0		 not	 eax
  01352	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  01355	0b c8		 or	 ecx, eax
  01357	8b c1		 mov	 eax, ecx
  01359	8b 4d 00	 mov	 ecx, DWORD PTR a$[rbp]
  0135c	33 c8		 xor	 ecx, eax
  0135e	8b c1		 mov	 eax, ecx
  01360	b9 04 00 00 00	 mov	 ecx, 4
  01365	48 6b c9 02	 imul	 rcx, rcx, 2
  01369	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  0136d	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  01370	8d 84 01 bb d2
	d7 2a		 lea	 eax, DWORD PTR [rcx+rax+718787259]
  01377	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  0137a	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  0137d	c1 e0 0f	 shl	 eax, 15
  01380	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  01383	c1 e9 11	 shr	 ecx, 17
  01386	0b c1		 or	 eax, ecx
  01388	89 45 08	 mov	 DWORD PTR c$[rbp], eax
  0138b	8b 45 0c	 mov	 eax, DWORD PTR d$[rbp]
  0138e	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  01391	03 c8		 add	 ecx, eax
  01393	8b c1		 mov	 eax, ecx
  01395	89 45 08	 mov	 DWORD PTR c$[rbp], eax

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

  01398	8b 45 00	 mov	 eax, DWORD PTR a$[rbp]
  0139b	f7 d0		 not	 eax
  0139d	8b 4d 08	 mov	 ecx, DWORD PTR c$[rbp]
  013a0	0b c8		 or	 ecx, eax
  013a2	8b c1		 mov	 eax, ecx
  013a4	8b 4d 0c	 mov	 ecx, DWORD PTR d$[rbp]
  013a7	33 c8		 xor	 ecx, eax
  013a9	8b c1		 mov	 eax, ecx
  013ab	b9 04 00 00 00	 mov	 ecx, 4
  013b0	48 6b c9 09	 imul	 rcx, rcx, 9
  013b4	03 44 0d 10	 add	 eax, DWORD PTR x$[rbp+rcx]
  013b8	b9 91 d3 86 eb	 mov	 ecx, -343485551		; ffffffffeb86d391H
  013bd	8b 55 04	 mov	 edx, DWORD PTR b$[rbp]
  013c0	48 03 ca	 add	 rcx, rdx
  013c3	03 c1		 add	 eax, ecx
  013c5	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  013c8	8b 45 04	 mov	 eax, DWORD PTR b$[rbp]
  013cb	c1 e0 15	 shl	 eax, 21
  013ce	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  013d1	c1 e9 0b	 shr	 ecx, 11
  013d4	0b c1		 or	 eax, ecx
  013d6	89 45 04	 mov	 DWORD PTR b$[rbp], eax
  013d9	8b 45 08	 mov	 eax, DWORD PTR c$[rbp]
  013dc	8b 4d 04	 mov	 ecx, DWORD PTR b$[rbp]
  013df	03 c8		 add	 ecx, eax
  013e1	8b c1		 mov	 eax, ecx
  013e3	89 45 04	 mov	 DWORD PTR b$[rbp], eax

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

  013e6	b8 04 00 00 00	 mov	 eax, 4
  013eb	48 6b c0 00	 imul	 rax, rax, 0
  013ef	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR state$[rbp]
  013f6	8b 04 01	 mov	 eax, DWORD PTR [rcx+rax]
  013f9	03 45 00	 add	 eax, DWORD PTR a$[rbp]
  013fc	b9 04 00 00 00	 mov	 ecx, 4
  01401	48 6b c9 00	 imul	 rcx, rcx, 0
  01405	48 8b 95 b8 00
	00 00		 mov	 rdx, QWORD PTR state$[rbp]
  0140c	89 04 0a	 mov	 DWORD PTR [rdx+rcx], eax

; 183  : state[1] += b; 

  0140f	b8 04 00 00 00	 mov	 eax, 4
  01414	48 6b c0 01	 imul	 rax, rax, 1
  01418	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR state$[rbp]
  0141f	8b 04 01	 mov	 eax, DWORD PTR [rcx+rax]
  01422	03 45 04	 add	 eax, DWORD PTR b$[rbp]
  01425	b9 04 00 00 00	 mov	 ecx, 4
  0142a	48 6b c9 01	 imul	 rcx, rcx, 1
  0142e	48 8b 95 b8 00
	00 00		 mov	 rdx, QWORD PTR state$[rbp]
  01435	89 04 0a	 mov	 DWORD PTR [rdx+rcx], eax

; 184  : state[2] += c; 

  01438	b8 04 00 00 00	 mov	 eax, 4
  0143d	48 6b c0 02	 imul	 rax, rax, 2
  01441	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR state$[rbp]
  01448	8b 04 01	 mov	 eax, DWORD PTR [rcx+rax]
  0144b	03 45 08	 add	 eax, DWORD PTR c$[rbp]
  0144e	b9 04 00 00 00	 mov	 ecx, 4
  01453	48 6b c9 02	 imul	 rcx, rcx, 2
  01457	48 8b 95 b8 00
	00 00		 mov	 rdx, QWORD PTR state$[rbp]
  0145e	89 04 0a	 mov	 DWORD PTR [rdx+rcx], eax

; 185  : state[3] += d; 

  01461	b8 04 00 00 00	 mov	 eax, 4
  01466	48 6b c0 03	 imul	 rax, rax, 3
  0146a	48 8b 8d b8 00
	00 00		 mov	 rcx, QWORD PTR state$[rbp]
  01471	8b 04 01	 mov	 eax, DWORD PTR [rcx+rax]
  01474	03 45 0c	 add	 eax, DWORD PTR d$[rbp]
  01477	b9 04 00 00 00	 mov	 ecx, 4
  0147c	48 6b c9 03	 imul	 rcx, rcx, 3
  01480	48 8b 95 b8 00
	00 00		 mov	 rdx, QWORD PTR state$[rbp]
  01487	89 04 0a	 mov	 DWORD PTR [rdx+rcx], eax

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

  0148a	41 b9 40 00 00
	00		 mov	 r9d, 64			; 00000040H
  01490	45 33 c0	 xor	 r8d, r8d
  01493	48 8d 55 10	 lea	 rdx, QWORD PTR x$[rbp]
  01497	48 8b 8d b0 00
	00 00		 mov	 rcx, QWORD PTR this$[rbp]
  0149e	e8 00 00 00 00	 call	 ?MD5_memset@MD5_L@@QEAAXPEAEHI@Z ; MD5_L::MD5_memset

; 190  : } 

  014a3	48 8b 8d 90 00
	00 00		 mov	 rcx, QWORD PTR __$ArrayPad$[rbp]
  014aa	48 33 cd	 xor	 rcx, rbp
  014ad	e8 00 00 00 00	 call	 __security_check_cookie
  014b2	48 8d a5 a0 00
	00 00		 lea	 rsp, QWORD PTR [rbp+160]
  014b9	5d		 pop	 rbp
  014ba	c3		 ret	 0
?MD5Transform@MD5_L@@QEAAXQEAKQEAE@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
_Result$ = 0
_ArgList$ = 8
_Buffer$ = 112
_Format$ = 120
sprintf	PROC						; COMDAT

; 1771 :     {

$LN3:
  00000	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  00005	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000a	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  0000f	4c 89 4c 24 20	 mov	 QWORD PTR [rsp+32], r9
  00014	55		 push	 rbp
  00015	48 81 ec 80 00
	00 00		 sub	 rsp, 128		; 00000080H
  0001c	48 8d 6c 24 20	 lea	 rbp, QWORD PTR [rsp+32]

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

  00021	48 8d 85 80 00
	00 00		 lea	 rax, QWORD PTR _Format$[rbp+8]
  00028	48 89 45 08	 mov	 QWORD PTR _ArgList$[rbp], rax

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

  0002c	4c 8b 4d 08	 mov	 r9, QWORD PTR _ArgList$[rbp]
  00030	45 33 c0	 xor	 r8d, r8d
  00033	48 8b 55 78	 mov	 rdx, QWORD PTR _Format$[rbp]
  00037	48 8b 4d 70	 mov	 rcx, QWORD PTR _Buffer$[rbp]
  0003b	e8 00 00 00 00	 call	 _vsprintf_l
  00040	89 45 00	 mov	 DWORD PTR _Result$[rbp], eax

; 1777 : 
; 1778 :         __crt_va_end(_ArgList);

  00043	48 c7 45 08 00
	00 00 00	 mov	 QWORD PTR _ArgList$[rbp], 0

; 1779 :         return _Result;

  0004b	8b 45 00	 mov	 eax, DWORD PTR _Result$[rbp]

; 1780 :     }

  0004e	48 8d 65 60	 lea	 rsp, QWORD PTR [rbp+96]
  00052	5d		 pop	 rbp
  00053	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$ = 80
_Format$ = 88
_Locale$ = 96
_ArgList$ = 104
_vsprintf_l PROC					; COMDAT

; 1458 :     {

$LN3:
  00000	4c 89 4c 24 20	 mov	 QWORD PTR [rsp+32], r9
  00005	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  0000a	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000f	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00014	55		 push	 rbp
  00015	48 83 ec 70	 sub	 rsp, 112		; 00000070H
  00019	48 8d 6c 24 30	 lea	 rbp, QWORD PTR [rsp+48]

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

  0001e	48 8b 45 68	 mov	 rax, QWORD PTR _ArgList$[rbp]
  00022	48 89 44 24 20	 mov	 QWORD PTR [rsp+32], rax
  00027	4c 8b 4d 60	 mov	 r9, QWORD PTR _Locale$[rbp]
  0002b	4c 8b 45 58	 mov	 r8, QWORD PTR _Format$[rbp]
  0002f	48 c7 c2 ff ff
	ff ff		 mov	 rdx, -1
  00036	48 8b 4d 50	 mov	 rcx, QWORD PTR _Buffer$[rbp]
  0003a	e8 00 00 00 00	 call	 _vsnprintf_l

; 1460 :     }

  0003f	48 8d 65 40	 lea	 rsp, QWORD PTR [rbp+64]
  00043	5d		 pop	 rbp
  00044	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
_Result$ = 0
tv74 = 68
_Buffer$ = 96
_BufferCount$ = 104
_Format$ = 112
_Locale$ = 120
_ArgList$ = 128
_vsnprintf_l PROC					; COMDAT

; 1391 :     {

$LN5:
  00000	4c 89 4c 24 20	 mov	 QWORD PTR [rsp+32], r9
  00005	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  0000a	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000f	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00014	55		 push	 rbp
  00015	48 81 ec 80 00
	00 00		 sub	 rsp, 128		; 00000080H
  0001c	48 8d 6c 24 30	 lea	 rbp, QWORD PTR [rsp+48]

; 1392 :         int const _Result = __stdio_common_vsprintf(

  00021	e8 00 00 00 00	 call	 __local_stdio_printf_options
  00026	48 8b 00	 mov	 rax, QWORD PTR [rax]
  00029	48 83 c8 01	 or	 rax, 1
  0002d	48 8b 8d 80 00
	00 00		 mov	 rcx, QWORD PTR _ArgList$[rbp]
  00034	48 89 4c 24 28	 mov	 QWORD PTR [rsp+40], rcx
  00039	48 8b 4d 78	 mov	 rcx, QWORD PTR _Locale$[rbp]
  0003d	48 89 4c 24 20	 mov	 QWORD PTR [rsp+32], rcx
  00042	4c 8b 4d 70	 mov	 r9, QWORD PTR _Format$[rbp]
  00046	4c 8b 45 68	 mov	 r8, QWORD PTR _BufferCount$[rbp]
  0004a	48 8b 55 60	 mov	 rdx, QWORD PTR _Buffer$[rbp]
  0004e	48 8b c8	 mov	 rcx, rax
  00051	e8 00 00 00 00	 call	 __stdio_common_vsprintf
  00056	89 45 00	 mov	 DWORD PTR _Result$[rbp], 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;

  00059	83 7d 00 00	 cmp	 DWORD PTR _Result$[rbp], 0
  0005d	7d 09		 jge	 SHORT $LN3@vsnprintf_
  0005f	c7 45 44 ff ff
	ff ff		 mov	 DWORD PTR tv74[rbp], -1
  00066	eb 06		 jmp	 SHORT $LN4@vsnprintf_
$LN3@vsnprintf_:
  00068	8b 45 00	 mov	 eax, DWORD PTR _Result$[rbp]
  0006b	89 45 44	 mov	 DWORD PTR tv74[rbp], eax
$LN4@vsnprintf_:
  0006e	8b 45 44	 mov	 eax, DWORD PTR tv74[rbp]

; 1397 :     }

  00071	48 8d 65 50	 lea	 rsp, QWORD PTR [rbp+80]
  00075	5d		 pop	 rbp
  00076	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   :     {

$LN3:
  00000	40 55		 push	 rbp
  00002	48 83 ec 40	 sub	 rsp, 64			; 00000040H
  00006	48 8b ec	 mov	 rbp, rsp

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

  00009	48 8d 05 00 00
	00 00		 lea	 rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage

; 93   :     }

  00010	48 8d 65 40	 lea	 rsp, QWORD PTR [rbp+64]
  00014	5d		 pop	 rbp
  00015	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@@YAXPEAX_KW4align_val_t@std@@@Z
_TEXT	SEGMENT
__formal$ = 80
__formal$ = 88
__formal$ = 96
?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT

$LN3:
  00000	4c 89 44 24 18	 mov	 QWORD PTR [rsp+24], r8
  00005	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  0000a	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000f	55		 push	 rbp
  00010	48 83 ec 40	 sub	 rsp, 64			; 00000040H
  00014	48 8b ec	 mov	 rbp, rsp
  00017	48 8d 65 40	 lea	 rsp, QWORD PTR [rbp+64]
  0001b	5d		 pop	 rbp
  0001c	c3		 ret	 0
?__empty_global_delete@@YAXPEAX_KW4align_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@@YAXPEAXW4align_val_t@std@@@Z
_TEXT	SEGMENT
__formal$ = 80
__formal$ = 88
?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT

$LN3:
  00000	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  00005	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000a	55		 push	 rbp
  0000b	48 83 ec 40	 sub	 rsp, 64			; 00000040H
  0000f	48 8b ec	 mov	 rbp, rsp
  00012	48 8d 65 40	 lea	 rsp, QWORD PTR [rbp+64]
  00016	5d		 pop	 rbp
  00017	c3		 ret	 0
?__empty_global_delete@@YAXPEAXW4align_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@@YAXPEAX_K@Z
_TEXT	SEGMENT
__formal$ = 80
__formal$ = 88
?__empty_global_delete@@YAXPEAX_K@Z PROC		; __empty_global_delete, COMDAT

$LN3:
  00000	48 89 54 24 10	 mov	 QWORD PTR [rsp+16], rdx
  00005	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  0000a	55		 push	 rbp
  0000b	48 83 ec 40	 sub	 rsp, 64			; 00000040H
  0000f	48 8b ec	 mov	 rbp, rsp
  00012	48 8d 65 40	 lea	 rsp, QWORD PTR [rbp+64]
  00016	5d		 pop	 rbp
  00017	c3		 ret	 0
?__empty_global_delete@@YAXPEAX_K@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@@YAXPEAX@Z
_TEXT	SEGMENT
__formal$ = 80
?__empty_global_delete@@YAXPEAX@Z PROC			; __empty_global_delete, COMDAT

$LN3:
  00000	48 89 4c 24 08	 mov	 QWORD PTR [rsp+8], rcx
  00005	55		 push	 rbp
  00006	48 83 ec 40	 sub	 rsp, 64			; 00000040H
  0000a	48 8b ec	 mov	 rbp, rsp
  0000d	48 8d 65 40	 lea	 rsp, QWORD PTR [rbp+64]
  00011	5d		 pop	 rbp
  00012	c3		 ret	 0
?__empty_global_delete@@YAXPEAX@Z ENDP			; __empty_global_delete
_TEXT	ENDS
END