40ad23:	eb 02                	jmp    0x40ad27
40ad25:	33 c0                	xor    %eax,%eax
40ad27:	c2 04 00             	ret    $0x4
40ad2a:	25 ad 40 00 25       	and    $0x250040ad,%eax
40ad2f:	ad                   	lods   %ds:(%esi),%eax
40ad30:	40                   	inc    %eax
40ad31:	00 ed                	add    %ch,%ch
40ad33:	ac                   	lods   %ds:(%esi),%al
40ad34:	40                   	inc    %eax
40ad35:	00 1d ad 40 00 f3    	add    %bl,0xf30040ad
40ad3b:	ac                   	lods   %ds:(%esi),%al
40ad3c:	40                   	inc    %eax
40ad3d:	00 03                	add    %al,(%ebx)
40ad3f:	ad                   	lods   %ds:(%esi),%eax
40ad40:	40                   	inc    %eax
40ad41:	00 03                	add    %al,(%ebx)
40ad43:	ad                   	lods   %ds:(%esi),%eax
40ad44:	40                   	inc    %eax
40ad45:	00 03                	add    %al,(%ebx)
40ad47:	ad                   	lods   %ds:(%esi),%eax
40ad48:	40                   	inc    %eax
40ad49:	00 13                	add    %dl,(%ebx)
40ad4b:	ad                   	lods   %ds:(%esi),%eax
40ad4c:	40                   	inc    %eax
40ad4d:	00 1d ad 40 00 1d    	add    %bl,0x1d0040ad
40ad53:	ad                   	lods   %ds:(%esi),%eax
40ad54:	40                   	inc    %eax
40ad55:	00 ed                	add    %ch,%ch
40ad57:	ac                   	lods   %ds:(%esi),%al
40ad58:	40                   	inc    %eax
40ad59:	00 25 ad 40 00 1d    	add    %ah,0x1d0040ad
40ad5f:	ad                   	lods   %ds:(%esi),%eax
40ad60:	40                   	inc    %eax
40ad61:	00 8b c1 8b 4c 24    	add    %cl,0x244c8bc1(%ebx)
40ad67:	04 83                	add    $0x83,%al
40ad69:	60                   	pusha
40ad6a:	08 00                	or     %al,(%eax)
40ad6c:	89 08                	mov    %ecx,(%eax)
40ad6e:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40ad72:	89 48 04             	mov    %ecx,0x4(%eax)
40ad75:	c2 08 00             	ret    $0x8
40ad78:	b8 c5 30 48 00       	mov    $0x4830c5,%eax
40ad7d:	e8 fa ce 00 00       	call   0x417c7c
40ad82:	83 ec 18             	sub    $0x18,%esp
40ad85:	8b 45 08             	mov    0x8(%ebp),%eax
40ad88:	66 83 38 06          	cmpw   $0x6,(%eax)
40ad8c:	53                   	push   %ebx
40ad8d:	56                   	push   %esi
40ad8e:	57                   	push   %edi
40ad8f:	8b f1                	mov    %ecx,%esi
40ad91:	89 65 f0             	mov    %esp,-0x10(%ebp)
40ad94:	89 75 ec             	mov    %esi,-0x14(%ebp)
40ad97:	74 5b                	je     0x40adf4
40ad99:	33 ff                	xor    %edi,%edi
40ad9b:	50                   	push   %eax
40ad9c:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40ad9f:	89 7d fc             	mov    %edi,-0x4(%ebp)
40ada2:	e8 e7 fa ff ff       	call   0x40a88e
40ada7:	57                   	push   %edi
40ada8:	6a 06                	push   $0x6
40adaa:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40adad:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40adb1:	e8 d9 f3 ff ff       	call   0x40a18f
40adb6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40adb9:	89 06                	mov    %eax,(%esi)
40adbb:	8b 45 e8             	mov    -0x18(%ebp),%eax
40adbe:	89 46 04             	mov    %eax,0x4(%esi)
40adc1:	8d 45 dc             	lea    -0x24(%ebp),%eax
40adc4:	50                   	push   %eax
40adc5:	89 7e 08             	mov    %edi,0x8(%esi)
40adc8:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40adce:	eb 33                	jmp    0x40ae03
40add0:	8b 45 ec             	mov    -0x14(%ebp),%eax
40add3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40add6:	33 ff                	xor    %edi,%edi
40add8:	89 38                	mov    %edi,(%eax)
40adda:	89 78 04             	mov    %edi,0x4(%eax)
40addd:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%eax)
40ade4:	e8 30 51 03 00       	call   0x43ff19
40ade9:	b8 ef ad 40 00       	mov    $0x40adef,%eax
40adee:	c3                   	ret
40adef:	8b 75 ec             	mov    -0x14(%ebp),%esi
40adf2:	eb 0f                	jmp    0x40ae03
40adf4:	8b 48 08             	mov    0x8(%eax),%ecx
40adf7:	89 0e                	mov    %ecx,(%esi)
40adf9:	8b 40 0c             	mov    0xc(%eax),%eax
40adfc:	83 66 08 00          	andl   $0x0,0x8(%esi)
40ae00:	89 46 04             	mov    %eax,0x4(%esi)
40ae03:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ae06:	5f                   	pop    %edi
40ae07:	8b c6                	mov    %esi,%eax
40ae09:	5e                   	pop    %esi
40ae0a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ae11:	5b                   	pop    %ebx
40ae12:	c9                   	leave
40ae13:	c2 04 00             	ret    $0x4
40ae16:	56                   	push   %esi
40ae17:	57                   	push   %edi
40ae18:	8b f1                	mov    %ecx,%esi
40ae1a:	56                   	push   %esi
40ae1b:	e8 fe f8 ff ff       	call   0x40a71e
40ae20:	8b 44 24 10          	mov    0x10(%esp),%eax
40ae24:	8d 7e 08             	lea    0x8(%esi),%edi
40ae27:	57                   	push   %edi
40ae28:	ff 74 24 10          	push   0x10(%esp)
40ae2c:	66 0d 00 20          	or     $0x2000,%ax
40ae30:	66 89 06             	mov    %ax,(%esi)
40ae33:	ff 15 bc 04 4b 00    	call   *0x4b04bc
40ae39:	50                   	push   %eax
40ae3a:	e8 55 ef ff ff       	call   0x409d94
40ae3f:	ff 37                	push   (%edi)
40ae41:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40ae47:	ff 37                	push   (%edi)
40ae49:	89 46 14             	mov    %eax,0x14(%esi)
40ae4c:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40ae52:	89 46 10             	mov    %eax,0x10(%esi)
40ae55:	5f                   	pop    %edi
40ae56:	8b c6                	mov    %esi,%eax
40ae58:	5e                   	pop    %esi
40ae59:	c2 08 00             	ret    $0x8
40ae5c:	56                   	push   %esi
40ae5d:	57                   	push   %edi
40ae5e:	8b f1                	mov    %ecx,%esi
40ae60:	56                   	push   %esi
40ae61:	e8 b8 f8 ff ff       	call   0x40a71e
40ae66:	8b 44 24 10          	mov    0x10(%esp),%eax
40ae6a:	8d 7e 08             	lea    0x8(%esi),%edi
40ae6d:	57                   	push   %edi
40ae6e:	ff 74 24 10          	push   0x10(%esp)
40ae72:	66 0d 00 20          	or     $0x2000,%ax
40ae76:	66 89 06             	mov    %ax,(%esi)
40ae79:	ff 15 bc 04 4b 00    	call   *0x4b04bc
40ae7f:	50                   	push   %eax
40ae80:	e8 0f ef ff ff       	call   0x409d94
40ae85:	ff 37                	push   (%edi)
40ae87:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40ae8d:	ff 37                	push   (%edi)
40ae8f:	89 46 14             	mov    %eax,0x14(%esi)
40ae92:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40ae98:	89 46 10             	mov    %eax,0x10(%esi)
40ae9b:	5f                   	pop    %edi
40ae9c:	8b c6                	mov    %esi,%eax
40ae9e:	5e                   	pop    %esi
40ae9f:	c2 08 00             	ret    $0x8
40aea2:	56                   	push   %esi
40aea3:	8b f1                	mov    %ecx,%esi
40aea5:	56                   	push   %esi
40aea6:	e8 73 f8 ff ff       	call   0x40a71e
40aeab:	ff 74 24 08          	push   0x8(%esp)
40aeaf:	8b ce                	mov    %esi,%ecx
40aeb1:	e8 ef f5 ff ff       	call   0x40a4a5
40aeb6:	ff 76 08             	push   0x8(%esi)
40aeb9:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40aebf:	ff 76 08             	push   0x8(%esi)
40aec2:	89 46 14             	mov    %eax,0x14(%esi)
40aec5:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40aecb:	89 46 10             	mov    %eax,0x10(%esi)
40aece:	8b c6                	mov    %esi,%eax
40aed0:	5e                   	pop    %esi
40aed1:	c2 04 00             	ret    $0x4
40aed4:	56                   	push   %esi
40aed5:	8b f1                	mov    %ecx,%esi
40aed7:	56                   	push   %esi
40aed8:	e8 41 f8 ff ff       	call   0x40a71e
40aedd:	ff 74 24 08          	push   0x8(%esp)
40aee1:	8b ce                	mov    %esi,%ecx
40aee3:	e8 e3 f5 ff ff       	call   0x40a4cb
40aee8:	ff 76 08             	push   0x8(%esi)
40aeeb:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40aef1:	ff 76 08             	push   0x8(%esi)
40aef4:	89 46 14             	mov    %eax,0x14(%esi)
40aef7:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40aefd:	89 46 10             	mov    %eax,0x10(%esi)
40af00:	8b c6                	mov    %esi,%eax
40af02:	5e                   	pop    %esi
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