40af03:	c2 04 00             	ret    $0x4
40af06:	56                   	push   %esi
40af07:	8b f1                	mov    %ecx,%esi
40af09:	56                   	push   %esi
40af0a:	e8 0f f8 ff ff       	call   0x40a71e
40af0f:	ff 74 24 08          	push   0x8(%esp)
40af13:	8b ce                	mov    %esi,%ecx
40af15:	e8 fd f5 ff ff       	call   0x40a517
40af1a:	ff 76 08             	push   0x8(%esi)
40af1d:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40af23:	ff 76 08             	push   0x8(%esi)
40af26:	89 46 14             	mov    %eax,0x14(%esi)
40af29:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40af2f:	89 46 10             	mov    %eax,0x10(%esi)
40af32:	8b c6                	mov    %esi,%eax
40af34:	5e                   	pop    %esi
40af35:	c2 04 00             	ret    $0x4
40af38:	56                   	push   %esi
40af39:	8b f1                	mov    %ecx,%esi
40af3b:	56                   	push   %esi
40af3c:	e8 dd f7 ff ff       	call   0x40a71e
40af41:	ff 74 24 08          	push   0x8(%esp)
40af45:	8b ce                	mov    %esi,%ecx
40af47:	e8 a5 f5 ff ff       	call   0x40a4f1
40af4c:	ff 76 08             	push   0x8(%esi)
40af4f:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40af55:	ff 76 08             	push   0x8(%esi)
40af58:	89 46 14             	mov    %eax,0x14(%esi)
40af5b:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40af61:	89 46 10             	mov    %eax,0x10(%esi)
40af64:	8b c6                	mov    %esi,%eax
40af66:	5e                   	pop    %esi
40af67:	c2 04 00             	ret    $0x4
40af6a:	56                   	push   %esi
40af6b:	8b 74 24 08          	mov    0x8(%esp),%esi
40af6f:	f6 46 01 20          	testb  $0x20,0x1(%esi)
40af73:	57                   	push   %edi
40af74:	8b f9                	mov    %ecx,%edi
40af76:	75 05                	jne    0x40af7d
40af78:	e8 ce a4 02 00       	call   0x43544b
40af7d:	57                   	push   %edi
40af7e:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40af84:	6a 10                	push   $0x10
40af86:	56                   	push   %esi
40af87:	57                   	push   %edi
40af88:	e8 e3 c8 00 00       	call   0x417870
40af8d:	66 83 26 00          	andw   $0x0,(%esi)
40af91:	83 c4 0c             	add    $0xc,%esp
40af94:	5f                   	pop    %edi
40af95:	5e                   	pop    %esi
40af96:	c2 04 00             	ret    $0x4
40af99:	55                   	push   %ebp
40af9a:	8b ec                	mov    %esp,%ebp
40af9c:	83 ec 0c             	sub    $0xc,%esp
40af9f:	57                   	push   %edi
40afa0:	8d 45 f4             	lea    -0xc(%ebp),%eax
40afa3:	8b f9                	mov    %ecx,%edi
40afa5:	50                   	push   %eax
40afa6:	ff 77 08             	push   0x8(%edi)
40afa9:	ff 15 e4 04 4b 00    	call   *0x4b04e4
40afaf:	50                   	push   %eax
40afb0:	e8 df ed ff ff       	call   0x409d94
40afb5:	ff 77 08             	push   0x8(%edi)
40afb8:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40afbe:	83 f8 01             	cmp    $0x1,%eax
40afc1:	75 55                	jne    0x40b018
40afc3:	53                   	push   %ebx
40afc4:	56                   	push   %esi
40afc5:	8d 45 f8             	lea    -0x8(%ebp),%eax
40afc8:	50                   	push   %eax
40afc9:	6a 00                	push   $0x0
40afcb:	ff 77 08             	push   0x8(%edi)
40afce:	ff 15 dc 04 4b 00    	call   *0x4b04dc
40afd4:	8d 45 fc             	lea    -0x4(%ebp),%eax
40afd7:	50                   	push   %eax
40afd8:	6a 00                	push   $0x0
40afda:	ff 77 08             	push   0x8(%edi)
40afdd:	ff 15 e0 04 4b 00    	call   *0x4b04e0
40afe3:	8b 75 fc             	mov    -0x4(%ebp),%esi
40afe6:	2b 75 f8             	sub    -0x8(%ebp),%esi
40afe9:	ff 77 08             	push   0x8(%edi)
40afec:	46                   	inc    %esi
40afed:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40aff3:	8b d8                	mov    %eax,%ebx
40aff5:	0f af de             	imul   %esi,%ebx
40aff8:	8b 75 08             	mov    0x8(%ebp),%esi
40affb:	6a ff                	push   $0xffffffff
40affd:	53                   	push   %ebx
40affe:	8b ce                	mov    %esi,%ecx
40b000:	e8 aa 18 03 00       	call   0x43c8af
40b005:	53                   	push   %ebx
40b006:	ff 75 f4             	push   -0xc(%ebp)
40b009:	ff 76 04             	push   0x4(%esi)
40b00c:	e8 5f c8 00 00       	call   0x417870
40b011:	83 c4 0c             	add    $0xc,%esp
40b014:	5e                   	pop    %esi
40b015:	5b                   	pop    %ebx
40b016:	eb 0c                	jmp    0x40b024
40b018:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b01b:	6a ff                	push   $0xffffffff
40b01d:	6a 00                	push   $0x0
40b01f:	e8 8b 18 03 00       	call   0x43c8af
40b024:	ff 77 08             	push   0x8(%edi)
40b027:	ff 15 e8 04 4b 00    	call   *0x4b04e8
40b02d:	5f                   	pop    %edi
40b02e:	c9                   	leave
40b02f:	c2 04 00             	ret    $0x4
40b032:	55                   	push   %ebp
40b033:	8b ec                	mov    %esp,%ebp
40b035:	51                   	push   %ecx
40b036:	51                   	push   %ecx
40b037:	56                   	push   %esi
40b038:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b03b:	50                   	push   %eax
40b03c:	6a 01                	push   $0x1
40b03e:	8b f1                	mov    %ecx,%esi
40b040:	e8 0b f6 ff ff       	call   0x40a650
40b045:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b048:	50                   	push   %eax
40b049:	6a 01                	push   $0x1
40b04b:	8b ce                	mov    %esi,%ecx
40b04d:	e8 e4 f5 ff ff       	call   0x40a636
40b052:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b055:	2b 45 f8             	sub    -0x8(%ebp),%eax
40b058:	5e                   	pop    %esi
40b059:	40                   	inc    %eax
40b05a:	c9                   	leave
40b05b:	c3                   	ret
40b05c:	55                   	push   %ebp
40b05d:	8b ec                	mov    %esp,%ebp
40b05f:	51                   	push   %ecx
40b060:	51                   	push   %ecx
40b061:	56                   	push   %esi
40b062:	8b f1                	mov    %ecx,%esi
40b064:	ff 76 08             	push   0x8(%esi)
40b067:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40b06d:	83 f8 01             	cmp    $0x1,%eax
40b070:	74 05                	je     0x40b077
40b072:	e8 d4 a3 02 00       	call   0x43544b
40b077:	8b 45 08             	mov    0x8(%ebp),%eax
40b07a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b07e:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b081:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b084:	50                   	push   %eax
40b085:	8b ce                	mov    %esi,%ecx
40b087:	e8 2c f6 ff ff       	call   0x40a6b8
40b08c:	5e                   	pop    %esi
40b08d:	c9                   	leave
40b08e:	c2 04 00             	ret    $0x4
40b091:	53                   	push   %ebx
40b092:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40b096:	85 db                	test   %ebx,%ebx
40b098:	56                   	push   %esi
40b099:	57                   	push   %edi
40b09a:	8b f1                	mov    %ecx,%esi
40b09c:	74 57                	je     0x40b0f5
40b09e:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
40b0a3:	74 50                	je     0x40b0f5
40b0a5:	8b 7c 24 10          	mov    0x10(%esp),%edi
40b0a9:	66 f7 c7 00 70       	test   $0x7000,%di
40b0ae:	75 45                	jne    0x40b0f5
40b0b0:	66 85 ff             	test   %di,%di
40b0b3:	74 40                	je     0x40b0f5
40b0b5:	66 83 ff 01          	cmp    $0x1,%di
40b0b9:	74 3a                	je     0x40b0f5
40b0bb:	56                   	push   %esi
40b0bc:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40b0c2:	ff 74 24 18          	push   0x18(%esp)
40b0c6:	53                   	push   %ebx
40b0c7:	57                   	push   %edi
40b0c8:	ff 15 d0 04 4b 00    	call   *0x4b04d0
40b0ce:	85 c0                	test   %eax,%eax
40b0d0:	89 46 08             	mov    %eax,0x8(%esi)
40b0d3:	75 05                	jne    0x40b0da
40b0d5:	e8 3d a3 02 00       	call   0x435417
40b0da:	66 81 cf 00 20       	or     $0x2000,%di
40b0df:	50                   	push   %eax
40b0e0:	66 89 3e             	mov    %di,(%esi)
40b0e3:	89 5e 14             	mov    %ebx,0x14(%esi)
40b0e6:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40b0ec:	5f                   	pop    %edi
40b0ed:	89 46 10             	mov    %eax,0x10(%esi)
40b0f0:	5e                   	pop    %esi
40b0f1:	5b                   	pop    %ebx
40b0f2:	c2 0c 00             	ret    $0xc
40b0f5:	e8 51 a3 02 00       	call   0x43544b
40b0fa:	cc                   	int3
40b0fb:	56                   	push   %esi
40b0fc:	8b f1                	mov    %ecx,%esi
40b0fe:	8b 46 18             	mov    0x18(%esi),%eax
40b101:	f7 d0                	not    %eax
40b103:	a8 01                	test   $0x1,%al
40b105:	75 0a                	jne    0x40b111
40b107:	ff 76 14             	push   0x14(%esi)
40b10a:	6a 02                	push   $0x2
40b10c:	e8 4a 60 04 00       	call   0x45115b
40b111:	8b 46 28             	mov    0x28(%esi),%eax
40b114:	40                   	inc    %eax
40b115:	3b 46 2c             	cmp    0x2c(%esi),%eax
40b118:	76 07                	jbe    0x40b121
40b11a:	8b ce                	mov    %esi,%ecx
40b11c:	e8 35 57 04 00       	call   0x450856
40b121:	8b 46 28             	mov    0x28(%esi),%eax
40b124:	8a 4c 24 08          	mov    0x8(%esp),%cl
40b128:	88 08                	mov    %cl,(%eax)
40b12a:	ff 46 28             	incl   0x28(%esi)
40b12d:	8b c6                	mov    %esi,%eax
40b12f:	5e                   	pop    %esi
40b130:	c2 04 00             	ret    $0x4
40b133:	56                   	push   %esi
40b134:	8b f1                	mov    %ecx,%esi
40b136:	8b 46 18             	mov    0x18(%esi),%eax
40b139:	f7 d0                	not    %eax
40b13b:	a8 01                	test   $0x1,%al
40b13d:	75 0a                	jne    0x40b149
40b13f:	ff 76 14             	push   0x14(%esi)
40b142:	6a 02                	push   $0x2
40b144:	e8 12 60 04 00       	call   0x45115b
40b149:	8b 46 28             	mov    0x28(%esi),%eax
40b14c:	83 c0 08             	add    $0x8,%eax
40b14f:	3b 46 2c             	cmp    0x2c(%esi),%eax
40b152:	76 07                	jbe    0x40b15b
40b154:	8b ce                	mov    %esi,%ecx
40b156:	e8 fb 56 04 00       	call   0x450856
40b15b:	8b 46 28             	mov    0x28(%esi),%eax
40b15e:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b162:	89 08                	mov    %ecx,(%eax)
40b164:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40b168:	89 48 04             	mov    %ecx,0x4(%eax)
40b16b:	83 46 28 08          	addl   $0x8,0x28(%esi)
40b16f:	8b c6                	mov    %esi,%eax
40b171:	5e                   	pop    %esi
40b172:	c2 08 00             	ret    $0x8
40b175:	56                   	push   %esi
40b176:	8b f1                	mov    %ecx,%esi
40b178:	8b 46 18             	mov    0x18(%esi),%eax
40b17b:	f7 d0                	not    %eax
40b17d:	a8 01                	test   $0x1,%al
40b17f:	75 0a                	jne    0x40b18b
40b181:	ff 76 14             	push   0x14(%esi)
40b184:	6a 02                	push   $0x2
40b186:	e8 d0 5f 04 00       	call   0x45115b
40b18b:	8b 46 28             	mov    0x28(%esi),%eax
40b18e:	83 c0 08             	add    $0x8,%eax
40b191:	3b 46 2c             	cmp    0x2c(%esi),%eax
40b194:	76 07                	jbe    0x40b19d
40b196:	8b ce                	mov    %esi,%ecx
40b198:	e8 b9 56 04 00       	call   0x450856
40b19d:	8b 46 28             	mov    0x28(%esi),%eax
40b1a0:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b1a4:	89 08                	mov    %ecx,(%eax)
40b1a6:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40b1aa:	89 48 04             	mov    %ecx,0x4(%eax)
40b1ad:	83 46 28 08          	addl   $0x8,0x28(%esi)
40b1b1:	8b c6                	mov    %esi,%eax
40b1b3:	5e                   	pop    %esi
40b1b4:	c2 08 00             	ret    $0x8
40b1b7:	56                   	push   %esi
40b1b8:	8b f1                	mov    %ecx,%esi
40b1ba:	8b 46 18             	mov    0x18(%esi),%eax
40b1bd:	f7 d0                	not    %eax
40b1bf:	a8 01                	test   $0x1,%al
40b1c1:	75 0a                	jne    0x40b1cd
40b1c3:	ff 76 14             	push   0x14(%esi)
40b1c6:	6a 02                	push   $0x2
40b1c8:	e8 8e 5f 04 00       	call   0x45115b
40b1cd:	8b 46 28             	mov    0x28(%esi),%eax
40b1d0:	40                   	inc    %eax
40b1d1:	40                   	inc    %eax
40b1d2:	3b 46 2c             	cmp    0x2c(%esi),%eax
40b1d5:	76 07                	jbe    0x40b1de
40b1d7:	8b ce                	mov    %esi,%ecx
40b1d9:	e8 78 56 04 00       	call   0x450856
40b1de:	8b 46 28             	mov    0x28(%esi),%eax
40b1e1:	66 8b 4c 24 08       	mov    0x8(%esp),%cx
40b1e6:	66 89 08             	mov    %cx,(%eax)
40b1e9:	83 46 28 02          	addl   $0x2,0x28(%esi)
40b1ed:	8b c6                	mov    %esi,%eax
40b1ef:	5e                   	pop    %esi
40b1f0:	c2 04 00             	ret    $0x4
40b1f3:	56                   	push   %esi
40b1f4:	8b f1                	mov    %ecx,%esi
40b1f6:	8b 46 18             	mov    0x18(%esi),%eax
40b1f9:	f7 d0                	not    %eax
40b1fb:	a8 01                	test   $0x1,%al
40b1fd:	75 0a                	jne    0x40b209
40b1ff:	ff 76 14             	push   0x14(%esi)
40b202:	6a 02                	push   $0x2
40b204:	e8 52 5f 04 00       	call   0x45115b
40b209:	8b 46 28             	mov    0x28(%esi),%eax
40b20c:	83 c0 04             	add    $0x4,%eax
40b20f:	3b 46 2c             	cmp    0x2c(%esi),%eax
40b212:	76 07                	jbe    0x40b21b
40b214:	8b ce                	mov    %esi,%ecx
40b216:	e8 3b 56 04 00       	call   0x450856
40b21b:	8b 46 28             	mov    0x28(%esi),%eax
40b21e:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b222:	89 08                	mov    %ecx,(%eax)
40b224:	83 46 28 04          	addl   $0x4,0x28(%esi)
40b228:	8b c6                	mov    %esi,%eax
40b22a:	5e                   	pop    %esi
40b22b:	c2 04 00             	ret    $0x4
40b22e:	56                   	push   %esi
40b22f:	8b f1                	mov    %ecx,%esi
40b231:	8b 46 18             	mov    0x18(%esi),%eax
40b234:	f7 d0                	not    %eax
40b236:	a8 01                	test   $0x1,%al
40b238:	75 0a                	jne    0x40b244
40b23a:	ff 76 14             	push   0x14(%esi)
40b23d:	6a 02                	push   $0x2
40b23f:	e8 17 5f 04 00       	call   0x45115b
40b244:	8b 46 28             	mov    0x28(%esi),%eax
40b247:	83 c0 04             	add    $0x4,%eax
40b24a:	3b 46 2c             	cmp    0x2c(%esi),%eax
40b24d:	76 07                	jbe    0x40b256
40b24f:	8b ce                	mov    %esi,%ecx
40b251:	e8 00 56 04 00       	call   0x450856
40b256:	8b 46 28             	mov    0x28(%esi),%eax
40b259:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b25d:	89 08                	mov    %ecx,(%eax)
40b25f:	83 46 28 04          	addl   $0x4,0x28(%esi)
40b263:	8b c6                	mov    %esi,%eax
40b265:	5e                   	pop    %esi
40b266:	c2 04 00             	ret    $0x4
40b269:	56                   	push   %esi
40b26a:	8b f1                	mov    %ecx,%esi
40b26c:	8b 46 18             	mov    0x18(%esi),%eax
40b26f:	f7 d0                	not    %eax
40b271:	a8 01                	test   $0x1,%al
40b273:	75 0a                	jne    0x40b27f
40b275:	ff 76 14             	push   0x14(%esi)
40b278:	6a 02                	push   $0x2
40b27a:	e8 dc 5e 04 00       	call   0x45115b
40b27f:	8b 46 28             	mov    0x28(%esi),%eax
40b282:	83 c0 04             	add    $0x4,%eax
40b285:	3b 46 2c             	cmp    0x2c(%esi),%eax
40b288:	76 07                	jbe    0x40b291
40b28a:	8b ce                	mov    %esi,%ecx
40b28c:	e8 c5 55 04 00       	call   0x450856
40b291:	8b 46 28             	mov    0x28(%esi),%eax
40b294:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b298:	89 08                	mov    %ecx,(%eax)
40b29a:	83 46 28 04          	addl   $0x4,0x28(%esi)
40b29e:	8b c6                	mov    %esi,%eax
40b2a0:	5e                   	pop    %esi
40b2a1:	c2 04 00             	ret    $0x4
40b2a4:	56                   	push   %esi
40b2a5:	8b f1                	mov    %ecx,%esi
40b2a7:	8b 46 18             	mov    0x18(%esi),%eax
40b2aa:	f7 d0                	not    %eax