43f82d:	8b 75 08             	mov    0x8(%ebp),%esi
43f830:	8b 46 0c             	mov    0xc(%esi),%eax
43f833:	83 f8 01             	cmp    $0x1,%eax
43f836:	74 09                	je     0x43f841
43f838:	83 f8 02             	cmp    $0x2,%eax
43f83b:	0f 85 cf 9f fc ff    	jne    0x409810
43f841:	8b ce                	mov    %esi,%ecx
43f843:	e8 fe a4 fc ff       	call   0x409d46
43f848:	01 03                	add    %eax,(%ebx)
43f84a:	11 53 04             	adc    %edx,0x4(%ebx)
43f84d:	e9 38 9f fc ff       	jmp    0x40978a
43f852:	8b 75 08             	mov    0x8(%ebp),%esi
43f855:	83 7e 0c 0b          	cmpl   $0xb,0xc(%esi)
43f859:	0f 85 b1 9f fc ff    	jne    0x409810
43f85f:	8b ce                	mov    %esi,%ecx
43f861:	e8 7c 91 02 00       	call   0x4689e2
43f866:	8b 0b                	mov    (%ebx),%ecx
43f868:	8b f8                	mov    %eax,%edi
43f86a:	03 39                	add    (%ecx),%edi
43f86c:	57                   	push   %edi
43f86d:	e8 84 17 fe ff       	call   0x420ff6
43f872:	8b 0b                	mov    (%ebx),%ecx
43f874:	8b f0                	mov    %eax,%esi
43f876:	ff 31                	push   (%ecx)
43f878:	ff 71 04             	push   0x4(%ecx)
43f87b:	56                   	push   %esi
43f87c:	e8 ff 17 fe ff       	call   0x421080
43f881:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f884:	83 c4 10             	add    $0x10,%esp
43f887:	e8 56 91 02 00       	call   0x4689e2
43f88c:	50                   	push   %eax
43f88d:	e8 0d 91 02 00       	call   0x46899f
43f892:	50                   	push   %eax
43f893:	8b 03                	mov    (%ebx),%eax
43f895:	8b 00                	mov    (%eax),%eax
43f897:	03 c6                	add    %esi,%eax
43f899:	50                   	push   %eax
43f89a:	e8 e1 17 fe ff       	call   0x421080
43f89f:	8b 03                	mov    (%ebx),%eax
43f8a1:	ff 70 04             	push   0x4(%eax)
43f8a4:	e8 c3 17 fe ff       	call   0x42106c
43f8a9:	8b 03                	mov    (%ebx),%eax
43f8ab:	83 c4 10             	add    $0x10,%esp
43f8ae:	89 70 04             	mov    %esi,0x4(%eax)
43f8b1:	8b 03                	mov    (%ebx),%eax
43f8b3:	89 38                	mov    %edi,(%eax)
43f8b5:	e9 d0 9e fc ff       	jmp    0x40978a
43f8ba:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f8bd:	8b 33                	mov    (%ebx),%esi
43f8bf:	83 79 0c 01          	cmpl   $0x1,0xc(%ecx)
43f8c3:	75 07                	jne    0x43f8cc
43f8c5:	e8 d2 a3 fc ff       	call   0x409c9c
43f8ca:	eb 05                	jmp    0x43f8d1
43f8cc:	e8 75 a4 fc ff       	call   0x409d46
43f8d1:	03 f0                	add    %eax,%esi
43f8d3:	89 33                	mov    %esi,(%ebx)
43f8d5:	e9 b0 9e fc ff       	jmp    0x40978a
43f8da:	51                   	push   %ecx
43f8db:	e8 5d 82 fc ff       	call   0x407b3d
43f8e0:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
43f8e7:	e9 a9 9e fc ff       	jmp    0x409795
43f8ec:	ff 37                	push   (%edi)
43f8ee:	e8 79 17 fe ff       	call   0x42106c
43f8f3:	ff 77 0c             	push   0xc(%edi)
43f8f6:	e8 71 17 fe ff       	call   0x42106c
43f8fb:	83 c4 08             	add    $0x8,%esp
43f8fe:	e9 41 a0 fc ff       	jmp    0x409944
43f903:	83 e8 04             	sub    $0x4,%eax
43f906:	0f 84 dd 00 00 00    	je     0x43f9e9
43f90c:	6a 02                	push   $0x2
43f90e:	5a                   	pop    %edx
43f90f:	2b c2                	sub    %edx,%eax
43f911:	0f 84 ae 00 00 00    	je     0x43f9c5
43f917:	48                   	dec    %eax
43f918:	74 73                	je     0x43f98d
43f91a:	48                   	dec    %eax
43f91b:	74 0e                	je     0x43f92b
43f91d:	33 c0                	xor    %eax,%eax
43f91f:	66 89 85 6c ff ff ff 	mov    %ax,-0x94(%ebp)
43f926:	e9 9f a0 fc ff       	jmp    0x4099ca
43f92b:	8b 06                	mov    (%esi),%eax
43f92d:	33 c9                	xor    %ecx,%ecx
43f92f:	53                   	push   %ebx
43f930:	8b 00                	mov    (%eax),%eax
43f932:	8d 04 85 06 00 00 00 	lea    0x6(,%eax,4),%eax
43f939:	f7 e2                	mul    %edx
43f93b:	0f 90 c1             	seto   %cl
43f93e:	f7 d9                	neg    %ecx
43f940:	0b c8                	or     %eax,%ecx
43f942:	51                   	push   %ecx
43f943:	e8 ae 16 fe ff       	call   0x420ff6
43f948:	59                   	pop    %ecx
43f949:	8b 0e                	mov    (%esi),%ecx
43f94b:	8b d8                	mov    %eax,%ebx
43f94d:	39 39                	cmp    %edi,(%ecx)
43f94f:	74 11                	je     0x43f962
43f951:	51                   	push   %ecx
43f952:	ff 31                	push   (%ecx)
43f954:	8b 49 04             	mov    0x4(%ecx),%ecx
43f957:	8b d3                	mov    %ebx,%edx
43f959:	e8 4f 5e 02 00       	call   0x4657ad
43f95e:	59                   	pop    %ecx
43f95f:	59                   	pop    %ecx
43f960:	eb 05                	jmp    0x43f967
43f962:	33 c0                	xor    %eax,%eax
43f964:	66 89 03             	mov    %ax,(%ebx)
43f967:	6a 10                	push   $0x10
43f969:	e8 88 16 fe ff       	call   0x420ff6
43f96e:	59                   	pop    %ecx
43f96f:	85 c0                	test   %eax,%eax
43f971:	74 0a                	je     0x43f97d
43f973:	53                   	push   %ebx
43f974:	8b c8                	mov    %eax,%ecx
43f976:	e8 c6 85 fc ff       	call   0x407f41
43f97b:	8b f8                	mov    %eax,%edi
43f97d:	53                   	push   %ebx
43f97e:	89 7e 08             	mov    %edi,0x8(%esi)
43f981:	e8 e6 16 fe ff       	call   0x42106c
43f986:	59                   	pop    %ecx
43f987:	5b                   	pop    %ebx
43f988:	e9 1e a0 fc ff       	jmp    0x4099ab
43f98d:	8b 0e                	mov    (%esi),%ecx
43f98f:	8b 41 0c             	mov    0xc(%ecx),%eax
43f992:	8b 51 08             	mov    0x8(%ecx),%edx
43f995:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f998:	8b 41 10             	mov    0x10(%ecx),%eax
43f99b:	89 45 f8             	mov    %eax,-0x8(%ebp)
43f99e:	8b 41 14             	mov    0x14(%ecx),%eax
43f9a1:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f9a4:	52                   	push   %edx
43f9a5:	89 55 f0             	mov    %edx,-0x10(%ebp)
43f9a8:	ff 00                	incl   (%eax)
43f9aa:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
43f9b0:	50                   	push   %eax
43f9b1:	e8 46 36 fe ff       	call   0x422ffc
43f9b6:	59                   	pop    %ecx
43f9b7:	59                   	pop    %ecx
43f9b8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43f9bb:	e8 a4 60 fc ff       	call   0x405a64
43f9c0:	e9 05 a0 fc ff       	jmp    0x4099ca
43f9c5:	80 3e 00             	cmpb   $0x0,(%esi)
43f9c8:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
43f9ce:	74 07                	je     0x43f9d7
43f9d0:	68 8c a4 4b 00       	push   $0x4ba48c
43f9d5:	eb 05                	jmp    0x43f9dc
43f9d7:	68 98 a4 4b 00       	push   $0x4ba498
43f9dc:	50                   	push   %eax
43f9dd:	e8 1a 36 fe ff       	call   0x422ffc
43f9e2:	59                   	pop    %ecx
43f9e3:	59                   	pop    %ecx
43f9e4:	e9 e1 9f fc ff       	jmp    0x4099ca
43f9e9:	ff 36                	push   (%esi)
43f9eb:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
43f9f1:	68 80 a4 4b 00       	push   $0x4ba480
43f9f6:	50                   	push   %eax
43f9f7:	e8 dc 3e fe ff       	call   0x4238d8
43f9fc:	e9 c6 9f fc ff       	jmp    0x4099c7
43fa01:	6a 0a                	push   $0xa
43fa03:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
43fa09:	50                   	push   %eax
43fa0a:	ff 76 04             	push   0x4(%esi)
43fa0d:	ff 36                	push   (%esi)
43fa0f:	e8 bc 3c fe ff       	call   0x4236d0
43fa14:	e9 f8 9f fc ff       	jmp    0x409a11
43fa19:	8b 06                	mov    (%esi),%eax
43fa1b:	85 c0                	test   %eax,%eax
43fa1d:	0f 84 10 a0 fc ff    	je     0x409a33
43fa23:	50                   	push   %eax
43fa24:	ff 15 5c f4 48 00    	call   *0x48f45c
43fa2a:	ff 36                	push   (%esi)
43fa2c:	eb 79                	jmp    0x43faa7
43fa2e:	8b 3e                	mov    (%esi),%edi
43fa30:	85 ff                	test   %edi,%edi
43fa32:	0f 84 fb 9f fc ff    	je     0x409a33
43fa38:	8d 4f 08             	lea    0x8(%edi),%ecx
43fa3b:	eb 64                	jmp    0x43faa1
43fa3d:	8b 0e                	mov    (%esi),%ecx
43fa3f:	85 c9                	test   %ecx,%ecx
43fa41:	0f 84 ec 9f fc ff    	je     0x409a33
43fa47:	51                   	push   %ecx
43fa48:	e8 e7 93 fc ff       	call   0x408e34
43fa4d:	e9 e1 9f fc ff       	jmp    0x409a33
43fa52:	8b 06                	mov    (%esi),%eax
43fa54:	ff 70 04             	push   0x4(%eax)
43fa57:	e8 10 16 fe ff       	call   0x42106c
43fa5c:	ff 36                	push   (%esi)
43fa5e:	e8 09 16 fe ff       	call   0x42106c
43fa63:	83 c4 08             	add    $0x8,%esp
43fa66:	e9 c8 9f fc ff       	jmp    0x409a33
43fa6b:	8b 0e                	mov    (%esi),%ecx
43fa6d:	85 c9                	test   %ecx,%ecx
43fa6f:	0f 84 be 9f fc ff    	je     0x409a33
43fa75:	51                   	push   %ecx
43fa76:	e8 75 79 01 00       	call   0x4573f0
43fa7b:	e9 b3 9f fc ff       	jmp    0x409a33
43fa80:	8b 0e                	mov    (%esi),%ecx
43fa82:	85 c9                	test   %ecx,%ecx
43fa84:	0f 84 a9 9f fc ff    	je     0x409a33
43fa8a:	51                   	push   %ecx
43fa8b:	e8 75 79 01 00       	call   0x457405
43fa90:	e9 9e 9f fc ff       	jmp    0x409a33
43fa95:	8b 3e                	mov    (%esi),%edi
43fa97:	85 ff                	test   %edi,%edi
43fa99:	0f 84 94 9f fc ff    	je     0x409a33
43fa9f:	8b cf                	mov    %edi,%ecx
43faa1:	e8 be 5f fc ff       	call   0x405a64
43faa6:	57                   	push   %edi
43faa7:	e8 c0 15 fe ff       	call   0x42106c
43faac:	83 c4 04             	add    $0x4,%esp
43faaf:	e9 7f 9f fc ff       	jmp    0x409a33
43fab4:	8b 07                	mov    (%edi),%eax
43fab6:	89 06                	mov    %eax,(%esi)
43fab8:	8b 47 04             	mov    0x4(%edi),%eax
43fabb:	89 46 04             	mov    %eax,0x4(%esi)
43fabe:	e9 16 a0 fc ff       	jmp    0x409ad9
43fac3:	83 3f 00             	cmpl   $0x0,(%edi)
43fac6:	0f 84 0d a0 fc ff    	je     0x409ad9
43facc:	6a 10                	push   $0x10
43face:	e8 23 15 fe ff       	call   0x420ff6
43fad3:	83 c4 04             	add    $0x4,%esp
43fad6:	89 06                	mov    %eax,(%esi)
43fad8:	50                   	push   %eax
43fad9:	ff 15 7c f4 48 00    	call   *0x48f47c
43fadf:	ff 37                	push   (%edi)
43fae1:	ff 36                	push   (%esi)
43fae3:	ff 15 58 f4 48 00    	call   *0x48f458
43fae9:	85 c0                	test   %eax,%eax
43faeb:	0f 89 e8 9f fc ff    	jns    0x409ad9
43faf1:	ff 36                	push   (%esi)
43faf3:	ff 15 5c f4 48 00    	call   *0x48f45c
43faf9:	ff 36                	push   (%esi)
43fafb:	e8 6c 15 fe ff       	call   0x42106c
43fb00:	83 c4 04             	add    $0x4,%esp
43fb03:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
43fb09:	e9 cb 9f fc ff       	jmp    0x409ad9
43fb0e:	6a 18                	push   $0x18
43fb10:	e8 e1 14 fe ff       	call   0x420ff6
43fb15:	83 c4 04             	add    $0x4,%esp
43fb18:	85 c0                	test   %eax,%eax
43fb1a:	0f 84 37 a0 fc ff    	je     0x409b57
43fb20:	ff 37                	push   (%edi)
43fb22:	8b c8                	mov    %eax,%ecx
43fb24:	e8 64 70 02 00       	call   0x466b8d
43fb29:	e9 a9 9f fc ff       	jmp    0x409ad7
43fb2e:	6a 08                	push   $0x8
43fb30:	e8 c1 14 fe ff       	call   0x420ff6
43fb35:	89 06                	mov    %eax,(%esi)
43fb37:	83 c4 04             	add    $0x4,%esp
43fb3a:	8b 0f                	mov    (%edi),%ecx
43fb3c:	8b 09                	mov    (%ecx),%ecx
43fb3e:	89 08                	mov    %ecx,(%eax)
43fb40:	8b 06                	mov    (%esi),%eax
43fb42:	8b 00                	mov    (%eax),%eax
43fb44:	85 c0                	test   %eax,%eax
43fb46:	74 24                	je     0x43fb6c
43fb48:	50                   	push   %eax
43fb49:	e8 a8 14 fe ff       	call   0x420ff6
43fb4e:	8b 0e                	mov    (%esi),%ecx
43fb50:	89 41 04             	mov    %eax,0x4(%ecx)
43fb53:	8b 0e                	mov    (%esi),%ecx
43fb55:	8b 07                	mov    (%edi),%eax
43fb57:	ff 31                	push   (%ecx)
43fb59:	ff 70 04             	push   0x4(%eax)
43fb5c:	ff 71 04             	push   0x4(%ecx)
43fb5f:	e8 1c 15 fe ff       	call   0x421080
43fb64:	83 c4 10             	add    $0x10,%esp
43fb67:	e9 6d 9f fc ff       	jmp    0x409ad9
43fb6c:	6a 01                	push   $0x1
43fb6e:	e8 83 14 fe ff       	call   0x420ff6
43fb73:	8b 0e                	mov    (%esi),%ecx
43fb75:	83 c4 04             	add    $0x4,%esp
43fb78:	89 41 04             	mov    %eax,0x4(%ecx)
43fb7b:	8b 06                	mov    (%esi),%eax
43fb7d:	8b 40 04             	mov    0x4(%eax),%eax
43fb80:	c6 00 00             	movb   $0x0,(%eax)
43fb83:	e9 51 9f fc ff       	jmp    0x409ad9
43fb88:	6a 14                	push   $0x14
43fb8a:	e8 67 14 fe ff       	call   0x420ff6
43fb8f:	83 c4 04             	add    $0x4,%esp
43fb92:	85 c0                	test   %eax,%eax
43fb94:	0f 84 bd 9f fc ff    	je     0x409b57
43fb9a:	ff 37                	push   (%edi)
43fb9c:	8b c8                	mov    %eax,%ecx
43fb9e:	e8 d4 60 02 00       	call   0x465c77
43fba3:	e9 2f 9f fc ff       	jmp    0x409ad7
43fba8:	6a 18                	push   $0x18
43fbaa:	e8 47 14 fe ff       	call   0x420ff6
43fbaf:	83 c4 04             	add    $0x4,%esp
43fbb2:	85 c0                	test   %eax,%eax
43fbb4:	0f 84 9d 9f fc ff    	je     0x409b57
43fbba:	ff 37                	push   (%edi)
43fbbc:	8b c8                	mov    %eax,%ecx
43fbbe:	e8 c1 1e 02 00       	call   0x461a84
43fbc3:	e9 0f 9f fc ff       	jmp    0x409ad7
43fbc8:	53                   	push   %ebx
43fbc9:	6a 14                	push   $0x14
43fbcb:	e8 26 14 fe ff       	call   0x420ff6
43fbd0:	8b d8                	mov    %eax,%ebx
43fbd2:	83 c4 04             	add    $0x4,%esp
43fbd5:	85 db                	test   %ebx,%ebx
43fbd7:	74 09                	je     0x43fbe2
43fbd9:	8b cb                	mov    %ebx,%ecx
43fbdb:	e8 e7 7b fc ff       	call   0x4077c7
43fbe0:	eb 02                	jmp    0x43fbe4
43fbe2:	33 db                	xor    %ebx,%ebx
43fbe4:	89 1e                	mov    %ebx,(%esi)
43fbe6:	8b cb                	mov    %ebx,%ecx
43fbe8:	ff 37                	push   (%edi)
43fbea:	e8 b8 85 fc ff       	call   0x4081a7
43fbef:	8b 07                	mov    (%edi),%eax
43fbf1:	8b 0e                	mov    (%esi),%ecx
43fbf3:	5b                   	pop    %ebx
43fbf4:	8b 40 10             	mov    0x10(%eax),%eax
43fbf7:	89 41 10             	mov    %eax,0x10(%ecx)
43fbfa:	e9 da 9e fc ff       	jmp    0x409ad9
43fbff:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
43fc03:	8b 4e 08             	mov    0x8(%esi),%ecx
43fc06:	74 0d                	je     0x43fc15
43fc08:	ff 75 08             	push   0x8(%ebp)
43fc0b:	e8 1c 81 fc ff       	call   0x407d2c
43fc10:	e9 22 a0 fc ff       	jmp    0x409c37
43fc15:	e8 d2 82 fc ff       	call   0x407eec
43fc1a:	e9 18 a0 fc ff       	jmp    0x409c37
43fc1f:	85 c0                	test   %eax,%eax
43fc21:	0f 84 17 a0 fc ff    	je     0x409c3e
43fc27:	8b c8                	mov    %eax,%ecx
43fc29:	e8 99 7b fc ff       	call   0x4077c7
43fc2e:	e9 01 a0 fc ff       	jmp    0x409c34
43fc33:	48                   	dec    %eax
43fc34:	48                   	dec    %eax
43fc35:	75 17                	jne    0x43fc4e
43fc37:	8b 01                	mov    (%ecx),%eax
43fc39:	83 38 00             	cmpl   $0x0,(%eax)
43fc3c:	74 10                	je     0x43fc4e
43fc3e:	b0 01                	mov    $0x1,%al
43fc40:	c3                   	ret
43fc41:	dd 01                	fldl   (%ecx)
43fc43:	d9 ee                	fldz
43fc45:	da e9                	fucompp
43fc47:	df e0                	fnstsw %ax
43fc49:	f6 c4 44             	test   $0x44,%ah
43fc4c:	7a f0                	jp     0x43fc3e
43fc4e:	32 c0                	xor    %al,%al
43fc50:	c3                   	ret
43fc51:	83 e8 09             	sub    $0x9,%eax
43fc54:	74 32                	je     0x43fc88
43fc56:	48                   	dec    %eax
43fc57:	74 25                	je     0x43fc7e
43fc59:	48                   	dec    %eax
43fc5a:	0f 85 94 a0 fc ff    	jne    0x409cf4