4100c0:	d1 c0                	rol    $1,%eax
4100c2:	89 06                	mov    %eax,(%esi)
4100c4:	8b 4a f8             	mov    -0x8(%edx),%ecx
4100c7:	8b 3a                	mov    (%edx),%edi
4100c9:	8d 4c 8d e0          	lea    -0x20(%ebp,%ecx,4),%ecx
4100cd:	89 4d 10             	mov    %ecx,0x10(%ebp)
4100d0:	8b 4a 04             	mov    0x4(%edx),%ecx
4100d3:	8d 4c 8d e0          	lea    -0x20(%ebp,%ecx,4),%ecx
4100d7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4100da:	8b 4a f4             	mov    -0xc(%edx),%ecx
4100dd:	8b 74 8d e0          	mov    -0x20(%ebp,%ecx,4),%esi
4100e1:	8b 4a fc             	mov    -0x4(%edx),%ecx
4100e4:	8b 4c 8d e0          	mov    -0x20(%ebp,%ecx,4),%ecx
4100e8:	33 4c bd e0          	xor    -0x20(%ebp,%edi,4),%ecx
4100ec:	c1 c6 05             	rol    $0x5,%esi
4100ef:	8b f9                	mov    %ecx,%edi
4100f1:	8b 4d 10             	mov    0x10(%ebp),%ecx
4100f4:	33 39                	xor    (%ecx),%edi
4100f6:	03 f0                	add    %eax,%esi
4100f8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4100fb:	8d b4 37 a1 eb d9 6e 	lea    0x6ed9eba1(%edi,%esi,1),%esi
410102:	01 30                	add    %esi,(%eax)
410104:	c1 09 02             	rorl   $0x2,(%ecx)
410107:	ff 45 14             	incl   0x14(%ebp)
41010a:	83 c2 14             	add    $0x14,%edx
41010d:	81 fa 24 e7 44 00    	cmp    $0x44e724,%edx
410113:	7c 85                	jl     0x41009a
410115:	b9 20 e7 44 00       	mov    $0x44e720,%ecx
41011a:	c7 45 14 28 00 00 00 	movl   $0x28,0x14(%ebp)
410121:	89 4d 10             	mov    %ecx,0x10(%ebp)
410124:	8b 45 14             	mov    0x14(%ebp),%eax
410127:	8d 50 fd             	lea    -0x3(%eax),%edx
41012a:	83 e0 0f             	and    $0xf,%eax
41012d:	8d 34 83             	lea    (%ebx,%eax,4),%esi
410130:	8d 42 fb             	lea    -0x5(%edx),%eax
410133:	83 e0 0f             	and    $0xf,%eax
410136:	8b 04 83             	mov    (%ebx,%eax,4),%eax
410139:	8d 7a 05             	lea    0x5(%edx),%edi
41013c:	83 e7 0f             	and    $0xf,%edi
41013f:	33 04 bb             	xor    (%ebx,%edi,4),%eax
410142:	83 e2 0f             	and    $0xf,%edx
410145:	33 04 93             	xor    (%ebx,%edx,4),%eax
410148:	33 06                	xor    (%esi),%eax
41014a:	d1 c0                	rol    $1,%eax
41014c:	89 06                	mov    %eax,(%esi)
41014e:	8b 51 fc             	mov    -0x4(%ecx),%edx
410151:	8b 79 08             	mov    0x8(%ecx),%edi
410154:	8b 31                	mov    (%ecx),%esi
410156:	8b 74 b5 e0          	mov    -0x20(%ebp,%esi,4),%esi
41015a:	8d 54 95 e0          	lea    -0x20(%ebp,%edx,4),%edx
41015e:	8d 7c bd e0          	lea    -0x20(%ebp,%edi,4),%edi
410162:	89 55 f4             	mov    %edx,-0xc(%ebp)
410165:	8b 12                	mov    (%edx),%edx
410167:	89 7d f8             	mov    %edi,-0x8(%ebp)
41016a:	8b 79 f8             	mov    -0x8(%ecx),%edi
41016d:	8b 49 04             	mov    0x4(%ecx),%ecx
410170:	8b 4c 8d e0          	mov    -0x20(%ebp,%ecx,4),%ecx
410174:	8b 7c bd e0          	mov    -0x20(%ebp,%edi,4),%edi
410178:	89 55 0c             	mov    %edx,0xc(%ebp)
41017b:	0b d6                	or     %esi,%edx
41017d:	23 ca                	and    %edx,%ecx
41017f:	8b d1                	mov    %ecx,%edx
410181:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410184:	23 ce                	and    %esi,%ecx
410186:	0b d1                	or     %ecx,%edx
410188:	c1 c7 05             	rol    $0x5,%edi
41018b:	03 f8                	add    %eax,%edi
41018d:	8b 45 f8             	mov    -0x8(%ebp),%eax
410190:	8d 8c 3a dc bc 1b 8f 	lea    -0x70e44324(%edx,%edi,1),%ecx
410197:	01 08                	add    %ecx,(%eax)
410199:	8b 4d 10             	mov    0x10(%ebp),%ecx
41019c:	8b 45 f4             	mov    -0xc(%ebp),%eax
41019f:	c1 08 02             	rorl   $0x2,(%eax)
4101a2:	ff 45 14             	incl   0x14(%ebp)
4101a5:	83 c1 14             	add    $0x14,%ecx
4101a8:	81 f9 b0 e8 44 00    	cmp    $0x44e8b0,%ecx
4101ae:	89 4d 10             	mov    %ecx,0x10(%ebp)
4101b1:	0f 8c 6d ff ff ff    	jl     0x410124
4101b7:	c7 45 14 3c 00 00 00 	movl   $0x3c,0x14(%ebp)
4101be:	ba b4 e8 44 00       	mov    $0x44e8b4,%edx
4101c3:	8b 45 14             	mov    0x14(%ebp),%eax
4101c6:	8d 48 fd             	lea    -0x3(%eax),%ecx
4101c9:	83 e0 0f             	and    $0xf,%eax
4101cc:	8d 34 83             	lea    (%ebx,%eax,4),%esi
4101cf:	8d 41 fb             	lea    -0x5(%ecx),%eax
4101d2:	8d 79 05             	lea    0x5(%ecx),%edi
4101d5:	83 e0 0f             	and    $0xf,%eax
4101d8:	8b 04 83             	mov    (%ebx,%eax,4),%eax
4101db:	83 e1 0f             	and    $0xf,%ecx
4101de:	83 e7 0f             	and    $0xf,%edi
4101e1:	33 04 bb             	xor    (%ebx,%edi,4),%eax
4101e4:	33 04 8b             	xor    (%ebx,%ecx,4),%eax
4101e7:	33 06                	xor    (%esi),%eax
4101e9:	d1 c0                	rol    $1,%eax
4101eb:	89 06                	mov    %eax,(%esi)
4101ed:	8b 4a f8             	mov    -0x8(%edx),%ecx
4101f0:	8b 3a                	mov    (%edx),%edi
4101f2:	8d 4c 8d e0          	lea    -0x20(%ebp,%ecx,4),%ecx
4101f6:	89 4d 10             	mov    %ecx,0x10(%ebp)
4101f9:	8b 4a 04             	mov    0x4(%edx),%ecx
4101fc:	8d 4c 8d e0          	lea    -0x20(%ebp,%ecx,4),%ecx
410200:	89 4d f4             	mov    %ecx,-0xc(%ebp)
410203:	8b 4a f4             	mov    -0xc(%edx),%ecx
410206:	8b 74 8d e0          	mov    -0x20(%ebp,%ecx,4),%esi
41020a:	8b 4a fc             	mov    -0x4(%edx),%ecx
41020d:	8b 4c 8d e0          	mov    -0x20(%ebp,%ecx,4),%ecx
410211:	33 4c bd e0          	xor    -0x20(%ebp,%edi,4),%ecx
410215:	c1 c6 05             	rol    $0x5,%esi
410218:	8b f9                	mov    %ecx,%edi
41021a:	8b 4d 10             	mov    0x10(%ebp),%ecx
41021d:	33 39                	xor    (%ecx),%edi
41021f:	03 f0                	add    %eax,%esi
410221:	8b 45 f4             	mov    -0xc(%ebp),%eax
410224:	8d b4 37 d6 c1 62 ca 	lea    -0x359d3e2a(%edi,%esi,1),%esi
41022b:	01 30                	add    %esi,(%eax)
41022d:	c1 09 02             	rorl   $0x2,(%ecx)
410230:	ff 45 14             	incl   0x14(%ebp)
410233:	83 c2 14             	add    $0x14,%edx
410236:	81 fa 44 ea 44 00    	cmp    $0x44ea44,%edx
41023c:	7c 85                	jl     0x4101c3
41023e:	8b 45 08             	mov    0x8(%ebp),%eax
410241:	8d 4d e0             	lea    -0x20(%ebp),%ecx
410244:	6a 05                	push   $0x5
410246:	2b c8                	sub    %eax,%ecx
410248:	5a                   	pop    %edx
410249:	8b 34 01             	mov    (%ecx,%eax,1),%esi
41024c:	01 30                	add    %esi,(%eax)
41024e:	83 c0 04             	add    $0x4,%eax
410251:	4a                   	dec    %edx
410252:	75 f5                	jne    0x410249
410254:	5f                   	pop    %edi
410255:	5e                   	pop    %esi
410256:	5b                   	pop    %ebx
410257:	c9                   	leave
410258:	c2 10 00             	ret    $0x10
41025b:	8b 44 24 04          	mov    0x4(%esp),%eax
41025f:	83 60 18 00          	andl   $0x0,0x18(%eax)
410263:	83 60 14 00          	andl   $0x0,0x14(%eax)
410267:	c7 00 01 23 45 67    	movl   $0x67452301,(%eax)
41026d:	c7 40 04 89 ab cd ef 	movl   $0xefcdab89,0x4(%eax)
410274:	c7 40 08 fe dc ba 98 	movl   $0x98badcfe,0x8(%eax)
41027b:	c7 40 0c 76 54 32 10 	movl   $0x10325476,0xc(%eax)
410282:	c7 40 10 f0 e1 d2 c3 	movl   $0xc3d2e1f0,0x10(%eax)
410289:	c2 04 00             	ret    $0x4
41028c:	55                   	push   %ebp
41028d:	8b ec                	mov    %esp,%ebp
41028f:	53                   	push   %ebx
410290:	8b 5d 10             	mov    0x10(%ebp),%ebx
410293:	56                   	push   %esi
410294:	8b 75 08             	mov    0x8(%ebp),%esi
410297:	8b 56 14             	mov    0x14(%esi),%edx
41029a:	8b cb                	mov    %ebx,%ecx
41029c:	8b c2                	mov    %edx,%eax
41029e:	c1 e1 03             	shl    $0x3,%ecx
4102a1:	c1 e8 03             	shr    $0x3,%eax
4102a4:	03 d1                	add    %ecx,%edx
4102a6:	83 e0 3f             	and    $0x3f,%eax
4102a9:	57                   	push   %edi
4102aa:	89 56 14             	mov    %edx,0x14(%esi)
4102ad:	3b d1                	cmp    %ecx,%edx
4102af:	73 03                	jae    0x4102b4
4102b1:	ff 46 18             	incl   0x18(%esi)
4102b4:	8b cb                	mov    %ebx,%ecx
4102b6:	c1 e9 1d             	shr    $0x1d,%ecx
4102b9:	01 4e 18             	add    %ecx,0x18(%esi)
4102bc:	8d 0c 18             	lea    (%eax,%ebx,1),%ecx
4102bf:	83 f9 3f             	cmp    $0x3f,%ecx
4102c2:	76 59                	jbe    0x41031d
4102c4:	6a 40                	push   $0x40
4102c6:	5f                   	pop    %edi
4102c7:	2b f8                	sub    %eax,%edi
4102c9:	57                   	push   %edi
4102ca:	ff 75 0c             	push   0xc(%ebp)
4102cd:	8d 44 30 1c          	lea    0x1c(%eax,%esi,1),%eax
4102d1:	50                   	push   %eax
4102d2:	e8 99 b9 00 00       	call   0x41bc70
4102d7:	83 c4 0c             	add    $0xc,%esp
4102da:	ff 75 14             	push   0x14(%ebp)
4102dd:	8d 4e 1c             	lea    0x1c(%esi),%ecx
4102e0:	51                   	push   %ecx
4102e1:	8d 46 5c             	lea    0x5c(%esi),%eax
4102e4:	50                   	push   %eax
4102e5:	56                   	push   %esi
4102e6:	e8 10 fc ff ff       	call   0x40fefb
4102eb:	8d 47 3f             	lea    0x3f(%edi),%eax
4102ee:	3b c3                	cmp    %ebx,%eax
4102f0:	73 27                	jae    0x410319
4102f2:	89 45 10             	mov    %eax,0x10(%ebp)
4102f5:	ff 75 14             	push   0x14(%ebp)
4102f8:	8b 4d 10             	mov    0x10(%ebp),%ecx
4102fb:	8b 45 0c             	mov    0xc(%ebp),%eax
4102fe:	8d 44 08 c1          	lea    -0x3f(%eax,%ecx,1),%eax
410302:	50                   	push   %eax
410303:	8d 46 5c             	lea    0x5c(%esi),%eax
410306:	50                   	push   %eax
410307:	56                   	push   %esi
410308:	e8 ee fb ff ff       	call   0x40fefb
41030d:	83 45 10 40          	addl   $0x40,0x10(%ebp)
410311:	83 c7 40             	add    $0x40,%edi
410314:	39 5d 10             	cmp    %ebx,0x10(%ebp)
410317:	72 dc                	jb     0x4102f5
410319:	33 c0                	xor    %eax,%eax
41031b:	eb 02                	jmp    0x41031f
41031d:	33 ff                	xor    %edi,%edi
41031f:	3b df                	cmp    %edi,%ebx
410321:	76 16                	jbe    0x410339
410323:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410326:	2b df                	sub    %edi,%ebx
410328:	53                   	push   %ebx
410329:	03 f9                	add    %ecx,%edi
41032b:	8d 44 30 1c          	lea    0x1c(%eax,%esi,1),%eax
41032f:	57                   	push   %edi
410330:	50                   	push   %eax
410331:	e8 3a b9 00 00       	call   0x41bc70
410336:	83 c4 0c             	add    $0xc,%esp
410339:	5f                   	pop    %edi
41033a:	5e                   	pop    %esi
41033b:	5b                   	pop    %ebx
41033c:	5d                   	pop    %ebp
41033d:	c2 10 00             	ret    $0x10
410340:	55                   	push   %ebp
410341:	8b ec                	mov    %esp,%ebp
410343:	83 ec 10             	sub    $0x10,%esp
410346:	56                   	push   %esi
410347:	8b 75 08             	mov    0x8(%ebp),%esi
41034a:	33 c0                	xor    %eax,%eax
41034c:	8b d0                	mov    %eax,%edx
41034e:	83 e2 03             	and    $0x3,%edx
410351:	6a 03                	push   $0x3
410353:	59                   	pop    %ecx
410354:	2b ca                	sub    %edx,%ecx
410356:	c1 e1 03             	shl    $0x3,%ecx
410359:	83 f8 04             	cmp    $0x4,%eax
41035c:	1b d2                	sbb    %edx,%edx
41035e:	f7 da                	neg    %edx
410360:	8b 54 96 14          	mov    0x14(%esi,%edx,4),%edx
410364:	d3 ea                	shr    %cl,%edx
410366:	40                   	inc    %eax
410367:	88 54 05 ef          	mov    %dl,-0x11(%ebp,%eax,1)
41036b:	83 f8 08             	cmp    $0x8,%eax
41036e:	72 dc                	jb     0x41034c
410370:	53                   	push   %ebx
410371:	57                   	push   %edi
410372:	ff 75 10             	push   0x10(%ebp)
410375:	89 45 fc             	mov    %eax,-0x4(%ebp)
410378:	6a 01                	push   $0x1
41037a:	8d 45 0b             	lea    0xb(%ebp),%eax
41037d:	50                   	push   %eax
41037e:	56                   	push   %esi
41037f:	c6 45 0b 80          	movb   $0x80,0xb(%ebp)
410383:	e8 04 ff ff ff       	call   0x41028c
410388:	8d 7e 14             	lea    0x14(%esi),%edi
41038b:	bb c0 01 00 00       	mov    $0x1c0,%ebx
410390:	eb 10                	jmp    0x4103a2
410392:	6a 01                	push   $0x1
410394:	8d 45 0b             	lea    0xb(%ebp),%eax
410397:	50                   	push   %eax
410398:	56                   	push   %esi
410399:	c6 45 0b 00          	movb   $0x0,0xb(%ebp)
41039d:	e8 ea fe ff ff       	call   0x41028c
4103a2:	8b 07                	mov    (%edi),%eax
4103a4:	ff 75 10             	push   0x10(%ebp)
4103a7:	25 f8 01 00 00       	and    $0x1f8,%eax
4103ac:	3b c3                	cmp    %ebx,%eax
4103ae:	75 e2                	jne    0x410392
4103b0:	6a 08                	push   $0x8
4103b2:	8d 45 f0             	lea    -0x10(%ebp),%eax
4103b5:	50                   	push   %eax
4103b6:	56                   	push   %esi
4103b7:	e8 d0 fe ff ff       	call   0x41028c
4103bc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4103c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4103c3:	8b 55 0c             	mov    0xc(%ebp),%edx
4103c6:	c1 e0 02             	shl    $0x2,%eax
4103c9:	8b 0c 30             	mov    (%eax,%esi,1),%ecx
4103cc:	89 0c 10             	mov    %ecx,(%eax,%edx,1)
4103cf:	ff 45 fc             	incl   -0x4(%ebp)
4103d2:	83 7d fc 05          	cmpl   $0x5,-0x4(%ebp)
4103d6:	72 e8                	jb     0x4103c0
4103d8:	6a 04                	push   $0x4
4103da:	8d 45 fc             	lea    -0x4(%ebp),%eax
4103dd:	50                   	push   %eax
4103de:	e8 e5 c9 ff ff       	call   0x40cdc8
4103e3:	6a 04                	push   $0x4
4103e5:	8d 45 f8             	lea    -0x8(%ebp),%eax
4103e8:	50                   	push   %eax
4103e9:	e8 da c9 ff ff       	call   0x40cdc8
4103ee:	6a 40                	push   $0x40
4103f0:	8d 46 1c             	lea    0x1c(%esi),%eax
4103f3:	50                   	push   %eax
4103f4:	e8 cf c9 ff ff       	call   0x40cdc8
4103f9:	6a 14                	push   $0x14
4103fb:	56                   	push   %esi
4103fc:	e8 c7 c9 ff ff       	call   0x40cdc8
410401:	6a 08                	push   $0x8
410403:	57                   	push   %edi
410404:	e8 bf c9 ff ff       	call   0x40cdc8
410409:	6a 08                	push   $0x8
41040b:	8d 45 f0             	lea    -0x10(%ebp),%eax
41040e:	50                   	push   %eax
41040f:	e8 b4 c9 ff ff       	call   0x40cdc8
410414:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
410418:	5f                   	pop    %edi
410419:	5b                   	pop    %ebx
41041a:	74 10                	je     0x41042c
41041c:	6a 40                	push   $0x40
41041e:	6a 00                	push   $0x0
410420:	83 c6 5c             	add    $0x5c,%esi
410423:	56                   	push   %esi
410424:	e8 d7 9d 00 00       	call   0x41a200
410429:	83 c4 0c             	add    $0xc,%esp
41042c:	5e                   	pop    %esi
41042d:	c9                   	leave
41042e:	c2 0c 00             	ret    $0xc
410431:	8b 44 24 04          	mov    0x4(%esp),%eax
410435:	83 60 20 00          	andl   $0x0,0x20(%eax)
410439:	83 60 24 00          	andl   $0x0,0x24(%eax)
41043d:	c7 00 67 e6 09 6a    	movl   $0x6a09e667,(%eax)
410443:	c7 40 04 85 ae 67 bb 	movl   $0xbb67ae85,0x4(%eax)
41044a:	c7 40 08 72 f3 6e 3c 	movl   $0x3c6ef372,0x8(%eax)
410451:	c7 40 0c 3a f5 4f a5 	movl   $0xa54ff53a,0xc(%eax)
410458:	c7 40 10 7f 52 0e 51 	movl   $0x510e527f,0x10(%eax)
41045f:	c7 40 14 8c 68 05 9b 	movl   $0x9b05688c,0x14(%eax)
410466:	c7 40 18 ab d9 83 1f 	movl   $0x1f83d9ab,0x18(%eax)
41046d:	c7 40 1c 19 cd e0 5b 	movl   $0x5be0cd19,0x1c(%eax)
410474:	c2 04 00             	ret    $0x4
410477:	55                   	push   %ebp
410478:	8b ec                	mov    %esp,%ebp
41047a:	81 ec 24 01 00 00    	sub    $0x124,%esp
410480:	85 f6                	test   %esi,%esi
410482:	75 1e                	jne    0x4104a2
410484:	6a 20                	push   $0x20
410486:	8d 45 dc             	lea    -0x24(%ebp),%eax
410489:	50                   	push   %eax
41048a:	e8 39 c9 ff ff       	call   0x40cdc8
41048f:	68 00 01 00 00       	push   $0x100
410494:	8d 85 dc fe ff ff    	lea    -0x124(%ebp),%eax
41049a:	50                   	push   %eax
41049b:	e8 28 c9 ff ff       	call   0x40cdc8
4104a0:	c9                   	leave
4104a1:	c3                   	ret
4104a2:	8b 46 28             	mov    0x28(%esi),%eax
4104a5:	53                   	push   %ebx
4104a6:	57                   	push   %edi
4104a7:	ff 30                	push   (%eax)
4104a9:	e8 03 c8 00 00       	call   0x41ccb1
4104ae:	89 85 dc fe ff ff    	mov    %eax,-0x124(%ebp)
4104b4:	8b 46 28             	mov    0x28(%esi),%eax
4104b7:	83 c0 04             	add    $0x4,%eax
4104ba:	ff 30                	push   (%eax)