40fc69:	e8 8d 65 ff ff       	call   0x4061fb
40fc6e:	53                   	push   %ebx
40fc6f:	6a 66                	push   $0x66
40fc71:	56                   	push   %esi
40fc72:	e8 84 65 ff ff       	call   0x4061fb
40fc77:	a1 34 0d 44 00       	mov    0x440d34,%eax
40fc7c:	3b c3                	cmp    %ebx,%eax
40fc7e:	74 24                	je     0x40fca4
40fc80:	38 1d f2 0c 44 00    	cmp    %bl,0x440cf2
40fc86:	75 1c                	jne    0x40fca4
40fc88:	53                   	push   %ebx
40fc89:	6a 01                	push   $0x1
40fc8b:	68 11 01 00 00       	push   $0x111
40fc90:	56                   	push   %esi
40fc91:	83 f8 01             	cmp    $0x1,%eax
40fc94:	75 08                	jne    0x40fc9e
40fc96:	ff 15 04 a3 42 00    	call   *0x42a304
40fc9c:	eb 06                	jmp    0x40fca4
40fc9e:	ff 15 cc a2 42 00    	call   *0x42a2cc
40fca4:	38 1d f0 0c 44 00    	cmp    %bl,0x440cf0
40fcaa:	74 10                	je     0x40fcbc
40fcac:	68 90 00 00 00       	push   $0x90
40fcb1:	e8 36 c5 ff ff       	call   0x40c1ec
40fcb6:	50                   	push   %eax
40fcb7:	6a 01                	push   $0x1
40fcb9:	56                   	push   %esi
40fcba:	ff d7                	call   *%edi
40fcbc:	33 c0                	xor    %eax,%eax
40fcbe:	40                   	inc    %eax
40fcbf:	5f                   	pop    %edi
40fcc0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40fcc3:	5e                   	pop    %esi
40fcc4:	5b                   	pop    %ebx
40fcc5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40fccc:	c9                   	leave
40fccd:	c2 10 00             	ret    $0x10
40fcd0:	55                   	push   %ebp
40fcd1:	8b ec                	mov    %esp,%ebp
40fcd3:	83 ec 5c             	sub    $0x5c,%esp
40fcd6:	53                   	push   %ebx
40fcd7:	56                   	push   %esi
40fcd8:	57                   	push   %edi
40fcd9:	6a 01                	push   $0x1
40fcdb:	e8 f4 0e 00 00       	call   0x410bd4
40fce0:	33 db                	xor    %ebx,%ebx
40fce2:	53                   	push   %ebx
40fce3:	ff 15 54 a3 42 00    	call   *0x42a354
40fce9:	b9 78 ea 44 00       	mov    $0x44ea78,%ecx
40fcee:	e8 87 1e 00 00       	call   0x411b7a
40fcf3:	be 00 70 00 00       	mov    $0x7000,%esi
40fcf8:	56                   	push   %esi
40fcf9:	53                   	push   %ebx
40fcfa:	bf e0 9c 43 00       	mov    $0x439ce0,%edi
40fcff:	57                   	push   %edi
40fd00:	e8 fb a4 00 00       	call   0x41a200
40fd05:	83 c4 0c             	add    $0xc,%esp
40fd08:	ff 15 cc a0 42 00    	call   *0x42a0cc
40fd0e:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fd11:	3b c3                	cmp    %ebx,%eax
40fd13:	74 6f                	je     0x40fd84
40fd15:	50                   	push   %eax
40fd16:	e8 91 d7 ff ff       	call   0x40d4ac
40fd1b:	38 1d 39 0d 44 00    	cmp    %bl,0x440d39
40fd21:	74 53                	je     0x40fd76
40fd23:	68 ac aa 42 00       	push   $0x42aaac
40fd28:	53                   	push   %ebx
40fd29:	6a 04                	push   $0x4
40fd2b:	ff 15 dc a0 42 00    	call   *0x42a0dc
40fd31:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fd34:	3b c3                	cmp    %ebx,%eax
40fd36:	74 33                	je     0x40fd6b
40fd38:	56                   	push   %esi
40fd39:	53                   	push   %ebx
40fd3a:	53                   	push   %ebx
40fd3b:	6a 04                	push   $0x4
40fd3d:	50                   	push   %eax
40fd3e:	ff 15 c8 a0 42 00    	call   *0x42a0c8
40fd44:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fd47:	3b c3                	cmp    %ebx,%eax
40fd49:	74 17                	je     0x40fd62
40fd4b:	56                   	push   %esi
40fd4c:	50                   	push   %eax
40fd4d:	57                   	push   %edi
40fd4e:	e8 1d bf 00 00       	call   0x41bc70
40fd53:	83 c4 0c             	add    $0xc,%esp
40fd56:	57                   	push   %edi
40fd57:	68 7c ab 42 00       	push   $0x42ab7c
40fd5c:	ff 15 d8 a0 42 00    	call   *0x42a0d8
40fd62:	ff 75 fc             	push   -0x4(%ebp)
40fd65:	ff 15 c4 a0 42 00    	call   *0x42a0c4
40fd6b:	ff 75 f8             	push   -0x8(%ebp)
40fd6e:	ff 15 1c a2 42 00    	call   *0x42a21c
40fd74:	eb 0e                	jmp    0x40fd84
40fd76:	ff 75 f8             	push   -0x8(%ebp)
40fd79:	68 7c ab 42 00       	push   $0x42ab7c
40fd7e:	ff 15 d8 a0 42 00    	call   *0x42a0d8
40fd84:	68 00 08 00 00       	push   $0x800
40fd89:	be e0 8c 43 00       	mov    $0x438ce0,%esi
40fd8e:	56                   	push   %esi
40fd8f:	53                   	push   %ebx
40fd90:	ff 15 78 a0 42 00    	call   *0x42a078
40fd96:	56                   	push   %esi
40fd97:	68 6c ab 42 00       	push   $0x42ab6c
40fd9c:	ff 15 d8 a0 42 00    	call   *0x42a0d8
40fda2:	53                   	push   %ebx
40fda3:	ff 15 80 a0 42 00    	call   *0x42a080
40fda9:	8b f8                	mov    %eax,%edi
40fdab:	6a 64                	push   $0x64
40fdad:	57                   	push   %edi
40fdae:	89 3d 6c 2a 43 00    	mov    %edi,0x432a6c
40fdb4:	89 3d 70 2a 43 00    	mov    %edi,0x432a70
40fdba:	ff 15 c4 a2 42 00    	call   *0x42a2c4
40fdc0:	6a 65                	push   $0x65
40fdc2:	ff 35 70 2a 43 00    	push   0x432a70
40fdc8:	a3 dc 8c 43 00       	mov    %eax,0x438cdc
40fdcd:	ff 15 c8 a2 42 00    	call   *0x42a2c8
40fdd3:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40fdd6:	a3 d8 8c 43 00       	mov    %eax,0x438cd8
40fddb:	e8 5b 9c 00 00       	call   0x419a3b
40fde0:	56                   	push   %esi
40fde1:	b9 84 2a 43 00       	mov    $0x432a84,%ecx
40fde6:	e8 ea c3 ff ff       	call   0x40c1d5
40fdeb:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40fdee:	e8 43 8f 00 00       	call   0x418d36
40fdf3:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40fdf6:	e8 3b 8f 00 00       	call   0x418d36
40fdfb:	6a 64                	push   $0x64
40fdfd:	e8 a6 d2 ff ff       	call   0x40d0a8
40fe02:	6a 64                	push   $0x64
40fe04:	89 45 c0             	mov    %eax,-0x40(%ebp)
40fe07:	e8 9c d2 ff ff       	call   0x40d0a8
40fe0c:	53                   	push   %ebx
40fe0d:	68 48 f4 40 00       	push   $0x40f448
40fe12:	89 45 e8             	mov    %eax,-0x18(%ebp)
40fe15:	53                   	push   %ebx
40fe16:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40fe19:	a3 d4 7c 43 00       	mov    %eax,0x437cd4
40fe1e:	68 58 ab 42 00       	push   $0x42ab58
40fe23:	8d 45 cc             	lea    -0x34(%ebp),%eax
40fe26:	57                   	push   %edi
40fe27:	a3 d0 7c 43 00       	mov    %eax,0x437cd0
40fe2c:	ff 15 e0 a2 42 00    	call   *0x42a2e0
40fe32:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40fe35:	89 1d d0 7c 43 00    	mov    %ebx,0x437cd0
40fe3b:	89 1d d4 7c 43 00    	mov    %ebx,0x437cd4
40fe41:	e8 12 8f 00 00       	call   0x418d58
40fe46:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40fe49:	e8 0a 8f 00 00       	call   0x418d58
40fe4e:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40fe51:	e8 3f 9c 00 00       	call   0x419a95
40fe56:	38 1d 30 0d 44 00    	cmp    %bl,0x440d30
40fe5c:	74 05                	je     0x40fe63
40fe5e:	e8 b0 d8 ff ff       	call   0x40d713
40fe63:	b9 e0 c2 44 00       	mov    $0x44c2e0,%ecx
40fe68:	e8 a3 d0 ff ff       	call   0x40cf10
40fe6d:	39 1d 14 0d 44 00    	cmp    %ebx,0x440d14
40fe73:	76 0c                	jbe    0x40fe81
40fe75:	ff 35 08 0d 44 00    	push   0x440d08
40fe7b:	e8 62 a0 00 00       	call   0x419ee2
40fe80:	59                   	pop    %ecx
40fe81:	ff 35 dc 8c 43 00    	push   0x438cdc
40fe87:	8b 35 44 a0 42 00    	mov    0x42a044,%esi
40fe8d:	ff d6                	call   *%esi
40fe8f:	a1 d8 8c 43 00       	mov    0x438cd8,%eax
40fe94:	3b c3                	cmp    %ebx,%eax
40fe96:	74 03                	je     0x40fe9b
40fe98:	50                   	push   %eax
40fe99:	ff d6                	call   *%esi
40fe9b:	39 1d 74 2a 43 00    	cmp    %ebx,0x432a74
40fea1:	75 17                	jne    0x40feba
40fea3:	38 1d f2 0c 44 00    	cmp    %bl,0x440cf2
40fea9:	74 0f                	je     0x40feba
40feab:	68 ff 00 00 00       	push   $0xff
40feb0:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
40feb5:	e8 50 65 ff ff       	call   0x40640a
40feba:	a1 24 0d 44 00       	mov    0x440d24,%eax
40febf:	c6 05 f2 0c 44 00 01 	movb   $0x1,0x440cf2
40fec6:	3b c3                	cmp    %ebx,%eax
40fec8:	74 06                	je     0x40fed0
40feca:	50                   	push   %eax
40fecb:	e8 04 d8 ff ff       	call   0x40d6d4
40fed0:	a1 20 0d 44 00       	mov    0x440d20,%eax
40fed5:	3b c3                	cmp    %ebx,%eax
40fed7:	74 07                	je     0x40fee0
40fed9:	50                   	push   %eax
40feda:	ff 15 c0 a0 42 00    	call   *0x42a0c0
40fee0:	ff 15 58 a3 42 00    	call   *0x42a358
40fee6:	a1 1c 0d 44 00       	mov    0x440d1c,%eax
40feeb:	5f                   	pop    %edi
40feec:	5e                   	pop    %esi
40feed:	3b c3                	cmp    %ebx,%eax
40feef:	5b                   	pop    %ebx
40fef0:	77 05                	ja     0x40fef7
40fef2:	a1 74 2a 43 00       	mov    0x432a74,%eax
40fef7:	c9                   	leave
40fef8:	c2 10 00             	ret    $0x10
40fefb:	55                   	push   %ebp
40fefc:	8b ec                	mov    %esp,%ebp
40fefe:	83 ec 20             	sub    $0x20,%esp
40ff01:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
40ff05:	53                   	push   %ebx
40ff06:	56                   	push   %esi
40ff07:	57                   	push   %edi
40ff08:	74 13                	je     0x40ff1d
40ff0a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ff0d:	6a 40                	push   $0x40
40ff0f:	ff 75 10             	push   0x10(%ebp)
40ff12:	53                   	push   %ebx
40ff13:	e8 58 bd 00 00       	call   0x41bc70
40ff18:	83 c4 0c             	add    $0xc,%esp
40ff1b:	eb 03                	jmp    0x40ff20
40ff1d:	8b 5d 10             	mov    0x10(%ebp),%ebx
40ff20:	80 3d 38 ea 44 00 00 	cmpb   $0x0,0x44ea38
40ff27:	75 4c                	jne    0x40ff75
40ff29:	33 c9                	xor    %ecx,%ecx
40ff2b:	be fc e3 44 00       	mov    $0x44e3fc,%esi
40ff30:	8d 41 01             	lea    0x1(%ecx),%eax
40ff33:	99                   	cltd
40ff34:	6a 05                	push   $0x5
40ff36:	5f                   	pop    %edi
40ff37:	f7 ff                	idiv   %edi
40ff39:	8d 41 02             	lea    0x2(%ecx),%eax
40ff3c:	89 4e fc             	mov    %ecx,-0x4(%esi)
40ff3f:	89 16                	mov    %edx,(%esi)
40ff41:	99                   	cltd
40ff42:	f7 ff                	idiv   %edi
40ff44:	8d 41 03             	lea    0x3(%ecx),%eax
40ff47:	83 c6 14             	add    $0x14,%esi
40ff4a:	89 56 f0             	mov    %edx,-0x10(%esi)
40ff4d:	99                   	cltd
40ff4e:	f7 ff                	idiv   %edi
40ff50:	8d 41 04             	lea    0x4(%ecx),%eax
40ff53:	89 56 f4             	mov    %edx,-0xc(%esi)
40ff56:	99                   	cltd
40ff57:	f7 ff                	idiv   %edi
40ff59:	89 56 f8             	mov    %edx,-0x8(%esi)
40ff5c:	85 c9                	test   %ecx,%ecx
40ff5e:	74 03                	je     0x40ff63
40ff60:	49                   	dec    %ecx
40ff61:	eb 03                	jmp    0x40ff66
40ff63:	6a 04                	push   $0x4
40ff65:	59                   	pop    %ecx
40ff66:	81 fe 3c ea 44 00    	cmp    $0x44ea3c,%esi
40ff6c:	7c c2                	jl     0x40ff30
40ff6e:	c6 05 38 ea 44 00 01 	movb   $0x1,0x44ea38
40ff75:	8b 75 08             	mov    0x8(%ebp),%esi
40ff78:	6a 05                	push   $0x5
40ff7a:	59                   	pop    %ecx
40ff7b:	8d 7d e0             	lea    -0x20(%ebp),%edi
40ff7e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ff80:	b8 04 e4 44 00       	mov    $0x44e404,%eax
40ff85:	89 5d 14             	mov    %ebx,0x14(%ebp)
40ff88:	8b 75 14             	mov    0x14(%ebp),%esi
40ff8b:	8b 16                	mov    (%esi),%edx
40ff8d:	8b ca                	mov    %edx,%ecx
40ff8f:	c1 c9 08             	ror    $0x8,%ecx
40ff92:	81 e1 00 ff 00 ff    	and    $0xff00ff00,%ecx
40ff98:	c1 c2 08             	rol    $0x8,%edx
40ff9b:	81 e2 ff 00 ff 00    	and    $0xff00ff,%edx
40ffa1:	0b ca                	or     %edx,%ecx
40ffa3:	89 0e                	mov    %ecx,(%esi)
40ffa5:	8b 70 f8             	mov    -0x8(%eax),%esi
40ffa8:	8b 10                	mov    (%eax),%edx
40ffaa:	8b 54 95 e0          	mov    -0x20(%ebp,%edx,4),%edx
40ffae:	8b 78 fc             	mov    -0x4(%eax),%edi
40ffb1:	8b 7c bd e0          	mov    -0x20(%ebp,%edi,4),%edi
40ffb5:	83 45 14 04          	addl   $0x4,0x14(%ebp)
40ffb9:	8d 74 b5 e0          	lea    -0x20(%ebp,%esi,4),%esi
40ffbd:	89 75 10             	mov    %esi,0x10(%ebp)
40ffc0:	8b 70 04             	mov    0x4(%eax),%esi
40ffc3:	8d 74 b5 e0          	lea    -0x20(%ebp,%esi,4),%esi
40ffc7:	33 fa                	xor    %edx,%edi
40ffc9:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ffcc:	8b 70 f4             	mov    -0xc(%eax),%esi
40ffcf:	8b 74 b5 e0          	mov    -0x20(%ebp,%esi,4),%esi
40ffd3:	89 55 0c             	mov    %edx,0xc(%ebp)
40ffd6:	8b 55 10             	mov    0x10(%ebp),%edx
40ffd9:	23 3a                	and    (%edx),%edi
40ffdb:	c1 c6 05             	rol    $0x5,%esi
40ffde:	33 7d 0c             	xor    0xc(%ebp),%edi
40ffe1:	03 f1                	add    %ecx,%esi
40ffe3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ffe6:	8d 94 37 99 79 82 5a 	lea    0x5a827999(%edi,%esi,1),%edx
40ffed:	01 11                	add    %edx,(%ecx)
40ffef:	8b 4d 10             	mov    0x10(%ebp),%ecx
40fff2:	c1 09 02             	rorl   $0x2,(%ecx)
40fff5:	83 c0 14             	add    $0x14,%eax
40fff8:	ba 44 e5 44 00       	mov    $0x44e544,%edx
40fffd:	3b c2                	cmp    %edx,%eax
40ffff:	7c 87                	jl     0x40ff88
410001:	c7 45 14 10 00 00 00 	movl   $0x10,0x14(%ebp)
410008:	8b 45 14             	mov    0x14(%ebp),%eax
41000b:	8d 48 fd             	lea    -0x3(%eax),%ecx
41000e:	83 e0 0f             	and    $0xf,%eax
410011:	8d 34 83             	lea    (%ebx,%eax,4),%esi
410014:	8d 41 fb             	lea    -0x5(%ecx),%eax
410017:	83 e0 0f             	and    $0xf,%eax
41001a:	8b 04 83             	mov    (%ebx,%eax,4),%eax
41001d:	8d 79 05             	lea    0x5(%ecx),%edi
410020:	83 e7 0f             	and    $0xf,%edi
410023:	33 04 bb             	xor    (%ebx,%edi,4),%eax
410026:	83 e1 0f             	and    $0xf,%ecx
410029:	33 04 8b             	xor    (%ebx,%ecx,4),%eax
41002c:	33 06                	xor    (%esi),%eax
41002e:	d1 c0                	rol    $1,%eax
410030:	89 06                	mov    %eax,(%esi)
410032:	8b 72 f8             	mov    -0x8(%edx),%esi
410035:	8b 0a                	mov    (%edx),%ecx
410037:	8b 4c 8d e0          	mov    -0x20(%ebp,%ecx,4),%ecx
41003b:	8b 7a fc             	mov    -0x4(%edx),%edi
41003e:	8b 7c bd e0          	mov    -0x20(%ebp,%edi,4),%edi
410042:	8d 74 b5 e0          	lea    -0x20(%ebp,%esi,4),%esi
410046:	89 75 10             	mov    %esi,0x10(%ebp)
410049:	8b 72 04             	mov    0x4(%edx),%esi
41004c:	8d 74 b5 e0          	lea    -0x20(%ebp,%esi,4),%esi
410050:	33 f9                	xor    %ecx,%edi
410052:	89 75 fc             	mov    %esi,-0x4(%ebp)
410055:	8b 72 f4             	mov    -0xc(%edx),%esi
410058:	8b 74 b5 e0          	mov    -0x20(%ebp,%esi,4),%esi
41005c:	89 4d 0c             	mov    %ecx,0xc(%ebp)
41005f:	8b 4d 10             	mov    0x10(%ebp),%ecx
410062:	23 39                	and    (%ecx),%edi
410064:	c1 c6 05             	rol    $0x5,%esi
410067:	33 7d 0c             	xor    0xc(%ebp),%edi
41006a:	03 f0                	add    %eax,%esi
41006c:	8b 45 fc             	mov    -0x4(%ebp),%eax
41006f:	8d 8c 37 99 79 82 5a 	lea    0x5a827999(%edi,%esi,1),%ecx
410076:	01 08                	add    %ecx,(%eax)
410078:	8b 45 10             	mov    0x10(%ebp),%eax
41007b:	c1 08 02             	rorl   $0x2,(%eax)
41007e:	ff 45 14             	incl   0x14(%ebp)
410081:	83 c2 14             	add    $0x14,%edx
410084:	b8 94 e5 44 00       	mov    $0x44e594,%eax
410089:	3b d0                	cmp    %eax,%edx
41008b:	0f 8c 77 ff ff ff    	jl     0x410008
410091:	c7 45 14 14 00 00 00 	movl   $0x14,0x14(%ebp)
410098:	8b d0                	mov    %eax,%edx
41009a:	8b 45 14             	mov    0x14(%ebp),%eax
41009d:	8d 48 fd             	lea    -0x3(%eax),%ecx
4100a0:	83 e0 0f             	and    $0xf,%eax
4100a3:	8d 34 83             	lea    (%ebx,%eax,4),%esi
4100a6:	8d 41 fb             	lea    -0x5(%ecx),%eax
4100a9:	8d 79 05             	lea    0x5(%ecx),%edi
4100ac:	83 e0 0f             	and    $0xf,%eax
4100af:	8b 04 83             	mov    (%ebx,%eax,4),%eax
4100b2:	83 e1 0f             	and    $0xf,%ecx
4100b5:	83 e7 0f             	and    $0xf,%edi
4100b8:	33 04 bb             	xor    (%ebx,%edi,4),%eax
4100bb:	33 04 8b             	xor    (%ebx,%ecx,4),%eax
4100be:	33 06                	xor    (%esi),%eax