40b998:	c3                   	ret
40b999:	53                   	push   %ebx
40b99a:	ff 75 fc             	push   -0x4(%ebp)
40b99d:	68 88 19 40 00       	push   $0x401988
40b9a2:	ff 75 f8             	push   -0x8(%ebp)
40b9a5:	56                   	push   %esi
40b9a6:	e8 79 da ff ff       	call   0x409424
40b9ab:	83 c4 14             	add    $0x14,%esp
40b9ae:	eb 23                	jmp    0x40b9d3
40b9b0:	8b 55 fc             	mov    -0x4(%ebp),%edx
40b9b3:	85 d2                	test   %edx,%edx
40b9b5:	75 0a                	jne    0x40b9c1
40b9b7:	6a 07                	push   $0x7
40b9b9:	59                   	pop    %ecx
40b9ba:	e8 98 db ff ff       	call   0x409557
40b9bf:	eb 0c                	jmp    0x40b9cd
40b9c1:	6a 00                	push   $0x0
40b9c3:	6a 00                	push   $0x0
40b9c5:	6a 07                	push   $0x7
40b9c7:	59                   	pop    %ecx
40b9c8:	e8 d6 db ff ff       	call   0x4095a3
40b9cd:	8b f0                	mov    %eax,%esi
40b9cf:	85 f6                	test   %esi,%esi
40b9d1:	74 a5                	je     0x40b978
40b9d3:	56                   	push   %esi
40b9d4:	89 75 fc             	mov    %esi,-0x4(%ebp)
40b9d7:	ff 15 80 21 41 00    	call   *0x412180
40b9dd:	6a 01                	push   $0x1
40b9df:	6a 50                	push   $0x50
40b9e1:	6a 0b                	push   $0xb
40b9e3:	33 d2                	xor    %edx,%edx
40b9e5:	59                   	pop    %ecx
40b9e6:	e8 b8 db ff ff       	call   0x4095a3
40b9eb:	8b f0                	mov    %eax,%esi
40b9ed:	85 f6                	test   %esi,%esi
40b9ef:	74 87                	je     0x40b978
40b9f1:	ff 75 fc             	push   -0x4(%ebp)
40b9f4:	b9 ed 15 00 00       	mov    $0x15ed,%ecx
40b9f9:	e8 53 e0 ff ff       	call   0x409a51
40b9fe:	50                   	push   %eax
40b9ff:	6a 50                	push   $0x50
40ba01:	56                   	push   %esi
40ba02:	e8 1d da ff ff       	call   0x409424
40ba07:	83 c4 10             	add    $0x10,%esp
40ba0a:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40ba0d:	e8 b4 f1 ff ff       	call   0x40abc6
40ba12:	8b c6                	mov    %esi,%eax
40ba14:	e9 7b ff ff ff       	jmp    0x40b994
40ba19:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40ba1c:	e8 a5 f1 ff ff       	call   0x40abc6
40ba21:	e9 6c ff ff ff       	jmp    0x40b992
40ba26:	8b ff                	mov    %edi,%edi
40ba28:	53                   	push   %ebx
40ba29:	56                   	push   %esi
40ba2a:	57                   	push   %edi
40ba2b:	6a 00                	push   $0x0
40ba2d:	8b f1                	mov    %ecx,%esi
40ba2f:	ff 15 74 20 41 00    	call   *0x412074
40ba35:	85 f6                	test   %esi,%esi
40ba37:	74 69                	je     0x40baa2
40ba39:	51                   	push   %ecx
40ba3a:	51                   	push   %ecx
40ba3b:	6a 7c                	push   $0x7c
40ba3d:	5a                   	pop    %edx
40ba3e:	8b ce                	mov    %esi,%ecx
40ba40:	e8 5b e3 ff ff       	call   0x409da0
40ba45:	8b f8                	mov    %eax,%edi
40ba47:	83 ff ff             	cmp    $0xffffffff,%edi
40ba4a:	75 11                	jne    0x40ba5d
40ba4c:	6a 00                	push   $0x0
40ba4e:	ff 15 74 20 41 00    	call   *0x412074
40ba54:	8b ce                	mov    %esi,%ecx
40ba56:	e8 30 ea ff ff       	call   0x40a48b
40ba5b:	8b f8                	mov    %eax,%edi
40ba5d:	6a 01                	push   $0x1
40ba5f:	8d 47 05             	lea    0x5(%edi),%eax
40ba62:	33 d2                	xor    %edx,%edx
40ba64:	50                   	push   %eax
40ba65:	6a 0c                	push   $0xc
40ba67:	59                   	pop    %ecx
40ba68:	e8 36 db ff ff       	call   0x4095a3
40ba6d:	8b d8                	mov    %eax,%ebx
40ba6f:	85 db                	test   %ebx,%ebx
40ba71:	75 0e                	jne    0x40ba81
40ba73:	ff 15 48 20 41 00    	call   *0x412048
40ba79:	85 c0                	test   %eax,%eax
40ba7b:	75 37                	jne    0x40bab4
40ba7d:	6a 08                	push   $0x8
40ba7f:	eb 2d                	jmp    0x40baae
40ba81:	8d 47 01             	lea    0x1(%edi),%eax
40ba84:	ba 54 11 40 00       	mov    $0x401154,%edx
40ba89:	50                   	push   %eax
40ba8a:	8b cb                	mov    %ebx,%ecx
40ba8c:	e8 65 e9 ff ff       	call   0x40a3f6
40ba91:	8d 47 02             	lea    0x2(%edi),%eax
40ba94:	8b d6                	mov    %esi,%edx
40ba96:	50                   	push   %eax
40ba97:	8b cb                	mov    %ebx,%ecx
40ba99:	e8 b8 e9 ff ff       	call   0x40a456
40ba9e:	8b c3                	mov    %ebx,%eax
40baa0:	eb 14                	jmp    0x40bab6
40baa2:	ff 15 48 20 41 00    	call   *0x412048
40baa8:	85 c0                	test   %eax,%eax
40baaa:	75 08                	jne    0x40bab4
40baac:	6a 57                	push   $0x57
40baae:	ff 15 74 20 41 00    	call   *0x412074
40bab4:	33 c0                	xor    %eax,%eax
40bab6:	5f                   	pop    %edi
40bab7:	5e                   	pop    %esi
40bab8:	5b                   	pop    %ebx
40bab9:	c3                   	ret
40baba:	8b ff                	mov    %edi,%edi
40babc:	55                   	push   %ebp
40babd:	8b ec                	mov    %esp,%ebp
40babf:	83 ec 10             	sub    $0x10,%esp
40bac2:	53                   	push   %ebx
40bac3:	56                   	push   %esi
40bac4:	57                   	push   %edi
40bac5:	33 ff                	xor    %edi,%edi
40bac7:	8b d9                	mov    %ecx,%ebx
40bac9:	57                   	push   %edi
40baca:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40bacd:	89 7d f8             	mov    %edi,-0x8(%ebp)
40bad0:	ff 15 74 20 41 00    	call   *0x412074
40bad6:	8b 75 08             	mov    0x8(%ebp),%esi
40bad9:	85 f6                	test   %esi,%esi
40badb:	75 15                	jne    0x40baf2
40badd:	ff 15 48 20 41 00    	call   *0x412048
40bae3:	85 c0                	test   %eax,%eax
40bae5:	0f 85 6e 02 00 00    	jne    0x40bd59
40baeb:	6a 57                	push   $0x57
40baed:	e9 61 02 00 00       	jmp    0x40bd53
40baf2:	85 db                	test   %ebx,%ebx
40baf4:	74 e7                	je     0x40badd
40baf6:	83 0b ff             	orl    $0xffffffff,(%ebx)
40baf9:	83 c6 3c             	add    $0x3c,%esi
40bafc:	89 7d fc             	mov    %edi,-0x4(%ebp)
40baff:	8d 46 c4             	lea    -0x3c(%esi),%eax
40bb02:	85 c0                	test   %eax,%eax
40bb04:	0f 84 3a 02 00 00    	je     0x40bd44
40bb0a:	6a ff                	push   $0xffffffff
40bb0c:	68 94 19 40 00       	push   $0x401994
40bb11:	6a ff                	push   $0xffffffff
40bb13:	8d 46 c4             	lea    -0x3c(%esi),%eax
40bb16:	50                   	push   %eax
40bb17:	6a 01                	push   $0x1
40bb19:	ff 15 b0 20 41 00    	call   *0x4120b0
40bb1f:	50                   	push   %eax
40bb20:	ff 15 ac 20 41 00    	call   *0x4120ac
40bb26:	83 c0 fe             	add    $0xfffffffe,%eax
40bb29:	75 b2                	jne    0x40badd
40bb2b:	8b 4e d8             	mov    -0x28(%esi),%ecx
40bb2e:	33 d2                	xor    %edx,%edx
40bb30:	8b 7e d4             	mov    -0x2c(%esi),%edi
40bb33:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40bb36:	39 16                	cmp    %edx,(%esi)
40bb38:	75 a3                	jne    0x40badd
40bb3a:	39 56 04             	cmp    %edx,0x4(%esi)
40bb3d:	75 9e                	jne    0x40badd
40bb3f:	39 56 08             	cmp    %edx,0x8(%esi)
40bb42:	75 99                	jne    0x40badd
40bb44:	39 56 0c             	cmp    %edx,0xc(%esi)
40bb47:	75 94                	jne    0x40badd
40bb49:	8b df                	mov    %edi,%ebx
40bb4b:	81 e3 00 00 04 00    	and    $0x40000,%ebx
40bb51:	8b c3                	mov    %ebx,%eax
40bb53:	0b c2                	or     %edx,%eax
40bb55:	75 1b                	jne    0x40bb72
40bb57:	39 56 e4             	cmp    %edx,-0x1c(%esi)
40bb5a:	74 81                	je     0x40badd
40bb5c:	ff 76 e4             	push   -0x1c(%esi)
40bb5f:	ff 15 d4 20 41 00    	call   *0x4120d4
40bb65:	85 c0                	test   %eax,%eax
40bb67:	0f 84 70 ff ff ff    	je     0x40badd
40bb6d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40bb70:	33 d2                	xor    %edx,%edx
40bb72:	8b c7                	mov    %edi,%eax
40bb74:	25 00 00 02 00       	and    $0x20000,%eax
40bb79:	0b c2                	or     %edx,%eax
40bb7b:	74 19                	je     0x40bb96
40bb7d:	83 7e cc 0a          	cmpl   $0xa,-0x34(%esi)
40bb81:	0f 85 56 ff ff ff    	jne    0x40badd
40bb87:	33 c0                	xor    %eax,%eax
40bb89:	40                   	inc    %eax
40bb8a:	39 45 f8             	cmp    %eax,-0x8(%ebp)
40bb8d:	0f 84 4a ff ff ff    	je     0x40badd
40bb93:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bb96:	0b da                	or     %edx,%ebx
40bb98:	74 13                	je     0x40bbad
40bb9a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40bb9d:	83 38 ff             	cmpl   $0xffffffff,(%eax)
40bba0:	0f 85 37 ff ff ff    	jne    0x40badd
40bba6:	8b 55 fc             	mov    -0x4(%ebp),%edx
40bba9:	89 10                	mov    %edx,(%eax)
40bbab:	33 d2                	xor    %edx,%edx
40bbad:	bb 00 00 06 00       	mov    $0x60000,%ebx
40bbb2:	8b c7                	mov    %edi,%eax
40bbb4:	23 c3                	and    %ebx,%eax
40bbb6:	3b c3                	cmp    %ebx,%eax
40bbb8:	0f 84 1f ff ff ff    	je     0x40badd
40bbbe:	8b 46 cc             	mov    -0x34(%esi),%eax
40bbc1:	48                   	dec    %eax
40bbc2:	83 f8 09             	cmp    $0x9,%eax
40bbc5:	0f 87 12 ff ff ff    	ja     0x40badd
40bbcb:	ff 24 85 62 bd 40 00 	jmp    *0x40bd62(,%eax,4)
40bbd2:	8b df                	mov    %edi,%ebx
40bbd4:	81 e3 00 00 01 00    	and    $0x10000,%ebx
40bbda:	8b c3                	mov    %ebx,%eax
40bbdc:	0b c2                	or     %edx,%eax
40bbde:	74 29                	je     0x40bc09
40bbe0:	8b c7                	mov    %edi,%eax
40bbe2:	83 e0 01             	and    $0x1,%eax
40bbe5:	0b c2                	or     %edx,%eax
40bbe7:	0f 85 f0 fe ff ff    	jne    0x40badd
40bbed:	39 56 f0             	cmp    %edx,-0x10(%esi)
40bbf0:	0f 85 e7 fe ff ff    	jne    0x40badd
40bbf6:	39 46 f4             	cmp    %eax,-0xc(%esi)
40bbf9:	74 0a                	je     0x40bc05
40bbfb:	83 7e f4 02          	cmpl   $0x2,-0xc(%esi)
40bbff:	0f 82 d8 fe ff ff    	jb     0x40badd
40bc05:	33 c9                	xor    %ecx,%ecx
40bc07:	eb 2f                	jmp    0x40bc38
40bc09:	83 7e f0 00          	cmpl   $0x0,-0x10(%esi)
40bc0d:	0f 84 ca fe ff ff    	je     0x40badd
40bc13:	8b d7                	mov    %edi,%edx
40bc15:	33 c9                	xor    %ecx,%ecx
40bc17:	83 e2 01             	and    $0x1,%edx
40bc1a:	8b c2                	mov    %edx,%eax
40bc1c:	0b c1                	or     %ecx,%eax
40bc1e:	74 18                	je     0x40bc38
40bc20:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40bc23:	8b 4e f0             	mov    -0x10(%esi),%ecx
40bc26:	8b 09                	mov    (%ecx),%ecx
40bc28:	e8 3d ce ff ff       	call   0x408a6a
40bc2d:	85 c0                	test   %eax,%eax
40bc2f:	0f 84 a8 fe ff ff    	je     0x40badd
40bc35:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40bc38:	8b c7                	mov    %edi,%eax
40bc3a:	83 e0 02             	and    $0x2,%eax
40bc3d:	83 c8 00             	or     $0x0,%eax
40bc40:	74 0a                	je     0x40bc4c
40bc42:	83 7e ec 00          	cmpl   $0x0,-0x14(%esi)
40bc46:	0f 84 91 fe ff ff    	je     0x40badd
40bc4c:	0b d1                	or     %ecx,%edx
40bc4e:	0f 85 cf 00 00 00    	jne    0x40bd23
40bc54:	83 7e dc 01          	cmpl   $0x1,-0x24(%esi)
40bc58:	0f 85 7f fe ff ff    	jne    0x40badd
40bc5e:	83 e7 20             	and    $0x20,%edi
40bc61:	0b fa                	or     %edx,%edi
40bc63:	0f 85 74 fe ff ff    	jne    0x40badd
40bc69:	0b da                	or     %edx,%ebx
40bc6b:	0f 85 b4 00 00 00    	jne    0x40bd25
40bc71:	83 7e f4 02          	cmpl   $0x2,-0xc(%esi)
40bc75:	0f 82 62 fe ff ff    	jb     0x40badd
40bc7b:	e9 a5 00 00 00       	jmp    0x40bd25
40bc80:	8b c7                	mov    %edi,%eax
40bc82:	83 e0 02             	and    $0x2,%eax
40bc85:	0b c2                	or     %edx,%eax
40bc87:	0f 85 b3 00 00 00    	jne    0x40bd40
40bc8d:	8b c7                	mov    %edi,%eax
40bc8f:	25 40 00 01 00       	and    $0x10040,%eax
40bc94:	0b c2                	or     %edx,%eax
40bc96:	0f 85 41 fe ff ff    	jne    0x40badd
40bc9c:	8b c7                	mov    %edi,%eax
40bc9e:	25 80 00 00 00       	and    $0x80,%eax
40bca3:	0b c2                	or     %edx,%eax
40bca5:	0f 85 32 fe ff ff    	jne    0x40badd
40bcab:	8b 4e f0             	mov    -0x10(%esi),%ecx
40bcae:	85 c9                	test   %ecx,%ecx
40bcb0:	0f 84 27 fe ff ff    	je     0x40badd
40bcb6:	8b c7                	mov    %edi,%eax
40bcb8:	83 e0 01             	and    $0x1,%eax
40bcbb:	0b c2                	or     %edx,%eax
40bcbd:	74 11                	je     0x40bcd0
40bcbf:	8b 09                	mov    (%ecx),%ecx
40bcc1:	e8 a4 cd ff ff       	call   0x408a6a
40bcc6:	85 c0                	test   %eax,%eax
40bcc8:	0f 84 0f fe ff ff    	je     0x40badd
40bcce:	eb 55                	jmp    0x40bd25
40bcd0:	83 7e dc 01          	cmpl   $0x1,-0x24(%esi)
40bcd4:	0f 87 03 fe ff ff    	ja     0x40badd
40bcda:	83 e7 20             	and    $0x20,%edi
40bcdd:	0b fa                	or     %edx,%edi
40bcdf:	0f 85 f8 fd ff ff    	jne    0x40badd
40bce5:	eb 3e                	jmp    0x40bd25
40bce7:	39 56 f8             	cmp    %edx,-0x8(%esi)
40bcea:	0f 84 ed fd ff ff    	je     0x40badd
40bcf0:	39 56 fc             	cmp    %edx,-0x4(%esi)
40bcf3:	75 30                	jne    0x40bd25
40bcf5:	8d 46 c4             	lea    -0x3c(%esi),%eax
40bcf8:	89 46 fc             	mov    %eax,-0x4(%esi)
40bcfb:	eb 28                	jmp    0x40bd25
40bcfd:	8b c7                	mov    %edi,%eax
40bcff:	83 e0 0f             	and    $0xf,%eax
40bd02:	0b c2                	or     %edx,%eax
40bd04:	0f 85 d3 fd ff ff    	jne    0x40badd
40bd0a:	8b c7                	mov    %edi,%eax
40bd0c:	25 f0 ff 00 00       	and    $0xfff0,%eax
40bd11:	0b c2                	or     %edx,%eax
40bd13:	0f 85 c4 fd ff ff    	jne    0x40badd
40bd19:	81 e7 ff ff ed ff    	and    $0xffedffff,%edi
40bd1f:	0b f9                	or     %ecx,%edi
40bd21:	eb bc                	jmp    0x40bcdf
40bd23:	33 d2                	xor    %edx,%edx
40bd25:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40bd28:	41                   	inc    %ecx
40bd29:	89 56 e0             	mov    %edx,-0x20(%esi)
40bd2c:	83 c6 50             	add    $0x50,%esi
40bd2f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40bd32:	83 f9 0b             	cmp    $0xb,%ecx
40bd35:	0f 82 c4 fd ff ff    	jb     0x40baff
40bd3b:	33 c0                	xor    %eax,%eax
40bd3d:	40                   	inc    %eax
40bd3e:	eb 1b                	jmp    0x40bd5b
40bd40:	6a 78                	push   $0x78
40bd42:	eb 0f                	jmp    0x40bd53
40bd44:	ff 15 48 20 41 00    	call   *0x412048
40bd4a:	85 c0                	test   %eax,%eax
40bd4c:	75 0b                	jne    0x40bd59
40bd4e:	68 2b 04 00 00       	push   $0x42b
40bd53:	ff 15 74 20 41 00    	call   *0x412074
40bd59:	33 c0                	xor    %eax,%eax
40bd5b:	5f                   	pop    %edi
40bd5c:	5e                   	pop    %esi
40bd5d:	5b                   	pop    %ebx
40bd5e:	c9                   	leave
40bd5f:	c2 04 00             	ret    $0x4
40bd62:	d2 bb 40 00 80 bc    	sarb   %cl,-0x437fffc0(%ebx)
40bd68:	40                   	inc    %eax
40bd69:	00 80 bc 40 00 40    	add    %al,0x400040bc(%eax)
40bd6f:	bd 40 00 40 bd       	mov    $0xbd400040,%ebp
40bd74:	40                   	inc    %eax
40bd75:	00 40 bd             	add    %al,-0x43(%eax)
40bd78:	40                   	inc    %eax
40bd79:	00 80 bc 40 00 80    	add    %al,-0x7fffbf44(%eax)
40bd7f:	bc 40 00 e7 bc       	mov    $0xbce70040,%esp
40bd84:	40                   	inc    %eax
40bd85:	00 fd                	add    %bh,%ch
40bd87:	bc 40 00 8b ff       	mov    $0xff8b0040,%esp
40bd8c:	55                   	push   %ebp
40bd8d:	8b ec                	mov    %esp,%ebp
40bd8f:	83 ec 40             	sub    $0x40,%esp
40bd92:	d9 ee                	fldz
40bd94:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
40bd98:	53                   	push   %ebx
40bd99:	56                   	push   %esi
40bd9a:	d9 5d e4             	fstps  -0x1c(%ebp)
40bd9d:	d9 ee                	fldz
40bd9f:	8b da                	mov    %edx,%ebx
40bda1:	33 d2                	xor    %edx,%edx