40b7f0:	3b 45 f4             	cmp    -0xc(%ebp),%eax
40b7f3:	72 19                	jb     0x40b80e
40b7f5:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40b7f8:	74 06                	je     0x40b800
40b7fa:	f7 d8                	neg    %eax
40b7fc:	13 d3                	adc    %ebx,%edx
40b7fe:	f7 da                	neg    %edx
40b800:	8b c8                	mov    %eax,%ecx
40b802:	8b c2                	mov    %edx,%eax
40b804:	33 45 0c             	xor    0xc(%ebp),%eax
40b807:	33 47 04             	xor    0x4(%edi),%eax
40b80a:	85 c0                	test   %eax,%eax
40b80c:	79 1b                	jns    0x40b829
40b80e:	33 f6                	xor    %esi,%esi
40b810:	46                   	inc    %esi
40b811:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40b814:	74 09                	je     0x40b81f
40b816:	33 c9                	xor    %ecx,%ecx
40b818:	ba 00 00 00 80       	mov    $0x80000000,%edx
40b81d:	eb 0d                	jmp    0x40b82c
40b81f:	83 c9 ff             	or     $0xffffffff,%ecx
40b822:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40b827:	eb 03                	jmp    0x40b82c
40b829:	8b 75 e8             	mov    -0x18(%ebp),%esi
40b82c:	8b 45 08             	mov    0x8(%ebp),%eax
40b82f:	89 08                	mov    %ecx,(%eax)
40b831:	89 50 04             	mov    %edx,0x4(%eax)
40b834:	89 70 08             	mov    %esi,0x8(%eax)
40b837:	eb 0b                	jmp    0x40b844
40b839:	8b 45 08             	mov    0x8(%ebp),%eax
40b83c:	89 18                	mov    %ebx,(%eax)
40b83e:	89 58 04             	mov    %ebx,0x4(%eax)
40b841:	89 58 08             	mov    %ebx,0x8(%eax)
40b844:	5e                   	pop    %esi
40b845:	5f                   	pop    %edi
40b846:	5b                   	pop    %ebx
40b847:	c9                   	leave
40b848:	c2 08 00             	ret    $0x8
40b84b:	55                   	push   %ebp
40b84c:	8b ec                	mov    %esp,%ebp
40b84e:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
40b852:	74 15                	je     0x40b869
40b854:	8b 11                	mov    (%ecx),%edx
40b856:	8b 45 08             	mov    0x8(%ebp),%eax
40b859:	89 10                	mov    %edx,(%eax)
40b85b:	8b 51 04             	mov    0x4(%ecx),%edx
40b85e:	89 50 04             	mov    %edx,0x4(%eax)
40b861:	8b 49 08             	mov    0x8(%ecx),%ecx
40b864:	89 48 08             	mov    %ecx,0x8(%eax)
40b867:	eb 5a                	jmp    0x40b8c3
40b869:	8b 45 0c             	mov    0xc(%ebp),%eax
40b86c:	85 c0                	test   %eax,%eax
40b86e:	75 0f                	jne    0x40b87f
40b870:	8b 45 08             	mov    0x8(%ebp),%eax
40b873:	83 20 00             	andl   $0x0,(%eax)
40b876:	c7 40 04 00 00 00 80 	movl   $0x80000000,0x4(%eax)
40b87d:	eb 20                	jmp    0x40b89f
40b87f:	83 f8 ff             	cmp    $0xffffffff,%eax
40b882:	75 24                	jne    0x40b8a8
40b884:	83 39 00             	cmpl   $0x0,(%ecx)
40b887:	75 1f                	jne    0x40b8a8
40b889:	81 79 04 00 00 00 80 	cmpl   $0x80000000,0x4(%ecx)
40b890:	75 16                	jne    0x40b8a8
40b892:	8b 45 08             	mov    0x8(%ebp),%eax
40b895:	83 08 ff             	orl    $0xffffffff,(%eax)
40b898:	c7 40 04 ff ff ff 7f 	movl   $0x7fffffff,0x4(%eax)
40b89f:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%eax)
40b8a6:	eb 1b                	jmp    0x40b8c3
40b8a8:	99                   	cltd
40b8a9:	52                   	push   %edx
40b8aa:	50                   	push   %eax
40b8ab:	ff 71 04             	push   0x4(%ecx)
40b8ae:	ff 31                	push   (%ecx)
40b8b0:	e8 1b e4 00 00       	call   0x419cd0
40b8b5:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b8b8:	83 61 08 00          	andl   $0x0,0x8(%ecx)
40b8bc:	89 01                	mov    %eax,(%ecx)
40b8be:	89 51 04             	mov    %edx,0x4(%ecx)
40b8c1:	8b c1                	mov    %ecx,%eax
40b8c3:	5d                   	pop    %ebp
40b8c4:	c2 08 00             	ret    $0x8
40b8c7:	55                   	push   %ebp
40b8c8:	8b ec                	mov    %esp,%ebp
40b8ca:	83 ec 24             	sub    $0x24,%esp
40b8cd:	56                   	push   %esi
40b8ce:	57                   	push   %edi
40b8cf:	ff 75 08             	push   0x8(%ebp)
40b8d2:	33 f6                	xor    %esi,%esi
40b8d4:	8b f9                	mov    %ecx,%edi
40b8d6:	89 75 f8             	mov    %esi,-0x8(%ebp)
40b8d9:	89 75 fc             	mov    %esi,-0x4(%ebp)
40b8dc:	89 75 ec             	mov    %esi,-0x14(%ebp)
40b8df:	89 75 f0             	mov    %esi,-0x10(%ebp)
40b8e2:	e8 b2 d2 00 00       	call   0x418b99
40b8e7:	89 45 f4             	mov    %eax,-0xc(%ebp)
40b8ea:	8d 45 dc             	lea    -0x24(%ebp),%eax
40b8ed:	c7 04 24 10 27 00 00 	movl   $0x2710,(%esp)
40b8f4:	50                   	push   %eax
40b8f5:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b8f8:	e8 30 fe ff ff       	call   0x40b72d
40b8fd:	39 75 08             	cmp    %esi,0x8(%ebp)
40b900:	8b 08                	mov    (%eax),%ecx
40b902:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40b905:	8b 48 04             	mov    0x4(%eax),%ecx
40b908:	8b 40 08             	mov    0x8(%eax),%eax
40b90b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40b90e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b911:	7d 1d                	jge    0x40b930
40b913:	8d 45 dc             	lea    -0x24(%ebp),%eax
40b916:	50                   	push   %eax
40b917:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b91a:	e8 c8 fd ff ff       	call   0x40b6e7
40b91f:	8b 08                	mov    (%eax),%ecx
40b921:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40b924:	8b 48 04             	mov    0x4(%eax),%ecx
40b927:	8b 40 08             	mov    0x8(%eax),%eax
40b92a:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40b92d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b930:	ff 75 0c             	push   0xc(%ebp)
40b933:	e8 61 d2 00 00       	call   0x418b99
40b938:	39 75 0c             	cmp    %esi,0xc(%ebp)
40b93b:	59                   	pop    %ecx
40b93c:	89 45 e8             	mov    %eax,-0x18(%ebp)
40b93f:	7d 1d                	jge    0x40b95e
40b941:	8d 45 dc             	lea    -0x24(%ebp),%eax
40b944:	50                   	push   %eax
40b945:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b948:	e8 9a fd ff ff       	call   0x40b6e7
40b94d:	8b 08                	mov    (%eax),%ecx
40b94f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40b952:	8b 48 04             	mov    0x4(%eax),%ecx
40b955:	8b 40 08             	mov    0x8(%eax),%eax
40b958:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40b95b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b95e:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b961:	50                   	push   %eax
40b962:	8d 45 dc             	lea    -0x24(%ebp),%eax
40b965:	50                   	push   %eax
40b966:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b969:	e8 6f fc ff ff       	call   0x40b5dd
40b96e:	50                   	push   %eax
40b96f:	8b cf                	mov    %edi,%ecx
40b971:	e8 77 ea ff ff       	call   0x40a3ed
40b976:	89 77 08             	mov    %esi,0x8(%edi)
40b979:	5f                   	pop    %edi
40b97a:	5e                   	pop    %esi
40b97b:	c9                   	leave
40b97c:	c2 08 00             	ret    $0x8
40b97f:	55                   	push   %ebp
40b980:	8b ec                	mov    %esp,%ebp
40b982:	ff 75 14             	push   0x14(%ebp)
40b985:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b988:	e8 66 f8 ff ff       	call   0x40b1f3
40b98d:	ff 75 10             	push   0x10(%ebp)
40b990:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b993:	e8 5b f8 ff ff       	call   0x40b1f3
40b998:	ff 75 0c             	push   0xc(%ebp)
40b99b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b99e:	e8 8b f8 ff ff       	call   0x40b22e
40b9a3:	5d                   	pop    %ebp
40b9a4:	c2 10 00             	ret    $0x10
40b9a7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40b9ab:	56                   	push   %esi
40b9ac:	8b 74 24 0c          	mov    0xc(%esp),%esi
40b9b0:	8d 46 08             	lea    0x8(%esi),%eax
40b9b3:	50                   	push   %eax
40b9b4:	e8 fe fa ff ff       	call   0x40b4b7
40b9b9:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b9bd:	8d 46 04             	lea    0x4(%esi),%eax
40b9c0:	50                   	push   %eax
40b9c1:	e8 f1 fa ff ff       	call   0x40b4b7
40b9c6:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b9ca:	56                   	push   %esi
40b9cb:	e8 21 fa ff ff       	call   0x40b3f1
40b9d0:	5e                   	pop    %esi
40b9d1:	c2 08 00             	ret    $0x8
40b9d4:	ff 74 24 10          	push   0x10(%esp)
40b9d8:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b9dc:	e8 12 f8 ff ff       	call   0x40b1f3
40b9e1:	dd 44 24 08          	fldl   0x8(%esp)
40b9e5:	51                   	push   %ecx
40b9e6:	51                   	push   %ecx
40b9e7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40b9eb:	dd 1c 24             	fstpl  (%esp)
40b9ee:	e8 b1 f8 ff ff       	call   0x40b2a4
40b9f3:	c2 10 00             	ret    $0x10
40b9f6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40b9fa:	56                   	push   %esi
40b9fb:	8b 74 24 0c          	mov    0xc(%esp),%esi
40b9ff:	8d 46 08             	lea    0x8(%esi),%eax
40ba02:	50                   	push   %eax
40ba03:	e8 af fa ff ff       	call   0x40b4b7
40ba08:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40ba0c:	56                   	push   %esi
40ba0d:	e8 63 fa ff ff       	call   0x40b475
40ba12:	5e                   	pop    %esi
40ba13:	c2 08 00             	ret    $0x8
40ba16:	ff 74 24 10          	push   0x10(%esp)
40ba1a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40ba1e:	e8 d0 f7 ff ff       	call   0x40b1f3
40ba23:	dd 44 24 08          	fldl   0x8(%esp)
40ba27:	51                   	push   %ecx
40ba28:	51                   	push   %ecx
40ba29:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40ba2d:	dd 1c 24             	fstpl  (%esp)
40ba30:	e8 6f f8 ff ff       	call   0x40b2a4
40ba35:	c2 10 00             	ret    $0x10
40ba38:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40ba3c:	56                   	push   %esi
40ba3d:	8b 74 24 0c          	mov    0xc(%esp),%esi
40ba41:	8d 46 08             	lea    0x8(%esi),%eax
40ba44:	50                   	push   %eax
40ba45:	e8 6d fa ff ff       	call   0x40b4b7
40ba4a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40ba4e:	56                   	push   %esi
40ba4f:	e8 21 fa ff ff       	call   0x40b475
40ba54:	5e                   	pop    %esi
40ba55:	c2 08 00             	ret    $0x8
40ba58:	55                   	push   %ebp
40ba59:	8b ec                	mov    %esp,%ebp
40ba5b:	51                   	push   %ecx
40ba5c:	51                   	push   %ecx
40ba5d:	56                   	push   %esi
40ba5e:	57                   	push   %edi
40ba5f:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ba62:	85 ff                	test   %edi,%edi
40ba64:	8b f1                	mov    %ecx,%esi
40ba66:	77 05                	ja     0x40ba6d
40ba68:	e8 de 99 02 00       	call   0x43544b
40ba6d:	8b 45 14             	mov    0x14(%ebp),%eax
40ba70:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ba73:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ba76:	50                   	push   %eax
40ba77:	6a 01                	push   $0x1
40ba79:	ff 75 08             	push   0x8(%ebp)
40ba7c:	8b ce                	mov    %esi,%ecx
40ba7e:	89 7d f8             	mov    %edi,-0x8(%ebp)
40ba81:	e8 0b f6 ff ff       	call   0x40b091
40ba86:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40ba8a:	74 2d                	je     0x40bab9
40ba8c:	8d 45 0c             	lea    0xc(%ebp),%eax
40ba8f:	50                   	push   %eax
40ba90:	8b ce                	mov    %esi,%ecx
40ba92:	e8 3c eb ff ff       	call   0x40a5d3
40ba97:	ff 76 08             	push   0x8(%esi)
40ba9a:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40baa0:	0f af c7             	imul   %edi,%eax
40baa3:	50                   	push   %eax
40baa4:	ff 75 10             	push   0x10(%ebp)
40baa7:	ff 75 0c             	push   0xc(%ebp)
40baaa:	e8 c1 bd 00 00       	call   0x417870
40baaf:	83 c4 0c             	add    $0xc,%esp
40bab2:	8b ce                	mov    %esi,%ecx
40bab4:	e8 30 eb ff ff       	call   0x40a5e9
40bab9:	5f                   	pop    %edi
40baba:	5e                   	pop    %esi
40babb:	c9                   	leave
40babc:	c2 10 00             	ret    $0x10
40babf:	b8 e1 30 48 00       	mov    $0x4830e1,%eax
40bac4:	e8 b3 c1 00 00       	call   0x417c7c
40bac9:	83 ec 0c             	sub    $0xc,%esp
40bacc:	53                   	push   %ebx
40bacd:	8b 5d 10             	mov    0x10(%ebp),%ebx
40bad0:	85 db                	test   %ebx,%ebx
40bad2:	56                   	push   %esi
40bad3:	57                   	push   %edi
40bad4:	89 65 f0             	mov    %esp,-0x10(%ebp)
40bad7:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40bada:	75 05                	jne    0x40bae1
40badc:	e8 6a 99 02 00       	call   0x43544b
40bae1:	8b 7d 0c             	mov    0xc(%ebp),%edi
40bae4:	8b c7                	mov    %edi,%eax
40bae6:	c1 e0 03             	shl    $0x3,%eax
40bae9:	50                   	push   %eax
40baea:	e8 66 45 03 00       	call   0x440055
40baef:	8b f0                	mov    %eax,%esi
40baf1:	33 c0                	xor    %eax,%eax
40baf3:	85 ff                	test   %edi,%edi
40baf5:	59                   	pop    %ecx
40baf6:	89 75 10             	mov    %esi,0x10(%ebp)
40baf9:	76 10                	jbe    0x40bb0b
40bafb:	83 64 c6 04 00       	andl   $0x0,0x4(%esi,%eax,8)
40bb00:	8b 0c 83             	mov    (%ebx,%eax,4),%ecx
40bb03:	89 0c c6             	mov    %ecx,(%esi,%eax,8)
40bb06:	40                   	inc    %eax
40bb07:	3b c7                	cmp    %edi,%eax
40bb09:	72 f0                	jb     0x40bafb
40bb0b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40bb0e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bb12:	56                   	push   %esi
40bb13:	57                   	push   %edi
40bb14:	ff 75 08             	push   0x8(%ebp)
40bb17:	e8 75 f5 ff ff       	call   0x40b091
40bb1c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40bb20:	56                   	push   %esi
40bb21:	e8 5a 45 03 00       	call   0x440080
40bb26:	59                   	pop    %ecx
40bb27:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40bb2a:	5f                   	pop    %edi
40bb2b:	5e                   	pop    %esi
40bb2c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bb33:	5b                   	pop    %ebx
40bb34:	c9                   	leave
40bb35:	c2 0c 00             	ret    $0xc
40bb38:	ff 75 10             	push   0x10(%ebp)
40bb3b:	e8 40 45 03 00       	call   0x440080
40bb40:	59                   	pop    %ecx
40bb41:	6a 00                	push   $0x0
40bb43:	6a 00                	push   $0x0
40bb45:	e8 0d ba 00 00       	call   0x417557
40bb4a:	cc                   	int3
40bb4b:	e9 67 f6 ff ff       	jmp    0x40b1b7
40bb50:	e9 a6 f5 ff ff       	jmp    0x40b0fb
40bb55:	e9 54 f8 ff ff       	jmp    0x40b3ae
40bb5a:	e9 80 f7 ff ff       	jmp    0x40b2df
40bb5f:	55                   	push   %ebp
40bb60:	8b ec                	mov    %esp,%ebp
40bb62:	51                   	push   %ecx
40bb63:	51                   	push   %ecx
40bb64:	53                   	push   %ebx
40bb65:	56                   	push   %esi
40bb66:	57                   	push   %edi
40bb67:	8b f1                	mov    %ecx,%esi
40bb69:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40bb6f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bb73:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bb76:	8b 45 08             	mov    0x8(%ebp),%eax
40bb79:	85 c0                	test   %eax,%eax
40bb7b:	c7 45 08 71 92 48 00 	movl   $0x489271,0x8(%ebp)
40bb82:	74 03                	je     0x40bb87
40bb84:	89 45 08             	mov    %eax,0x8(%ebp)
40bb87:	ff 75 08             	push   0x8(%ebp)
40bb8a:	ff 15 88 03 4b 00    	call   *0x4b0388
40bb90:	8b f8                	mov    %eax,%edi
40bb92:	47                   	inc    %edi
40bb93:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
40bb96:	81 fb 00 04 00 00    	cmp    $0x400,%ebx
40bb9c:	77 1c                	ja     0x40bbba
40bb9e:	53                   	push   %ebx
40bb9f:	e8 5d 58 ff ff       	call   0x401401
40bba4:	84 c0                	test   %al,%al
40bba6:	59                   	pop    %ecx
40bba7:	74 11                	je     0x40bbba
40bba9:	8b c3                	mov    %ebx,%eax
40bbab:	83 c0 03             	add    $0x3,%eax
40bbae:	83 e0 fc             	and    $0xfffffffc,%eax
40bbb1:	e8 3a ab 00 00       	call   0x4166f0
40bbb6:	8b c4                	mov    %esp,%eax
40bbb8:	eb 09                	jmp    0x40bbc3
40bbba:	53                   	push   %ebx