40ab32:	33 c0                	xor    %eax,%eax
40ab34:	eb 25                	jmp    0x40ab5b
40ab36:	53                   	push   %ebx
40ab37:	ff 15 88 03 4b 00    	call   *0x4b0388
40ab3d:	8b f0                	mov    %eax,%esi
40ab3f:	46                   	inc    %esi
40ab40:	8d 04 36             	lea    (%esi,%esi,1),%eax
40ab43:	83 c0 03             	add    $0x3,%eax
40ab46:	83 e0 fc             	and    $0xfffffffc,%eax
40ab49:	e8 a2 bb 00 00       	call   0x4166f0
40ab4e:	8b c4                	mov    %esp,%eax
40ab50:	ff 75 fc             	push   -0x4(%ebp)
40ab53:	56                   	push   %esi
40ab54:	53                   	push   %ebx
40ab55:	50                   	push   %eax
40ab56:	e8 5d b8 ff ff       	call   0x4063b8
40ab5b:	50                   	push   %eax
40ab5c:	ff 15 94 04 4b 00    	call   *0x4b0494
40ab62:	85 c0                	test   %eax,%eax
40ab64:	89 47 08             	mov    %eax,0x8(%edi)
40ab67:	75 05                	jne    0x40ab6e
40ab69:	e8 a9 a8 02 00       	call   0x435417
40ab6e:	8b c7                	mov    %edi,%eax
40ab70:	8d 65 f0             	lea    -0x10(%ebp),%esp
40ab73:	5f                   	pop    %edi
40ab74:	5e                   	pop    %esi
40ab75:	5b                   	pop    %ebx
40ab76:	c9                   	leave
40ab77:	c2 04 00             	ret    $0x4
40ab7a:	56                   	push   %esi
40ab7b:	8b f1                	mov    %ecx,%esi
40ab7d:	66 83 3e 11          	cmpw   $0x11,(%esi)
40ab81:	74 0c                	je     0x40ab8f
40ab83:	56                   	push   %esi
40ab84:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ab8a:	66 c7 06 11 00       	movw   $0x11,(%esi)
40ab8f:	8a 44 24 08          	mov    0x8(%esp),%al
40ab93:	88 46 08             	mov    %al,0x8(%esi)
40ab96:	8b c6                	mov    %esi,%eax
40ab98:	5e                   	pop    %esi
40ab99:	c2 04 00             	ret    $0x4
40ab9c:	56                   	push   %esi
40ab9d:	8b f1                	mov    %ecx,%esi
40ab9f:	66 8b 06             	mov    (%esi),%ax
40aba2:	66 3d 02 00          	cmp    $0x2,%ax
40aba6:	74 1e                	je     0x40abc6
40aba8:	66 3d 0b 00          	cmp    $0xb,%ax
40abac:	75 0c                	jne    0x40abba
40abae:	66 8b 44 24 08       	mov    0x8(%esp),%ax
40abb3:	66 f7 d8             	neg    %ax
40abb6:	1b c0                	sbb    %eax,%eax
40abb8:	eb 11                	jmp    0x40abcb
40abba:	56                   	push   %esi
40abbb:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40abc1:	66 c7 06 02 00       	movw   $0x2,(%esi)
40abc6:	66 8b 44 24 08       	mov    0x8(%esp),%ax
40abcb:	66 89 46 08          	mov    %ax,0x8(%esi)
40abcf:	8b c6                	mov    %esi,%eax
40abd1:	5e                   	pop    %esi
40abd2:	c2 04 00             	ret    $0x4
40abd5:	56                   	push   %esi
40abd6:	8b f1                	mov    %ecx,%esi
40abd8:	66 8b 06             	mov    (%esi),%ax
40abdb:	66 3d 03 00          	cmp    $0x3,%ax
40abdf:	74 26                	je     0x40ac07
40abe1:	66 3d 0a 00          	cmp    $0xa,%ax
40abe5:	74 20                	je     0x40ac07
40abe7:	66 3d 0b 00          	cmp    $0xb,%ax
40abeb:	75 0e                	jne    0x40abfb
40abed:	8b 44 24 08          	mov    0x8(%esp),%eax
40abf1:	f7 d8                	neg    %eax
40abf3:	1b c0                	sbb    %eax,%eax
40abf5:	66 89 46 08          	mov    %ax,0x8(%esi)
40abf9:	eb 13                	jmp    0x40ac0e
40abfb:	56                   	push   %esi
40abfc:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac02:	66 c7 06 03 00       	movw   $0x3,(%esi)
40ac07:	8b 44 24 08          	mov    0x8(%esp),%eax
40ac0b:	89 46 08             	mov    %eax,0x8(%esi)
40ac0e:	8b c6                	mov    %esi,%eax
40ac10:	5e                   	pop    %esi
40ac11:	c2 04 00             	ret    $0x4
40ac14:	56                   	push   %esi
40ac15:	8b f1                	mov    %ecx,%esi
40ac17:	66 83 3e 06          	cmpw   $0x6,(%esi)
40ac1b:	74 0c                	je     0x40ac29
40ac1d:	56                   	push   %esi
40ac1e:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac24:	66 c7 06 06 00       	movw   $0x6,(%esi)
40ac29:	8b 44 24 08          	mov    0x8(%esp),%eax
40ac2d:	8b 08                	mov    (%eax),%ecx
40ac2f:	89 4e 08             	mov    %ecx,0x8(%esi)
40ac32:	8b 40 04             	mov    0x4(%eax),%eax
40ac35:	89 46 0c             	mov    %eax,0xc(%esi)
40ac38:	8b c6                	mov    %esi,%eax
40ac3a:	5e                   	pop    %esi
40ac3b:	c2 04 00             	ret    $0x4
40ac3e:	56                   	push   %esi
40ac3f:	8b f1                	mov    %ecx,%esi
40ac41:	66 83 3e 04          	cmpw   $0x4,(%esi)
40ac45:	74 0c                	je     0x40ac53
40ac47:	56                   	push   %esi
40ac48:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac4e:	66 c7 06 04 00       	movw   $0x4,(%esi)
40ac53:	8b 44 24 08          	mov    0x8(%esp),%eax
40ac57:	89 46 08             	mov    %eax,0x8(%esi)
40ac5a:	8b c6                	mov    %esi,%eax
40ac5c:	5e                   	pop    %esi
40ac5d:	c2 04 00             	ret    $0x4
40ac60:	56                   	push   %esi
40ac61:	8b f1                	mov    %ecx,%esi
40ac63:	66 83 3e 05          	cmpw   $0x5,(%esi)
40ac67:	74 0c                	je     0x40ac75
40ac69:	56                   	push   %esi
40ac6a:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac70:	66 c7 06 05 00       	movw   $0x5,(%esi)
40ac75:	dd 44 24 08          	fldl   0x8(%esp)
40ac79:	8b c6                	mov    %esi,%eax
40ac7b:	dd 5e 08             	fstpl  0x8(%esi)
40ac7e:	5e                   	pop    %esi
40ac7f:	c2 08 00             	ret    $0x8
40ac82:	56                   	push   %esi
40ac83:	8b f1                	mov    %ecx,%esi
40ac85:	66 83 3e 07          	cmpw   $0x7,(%esi)
40ac89:	74 0c                	je     0x40ac97
40ac8b:	56                   	push   %esi
40ac8c:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac92:	66 c7 06 07 00       	movw   $0x7,(%esi)
40ac97:	8b 44 24 08          	mov    0x8(%esp),%eax
40ac9b:	dd 00                	fldl   (%eax)
40ac9d:	8b c6                	mov    %esi,%eax
40ac9f:	dd 5e 08             	fstpl  0x8(%esi)
40aca2:	5e                   	pop    %esi
40aca3:	c2 04 00             	ret    $0x4
40aca6:	53                   	push   %ebx
40aca7:	8b 5c 24 08          	mov    0x8(%esp),%ebx
40acab:	56                   	push   %esi
40acac:	57                   	push   %edi
40acad:	8b 7b 08             	mov    0x8(%ebx),%edi
40acb0:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40acb6:	8b f1                	mov    %ecx,%esi
40acb8:	7e 05                	jle    0x40acbf
40acba:	e8 58 a7 02 00       	call   0x435417
40acbf:	57                   	push   %edi
40acc0:	56                   	push   %esi
40acc1:	e8 57 f3 ff ff       	call   0x40a01d
40acc6:	57                   	push   %edi
40acc7:	ff 73 04             	push   0x4(%ebx)
40acca:	ff 76 08             	push   0x8(%esi)
40accd:	e8 f6 f3 ff ff       	call   0x40a0c8
40acd2:	5f                   	pop    %edi
40acd3:	8b c6                	mov    %esi,%eax
40acd5:	5e                   	pop    %esi
40acd6:	5b                   	pop    %ebx
40acd7:	c2 04 00             	ret    $0x4
40acda:	8b 44 24 04          	mov    0x4(%esp),%eax
40acde:	0f b7 08             	movzwl (%eax),%ecx
40ace1:	83 f9 0d             	cmp    $0xd,%ecx
40ace4:	77 3f                	ja     0x40ad25
40ace6:	ff 24 8d 2a ad 40 00 	jmp    *0x40ad2a(,%ecx,4)
40aced:	0f bf 40 08          	movswl 0x8(%eax),%eax
40acf1:	eb 2d                	jmp    0x40ad20
40acf3:	d9 40 08             	flds   0x8(%eax)
40acf6:	d8 0d 78 be 48 00    	fmuls  0x48be78
40acfc:	e8 eb c0 00 00       	call   0x416dec
40ad01:	eb 24                	jmp    0x40ad27
40ad03:	dd 40 08             	fldl   0x8(%eax)
40ad06:	dc 0d 70 be 48 00    	fmull  0x48be70
40ad0c:	e8 db c0 00 00       	call   0x416dec
40ad11:	eb 14                	jmp    0x40ad27
40ad13:	ff 70 08             	push   0x8(%eax)
40ad16:	e8 a2 54 03 00       	call   0x4401bd
40ad1b:	eb 0a                	jmp    0x40ad27
40ad1d:	8b 40 08             	mov    0x8(%eax),%eax
40ad20:	c1 e8 04             	shr    $0x4,%eax
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