43e71b:	66 3b ca             	cmp    %dx,%cx
43e71e:	74 2d                	je     0x43e74d
43e720:	0f b7 03             	movzwl (%ebx),%eax
43e723:	6a 22                	push   $0x22
43e725:	59                   	pop    %ecx
43e726:	66 3b c1             	cmp    %cx,%ax
43e729:	74 10                	je     0x43e73b
43e72b:	66 3b c2             	cmp    %dx,%ax
43e72e:	74 0b                	je     0x43e73b
43e730:	8b 4f 04             	mov    0x4(%edi),%ecx
43e733:	53                   	push   %ebx
43e734:	8b 01                	mov    (%ecx),%eax
43e736:	ff 50 08             	call   *0x8(%eax)
43e739:	eb 2a                	jmp    0x43e765
43e73b:	53                   	push   %ebx
43e73c:	e8 2b 29 fe ff       	call   0x42106c
43e741:	59                   	pop    %ecx
43e742:	56                   	push   %esi
43e743:	68 a8 a0 4b 00       	push   $0x4ba0a8
43e748:	e9 e4 00 00 00       	jmp    0x43e831
43e74d:	66 39 0b             	cmp    %cx,(%ebx)
43e750:	75 e9                	jne    0x43e73b
43e752:	33 c9                	xor    %ecx,%ecx
43e754:	66 89 4c 43 fe       	mov    %cx,-0x2(%ebx,%eax,2)
43e759:	8d 43 02             	lea    0x2(%ebx),%eax
43e75c:	8b 4f 04             	mov    0x4(%edi),%ecx
43e75f:	50                   	push   %eax
43e760:	8b 11                	mov    (%ecx),%edx
43e762:	ff 52 08             	call   *0x8(%edx)
43e765:	53                   	push   %ebx
43e766:	e8 01 29 fe ff       	call   0x42106c
43e76b:	59                   	pop    %ecx
43e76c:	e9 61 84 fc ff       	jmp    0x406bd2
43e771:	33 f6                	xor    %esi,%esi
43e773:	39 77 20             	cmp    %esi,0x20(%edi)
43e776:	0f 86 56 84 fc ff    	jbe    0x406bd2
43e77c:	8b 47 1c             	mov    0x1c(%edi),%eax
43e77f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43e782:	6a 00                	push   $0x0
43e784:	ff 34 b0             	push   (%eax,%esi,4)
43e787:	e8 dc 92 fc ff       	call   0x407a68
43e78c:	85 c0                	test   %eax,%eax
43e78e:	74 0b                	je     0x43e79b
43e790:	46                   	inc    %esi
43e791:	3b 77 20             	cmp    0x20(%edi),%esi
43e794:	72 e6                	jb     0x43e77c
43e796:	e9 37 84 fc ff       	jmp    0x406bd2
43e79b:	8b 47 2c             	mov    0x2c(%edi),%eax
43e79e:	33 db                	xor    %ebx,%ebx
43e7a0:	43                   	inc    %ebx
43e7a1:	8b 04 b0             	mov    (%eax,%esi,4),%eax
43e7a4:	39 18                	cmp    %ebx,(%eax)
43e7a6:	0f 8e bb 82 fc ff    	jle    0x406a67
43e7ac:	6a 04                	push   $0x4
43e7ae:	e9 b3 82 fc ff       	jmp    0x406a66
43e7b3:	ff 75 f8             	push   -0x8(%ebp)
43e7b6:	8d 46 10             	lea    0x10(%esi),%eax
43e7b9:	8b cf                	mov    %edi,%ecx
43e7bb:	50                   	push   %eax
43e7bc:	e8 4c 18 02 00       	call   0x46000d
43e7c1:	3c 01                	cmp    $0x1,%al
43e7c3:	75 53                	jne    0x43e818
43e7c5:	ff 75 f8             	push   -0x8(%ebp)
43e7c8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43e7cb:	e8 71 97 fc ff       	call   0x407f41
43e7d0:	ff 75 f8             	push   -0x8(%ebp)
43e7d3:	8d 4d e8             	lea    -0x18(%ebp),%ecx
43e7d6:	e8 66 97 fc ff       	call   0x407f41
43e7db:	8b 45 10             	mov    0x10(%ebp),%eax
43e7de:	ff 30                	push   (%eax)
43e7e0:	8d 45 d8             	lea    -0x28(%ebp),%eax
43e7e3:	56                   	push   %esi
43e7e4:	ff 75 0c             	push   0xc(%ebp)
43e7e7:	51                   	push   %ecx
43e7e8:	50                   	push   %eax
43e7e9:	8b cf                	mov    %edi,%ecx
43e7eb:	e8 7b 89 fc ff       	call   0x40716b
43e7f0:	59                   	pop    %ecx
43e7f1:	50                   	push   %eax
43e7f2:	8d 45 e8             	lea    -0x18(%ebp),%eax
43e7f5:	8b cf                	mov    %edi,%ecx
43e7f7:	50                   	push   %eax
43e7f8:	e8 ef 83 fc ff       	call   0x406bec
43e7fd:	8d 4d e8             	lea    -0x18(%ebp),%ecx
43e800:	8a d8                	mov    %al,%bl
43e802:	e8 5d 72 fc ff       	call   0x405a64
43e807:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43e80a:	e8 55 72 fc ff       	call   0x405a64
43e80f:	84 db                	test   %bl,%bl
43e811:	74 2d                	je     0x43e840
43e813:	e9 ba 83 fc ff       	jmp    0x406bd2
43e818:	56                   	push   %esi
43e819:	68 08 a1 4b 00       	push   $0x4ba108
43e81e:	eb 11                	jmp    0x43e831
43e820:	8b 45 08             	mov    0x8(%ebp),%eax
43e823:	85 c0                	test   %eax,%eax
43e825:	0f 8e 3c 82 fc ff    	jle    0x406a67
43e82b:	56                   	push   %esi
43e82c:	68 34 a1 4b 00       	push   $0x4ba134
43e831:	8b 45 10             	mov    0x10(%ebp),%eax
43e834:	8b cf                	mov    %edi,%ecx
43e836:	ff 30                	push   (%eax)
43e838:	ff 75 0c             	push   0xc(%ebp)
43e83b:	e8 71 14 02 00       	call   0x45fcb1
43e840:	33 db                	xor    %ebx,%ebx
43e842:	e9 20 82 fc ff       	jmp    0x406a67
43e847:	ff 75 14             	push   0x14(%ebp)
43e84a:	68 c8 9f 4b 00       	push   $0x4b9fc8
43e84f:	ff 75 18             	push   0x18(%ebp)
43e852:	ff 75 10             	push   0x10(%ebp)
43e855:	e8 57 14 02 00       	call   0x45fcb1
43e85a:	32 db                	xor    %bl,%bl
43e85c:	e9 3d 86 fc ff       	jmp    0x406e9e
43e861:	ff 75 14             	push   0x14(%ebp)
43e864:	8b ce                	mov    %esi,%ecx
43e866:	68 50 a0 4b 00       	push   $0x4ba050
43e86b:	ff 75 18             	push   0x18(%ebp)
43e86e:	ff 75 10             	push   0x10(%ebp)
43e871:	e8 3b 14 02 00       	call   0x45fcb1
43e876:	e9 17 86 fc ff       	jmp    0x406e92
43e87b:	81 7c 24 74 45 41 30 	cmpl   $0x36304145,0x74(%esp)
43e882:	36
43e883:	0f 85 46 84 fc ff    	jne    0x406ccf
43e889:	8d 8c 24 a8 00 00 00 	lea    0xa8(%esp),%ecx
43e890:	e8 3a 75 fc ff       	call   0x405dcf
43e895:	8b 45 08             	mov    0x8(%ebp),%eax
43e898:	8d 4c 24 60          	lea    0x60(%esp),%ecx
43e89c:	6a 02                	push   $0x2
43e89e:	89 5c 24 70          	mov    %ebx,0x70(%esp)
43e8a2:	89 5c 24 74          	mov    %ebx,0x74(%esp)
43e8a6:	ff 30                	push   (%eax)
43e8a8:	88 5c 24 7c          	mov    %bl,0x7c(%esp)
43e8ac:	e8 8c 66 fc ff       	call   0x404f3d
43e8b1:	85 c0                	test   %eax,%eax
43e8b3:	75 25                	jne    0x43e8da
43e8b5:	8d 44 24 38          	lea    0x38(%esp),%eax
43e8b9:	50                   	push   %eax
43e8ba:	8d 44 24 18          	lea    0x18(%esp),%eax
43e8be:	50                   	push   %eax
43e8bf:	68 80 a0 4b 00       	push   $0x4ba080
43e8c4:	8d 4c 24 6c          	lea    0x6c(%esp),%ecx
43e8c8:	e8 18 af 02 00       	call   0x4697e5
43e8cd:	8d 4c 24 60          	lea    0x60(%esp),%ecx
43e8d1:	85 c0                	test   %eax,%eax
43e8d3:	74 21                	je     0x43e8f6
43e8d5:	e8 d0 66 fc ff       	call   0x404faa
43e8da:	ff 75 14             	push   0x14(%ebp)
43e8dd:	8b 4c 24 20          	mov    0x20(%esp),%ecx
43e8e1:	68 50 a0 4b 00       	push   $0x4ba050
43e8e6:	ff 75 18             	push   0x18(%ebp)
43e8e9:	ff 75 10             	push   0x10(%ebp)
43e8ec:	e8 c0 13 02 00       	call   0x45fcb1
43e8f1:	e9 84 85 fc ff       	jmp    0x406e7a
43e8f6:	e8 af 66 fc ff       	call   0x404faa
43e8fb:	8b 44 24 14          	mov    0x14(%esp),%eax
43e8ff:	6a 04                	push   $0x4
43e901:	5a                   	pop    %edx
43e902:	6a 10                	push   $0x10
43e904:	8b 38                	mov    (%eax),%edi
43e906:	83 c8 ff             	or     $0xffffffff,%eax
43e909:	89 54 24 1c          	mov    %edx,0x1c(%esp)
43e90d:	89 7c 24 3c          	mov    %edi,0x3c(%esp)
43e911:	66 89 44 24 34       	mov    %ax,0x34(%esp)
43e916:	c7 44 24 54 78 fb 48 	movl   $0x48fb78,0x54(%esp)
43e91d:	00
43e91e:	89 5c 24 58          	mov    %ebx,0x58(%esp)
43e922:	89 5c 24 5c          	mov    %ebx,0x5c(%esp)
43e926:	89 5c 24 60          	mov    %ebx,0x60(%esp)
43e92a:	e8 c7 26 fe ff       	call   0x420ff6
43e92f:	8b f0                	mov    %eax,%esi
43e931:	89 74 24 44          	mov    %esi,0x44(%esp)
43e935:	59                   	pop    %ecx
43e936:	85 f6                	test   %esi,%esi
43e938:	74 11                	je     0x43e94b
43e93a:	c7 06 78 fb 48 00    	movl   $0x48fb78,(%esi)
43e940:	89 5e 04             	mov    %ebx,0x4(%esi)
43e943:	89 5e 08             	mov    %ebx,0x8(%esi)
43e946:	89 5e 0c             	mov    %ebx,0xc(%esi)
43e949:	eb 06                	jmp    0x43e951
43e94b:	8b f3                	mov    %ebx,%esi
43e94d:	89 74 24 40          	mov    %esi,0x40(%esp)
43e951:	83 c8 ff             	or     $0xffffffff,%eax
43e954:	89 74 24 44          	mov    %esi,0x44(%esp)
43e958:	6a 05                	push   $0x5
43e95a:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
43e95e:	66 89 44 24 36       	mov    %ax,0x36(%esp)
43e963:	e8 aa 75 fc ff       	call   0x405f12
43e968:	8d 44 24 28          	lea    0x28(%esp),%eax
43e96c:	89 7c 24 28          	mov    %edi,0x28(%esp)
43e970:	50                   	push   %eax
43e971:	8b ce                	mov    %esi,%ecx
43e973:	e8 f7 8c fc ff       	call   0x40766f
43e978:	33 c0                	xor    %eax,%eax
43e97a:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
43e97e:	40                   	inc    %eax
43e97f:	3b f8                	cmp    %eax,%edi
43e981:	89 44 24 4c          	mov    %eax,0x4c(%esp)
43e985:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
43e989:	0f 8c da 01 00 00    	jl     0x43eb69
43e98f:	8b 4c 24 18          	mov    0x18(%esp),%ecx
43e993:	8b 44 24 14          	mov    0x14(%esp),%eax
43e997:	03 c1                	add    %ecx,%eax
43e999:	41                   	inc    %ecx
43e99a:	89 4c 24 18          	mov    %ecx,0x18(%esp)
43e99e:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
43e9a2:	8d 4c 24 28          	lea    0x28(%esp),%ecx
43e9a6:	0f b6 00             	movzbl (%eax),%eax
43e9a9:	50                   	push   %eax
43e9aa:	89 44 24 28          	mov    %eax,0x28(%esp)
43e9ae:	e8 5f 75 fc ff       	call   0x405f12
43e9b3:	8d 4c 24 28          	lea    0x28(%esp),%ecx
43e9b7:	e8 cf 8c 02 00       	call   0x46768b
43e9bc:	84 c0                	test   %al,%al
43e9be:	74 18                	je     0x43e9d8
43e9c0:	8b 54 24 18          	mov    0x18(%esp),%edx
43e9c4:	8b 44 24 14          	mov    0x14(%esp),%eax
43e9c8:	03 c2                	add    %edx,%eax
43e9ca:	83 c2 04             	add    $0x4,%edx
43e9cd:	8b 00                	mov    (%eax),%eax
43e9cf:	89 44 24 28          	mov    %eax,0x28(%esp)
43e9d3:	e9 20 01 00 00       	jmp    0x43eaf8
43e9d8:	8d 4c 24 28          	lea    0x28(%esp),%ecx
43e9dc:	e8 94 8c 02 00       	call   0x467675
43e9e1:	84 c0                	test   %al,%al
43e9e3:	74 1f                	je     0x43ea04
43e9e5:	8b 54 24 18          	mov    0x18(%esp),%edx
43e9e9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
43e9ed:	03 ca                	add    %edx,%ecx
43e9ef:	83 c2 08             	add    $0x8,%edx
43e9f2:	8b 01                	mov    (%ecx),%eax
43e9f4:	89 44 24 28          	mov    %eax,0x28(%esp)
43e9f8:	8b 41 04             	mov    0x4(%ecx),%eax
43e9fb:	89 44 24 2c          	mov    %eax,0x2c(%esp)
43e9ff:	e9 f4 00 00 00       	jmp    0x43eaf8
43ea04:	8d 4c 24 28          	lea    0x28(%esp),%ecx
43ea08:	e8 52 8c 02 00       	call   0x46765f
43ea0d:	84 c0                	test   %al,%al
43ea0f:	74 18                	je     0x43ea29
43ea11:	8b 54 24 18          	mov    0x18(%esp),%edx
43ea15:	8b 44 24 14          	mov    0x14(%esp),%eax
43ea19:	03 c2                	add    %edx,%eax
43ea1b:	83 c2 08             	add    $0x8,%edx
43ea1e:	dd 00                	fldl   (%eax)
43ea20:	dd 5c 24 28          	fstpl  0x28(%esp)
43ea24:	e9 cf 00 00 00       	jmp    0x43eaf8
43ea29:	8d 4c 24 28          	lea    0x28(%esp),%ecx
43ea2d:	e8 58 75 fc ff       	call   0x405f8a
43ea32:	84 c0                	test   %al,%al
43ea34:	0f 84 c2 00 00 00    	je     0x43eafc
43ea3a:	8d 44 24 1c          	lea    0x1c(%esp),%eax
43ea3e:	50                   	push   %eax
43ea3f:	ff 74 24 18          	push   0x18(%esp)
43ea43:	e8 05 12 02 00       	call   0x45fc4d
43ea48:	8b 4c 24 24          	mov    0x24(%esp),%ecx
43ea4c:	89 44 24 18          	mov    %eax,0x18(%esp)
43ea50:	50                   	push   %eax
43ea51:	83 f9 31             	cmp    $0x31,%ecx
43ea54:	75 2d                	jne    0x43ea83
43ea56:	8d 8c 24 e4 00 00 00 	lea    0xe4(%esp),%ecx
43ea5d:	e8 df 94 fc ff       	call   0x407f41
43ea62:	8b 4f 04             	mov    0x4(%edi),%ecx
43ea65:	ff b4 24 e0 00 00 00 	push   0xe0(%esp)
43ea6c:	8b 01                	mov    (%ecx),%eax
43ea6e:	ff 50 04             	call   *0x4(%eax)
43ea71:	8d 8c 24 e0 00 00 00 	lea    0xe0(%esp),%ecx
43ea78:	8b f0                	mov    %eax,%esi
43ea7a:	e8 e5 6f fc ff       	call   0x405a64
43ea7f:	6a 01                	push   $0x1
43ea81:	eb 24                	jmp    0x43eaa7
43ea83:	83 f9 30             	cmp    $0x30,%ecx
43ea86:	75 32                	jne    0x43eaba
43ea88:	8d 4c 24 7c          	lea    0x7c(%esp),%ecx
43ea8c:	e8 b0 94 fc ff       	call   0x407f41
43ea91:	8d 44 24 78          	lea    0x78(%esp),%eax
43ea95:	50                   	push   %eax
43ea96:	e8 fe 7e fc ff       	call   0x406999
43ea9b:	8d 4c 24 78          	lea    0x78(%esp),%ecx
43ea9f:	8b f0                	mov    %eax,%esi
43eaa1:	e8 be 6f fc ff       	call   0x405a64
43eaa6:	53                   	push   %ebx
43eaa7:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
43eaab:	e8 62 74 fc ff       	call   0x405f12
43eab0:	89 74 24 28          	mov    %esi,0x28(%esp)
43eab4:	8b 74 24 40          	mov    0x40(%esp),%esi
43eab8:	eb 30                	jmp    0x43eaea
43eaba:	83 f9 37             	cmp    $0x37,%ecx
43eabd:	75 22                	jne    0x43eae1
43eabf:	8b cf                	mov    %edi,%ecx
43eac1:	e8 a8 10 02 00       	call   0x45fb6e
43eac6:	85 c0                	test   %eax,%eax
43eac8:	0f 84 ed 00 00 00    	je     0x43ebbb
43eace:	ff 74 24 18          	push   0x18(%esp)
43ead2:	e8 95 25 fe ff       	call   0x42106c
43ead7:	59                   	pop    %ecx
43ead8:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
43eadc:	e9 b2 fe ff ff       	jmp    0x43e993
43eae1:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
43eae5:	e8 37 8b 02 00       	call   0x467621
43eaea:	ff 74 24 18          	push   0x18(%esp)
43eaee:	e8 79 25 fe ff       	call   0x42106c
43eaf3:	8b 54 24 20          	mov    0x20(%esp),%edx
43eaf7:	59                   	pop    %ecx
43eaf8:	89 54 24 18          	mov    %edx,0x18(%esp)
43eafc:	8d 44 24 28          	lea    0x28(%esp),%eax
43eb00:	8b ce                	mov    %esi,%ecx
43eb02:	50                   	push   %eax
43eb03:	e8 67 8b fc ff       	call   0x40766f
43eb08:	8b 4c 24 18          	mov    0x18(%esp),%ecx
43eb0c:	6a 7f                	push   $0x7f
43eb0e:	5a                   	pop    %edx
43eb0f:	39 54 24 24          	cmp    %edx,0x24(%esp)
43eb13:	0f 85 7a fe ff ff    	jne    0x43e993
43eb19:	8b 4e 08             	mov    0x8(%esi),%ecx
43eb1c:	83 f9 02             	cmp    $0x2,%ecx
43eb1f:	76 2e                	jbe    0x43eb4f
43eb21:	8b 46 04             	mov    0x4(%esi),%eax
43eb24:	8b 44 88 f8          	mov    -0x8(%eax,%ecx,4),%eax
43eb28:	66 39 50 08          	cmp    %dx,0x8(%eax)
43eb2c:	74 21                	je     0x43eb4f
43eb2e:	ff 44 24 3c          	incl   0x3c(%esp)
43eb32:	8b cf                	mov    %edi,%ecx
43eb34:	6a 3b                	push   $0x3b
43eb36:	58                   	pop    %eax
43eb37:	66 89 44 24 24       	mov    %ax,0x24(%esp)
43eb3c:	83 c8 ff             	or     $0xffffffff,%eax
43eb3f:	50                   	push   %eax
43eb40:	8d 44 24 28          	lea    0x28(%esp),%eax
43eb44:	50                   	push   %eax
43eb45:	ff 77 10             	push   0x10(%edi)
43eb48:	e8 26 88 fc ff       	call   0x407373
43eb4d:	eb 07                	jmp    0x43eb56
43eb4f:	8b ce                	mov    %esi,%ecx
43eb51:	e8 1a 16 02 00       	call   0x460170
43eb56:	8b 44 24 4c          	mov    0x4c(%esp),%eax
43eb5a:	40                   	inc    %eax
43eb5b:	89 44 24 4c          	mov    %eax,0x4c(%esp)
43eb5f:	3b 44 24 38          	cmp    0x38(%esp),%eax
43eb63:	0f 8e 26 fe ff ff    	jle    0x43e98f
43eb69:	6a 05                	push   $0x5
43eb6b:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
43eb6f:	e8 9e 73 fc ff       	call   0x405f12
43eb74:	8b 4e 04             	mov    0x4(%esi),%ecx
43eb77:	8b 44 24 3c          	mov    0x3c(%esp),%eax
43eb7b:	89 44 24 28          	mov    %eax,0x28(%esp)
43eb7f:	8d 44 24 28          	lea    0x28(%esp),%eax
43eb83:	50                   	push   %eax
43eb84:	8b 09                	mov    (%ecx),%ecx
43eb86:	e8 f6 89 02 00       	call   0x467581
43eb8b:	8d 44 24 44          	lea    0x44(%esp),%eax
43eb8f:	50                   	push   %eax