456790:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
456796:	ff 15 1c 74 4a 00    	call   *0x4a741c
45679c:	e9 fa 01 00 00       	jmp    0x45699b
4567a1:	8b b7 f0 00 00 00    	mov    0xf0(%edi),%esi
4567a7:	89 b5 e0 fd ff ff    	mov    %esi,-0x220(%ebp)
4567ad:	ff 15 1c 74 4a 00    	call   *0x4a741c
4567b3:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4567b7:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
4567bd:	ff 15 1c 74 4a 00    	call   *0x4a741c
4567c3:	33 c0                	xor    %eax,%eax
4567c5:	39 46 04             	cmp    %eax,0x4(%esi)
4567c8:	75 0f                	jne    0x4567d9
4567ca:	8b ce                	mov    %esi,%ecx
4567cc:	e8 60 7c fc ff       	call   0x41e431
4567d1:	85 c0                	test   %eax,%eax
4567d3:	0f 84 c2 01 00 00    	je     0x45699b
4567d9:	8b 46 04             	mov    0x4(%esi),%eax
4567dc:	83 78 2c 01          	cmpl   $0x1,0x2c(%eax)
4567e0:	0f 8c a4 01 00 00    	jl     0x45698a
4567e6:	83 78 30 01          	cmpl   $0x1,0x30(%eax)
4567ea:	0f 8c 9a 01 00 00    	jl     0x45698a
4567f0:	e8 ff 77 fd ff       	call   0x42dff4
4567f5:	e8 01 68 fd ff       	call   0x42cffb
4567fa:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
456800:	56                   	push   %esi
456801:	e8 9d 01 00 00       	call   0x4569a3
456806:	85 c0                	test   %eax,%eax
456808:	0f 84 8d 01 00 00    	je     0x45699b
45680e:	8b 87 ec 00 00 00    	mov    0xec(%edi),%eax
456814:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
45681a:	85 c0                	test   %eax,%eax
45681c:	74 1d                	je     0x45683b
45681e:	8b 00                	mov    (%eax),%eax
456820:	6a 01                	push   $0x1
456822:	8b 70 04             	mov    0x4(%eax),%esi
456825:	8b ce                	mov    %esi,%ecx
456827:	ff 15 2c 81 4a 00    	call   *0x4a812c
45682d:	8b 8d d8 fd ff ff    	mov    -0x228(%ebp),%ecx
456833:	ff d6                	call   *%esi
456835:	8b b5 e0 fd ff ff    	mov    -0x220(%ebp),%esi
45683b:	83 a7 f0 00 00 00 00 	andl   $0x0,0xf0(%edi)
456842:	89 b7 ec 00 00 00    	mov    %esi,0xec(%edi)
456848:	a1 90 57 4a 00       	mov    0x4a5790,%eax
45684d:	85 c0                	test   %eax,%eax
45684f:	0f 84 30 01 00 00    	je     0x456985
456855:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
456859:	0f 84 26 01 00 00    	je     0x456985
45685f:	83 c0 2c             	add    $0x2c,%eax
456862:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
456868:	50                   	push   %eax
456869:	ff 15 18 74 4a 00    	call   *0x4a7418
45686f:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
456875:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
45687c:	ff 15 20 74 4a 00    	call   *0x4a7420
456882:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
456886:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
45688c:	83 78 f8 00          	cmpl   $0x0,-0x8(%eax)
456890:	74 28                	je     0x4568ba
456892:	68 04 01 00 00       	push   $0x104
456897:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
45689d:	51                   	push   %ecx
45689e:	50                   	push   %eax
45689f:	ff 15 58 70 4a 00    	call   *0x4a7058
4568a5:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
4568ab:	50                   	push   %eax
4568ac:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
4568b2:	ff 15 64 75 4a 00    	call   *0x4a7564
4568b8:	eb 11                	jmp    0x4568cb
4568ba:	68 03 f0 00 00       	push   $0xf003
4568bf:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
4568c5:	ff 15 40 74 4a 00    	call   *0x4a7440
4568cb:	8d 8d dc fd ff ff    	lea    -0x224(%ebp),%ecx
4568d1:	ff 15 20 74 4a 00    	call   *0x4a7420
4568d7:	68 dd c3 00 00       	push   $0xc3dd
4568dc:	8d 8d dc fd ff ff    	lea    -0x224(%ebp),%ecx
4568e2:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4568e6:	ff 15 40 74 4a 00    	call   *0x4a7440
4568ec:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
4568f2:	33 c9                	xor    %ecx,%ecx
4568f4:	6a 02                	push   $0x2
4568f6:	5a                   	pop    %edx
4568f7:	8b 70 f8             	mov    -0x8(%eax),%esi
4568fa:	81 c6 05 01 00 00    	add    $0x105,%esi
456900:	8b c6                	mov    %esi,%eax
456902:	f7 e2                	mul    %edx
456904:	0f 90 c1             	seto   %cl
456907:	f7 d9                	neg    %ecx
456909:	0b c8                	or     %eax,%ecx
45690b:	51                   	push   %ecx
45690c:	e8 fd 70 03 00       	call   0x48da0e
456911:	59                   	pop    %ecx
456912:	8b f8                	mov    %eax,%edi
456914:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
45691a:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
456920:	8d 85 cc fd ff ff    	lea    -0x234(%ebp),%eax
456926:	50                   	push   %eax
456927:	56                   	push   %esi
456928:	57                   	push   %edi
456929:	6a 00                	push   $0x0
45692b:	6a 00                	push   $0x0
45692d:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
456933:	68 00 24 00 00       	push   $0x2400
456938:	ff 15 b4 72 4a 00    	call   *0x4a72b4
45693e:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
456944:	57                   	push   %edi
456945:	8b 01                	mov    (%ecx),%eax
456947:	8b 70 58             	mov    0x58(%eax),%esi
45694a:	8b ce                	mov    %esi,%ecx
45694c:	ff 15 2c 81 4a 00    	call   *0x4a812c
456952:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
456958:	ff d6                	call   *%esi
45695a:	57                   	push   %edi
45695b:	e8 ec 70 03 00       	call   0x48da4c
456960:	59                   	pop    %ecx
456961:	8d 8d dc fd ff ff    	lea    -0x224(%ebp),%ecx
456967:	ff 15 1c 74 4a 00    	call   *0x4a741c
45696d:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
456973:	ff 15 1c 74 4a 00    	call   *0x4a741c
456979:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
45697f:	ff 15 1c 74 4a 00    	call   *0x4a741c
456985:	33 c0                	xor    %eax,%eax
456987:	40                   	inc    %eax
456988:	eb 13                	jmp    0x45699d
45698a:	6a 30                	push   $0x30
45698c:	ba 00 e0 00 00       	mov    $0xe000,%edx
456991:	b9 fb 08 00 00       	mov    $0x8fb,%ecx
456996:	e8 09 99 fc ff       	call   0x4202a4
45699b:	33 c0                	xor    %eax,%eax
45699d:	e8 13 9b 03 00       	call   0x4904b5
4569a2:	c3                   	ret
4569a3:	6a 38                	push   $0x38
4569a5:	b8 dd 40 49 00       	mov    $0x4940dd,%eax
4569aa:	e8 57 9b 03 00       	call   0x490506
4569af:	8b d9                	mov    %ecx,%ebx
4569b1:	8b 45 08             	mov    0x8(%ebp),%eax
4569b4:	8b 70 04             	mov    0x4(%eax),%esi
4569b7:	8d 45 e0             	lea    -0x20(%ebp),%eax
4569ba:	50                   	push   %eax
4569bb:	ff 73 20             	push   0x20(%ebx)
4569be:	ff 15 ec 7d 4a 00    	call   *0x4a7dec
4569c4:	68 00 01 00 00       	push   $0x100
4569c9:	ff 15 14 74 4a 00    	call   *0x4a7414
4569cf:	59                   	pop    %ecx
4569d0:	89 45 bc             	mov    %eax,-0x44(%ebp)
4569d3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4569d7:	85 c0                	test   %eax,%eax
4569d9:	74 0f                	je     0x4569ea
4569db:	56                   	push   %esi
4569dc:	8b c8                	mov    %eax,%ecx
4569de:	e8 e3 b0 fd ff       	call   0x431ac6
4569e3:	8b f8                	mov    %eax,%edi
4569e5:	89 45 bc             	mov    %eax,-0x44(%ebp)
4569e8:	eb 05                	jmp    0x4569ef
4569ea:	33 ff                	xor    %edi,%edi
4569ec:	89 7d bc             	mov    %edi,-0x44(%ebp)
4569ef:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4569f3:	85 ff                	test   %edi,%edi
4569f5:	75 13                	jne    0x456a0a
4569f7:	6a 01                	push   $0x1
4569f9:	b9 e0 55 4a 00       	mov    $0x4a55e0,%ecx
4569fe:	e8 76 72 ff ff       	call   0x44dc79
456a03:	33 c0                	xor    %eax,%eax
456a05:	e9 0f 01 00 00       	jmp    0x456b19
456a0a:	83 3d 58 58 4a 00 00 	cmpl   $0x0,0x4a5858
456a11:	74 3a                	je     0x456a4d
456a13:	8b 43 58             	mov    0x58(%ebx),%eax
456a16:	85 c0                	test   %eax,%eax
456a18:	74 0d                	je     0x456a27
456a1a:	8d 4d d0             	lea    -0x30(%ebp),%ecx
456a1d:	51                   	push   %ecx
456a1e:	ff 70 20             	push   0x20(%eax)
456a21:	ff 15 e8 7d 4a 00    	call   *0x4a7de8
456a27:	8b 43 5c             	mov    0x5c(%ebx),%eax
456a2a:	85 c0                	test   %eax,%eax
456a2c:	74 0d                	je     0x456a3b
456a2e:	8d 4d c0             	lea    -0x40(%ebp),%ecx
456a31:	51                   	push   %ecx
456a32:	ff 70 20             	push   0x20(%eax)
456a35:	ff 15 e8 7d 4a 00    	call   *0x4a7de8
456a3b:	8b 45 dc             	mov    -0x24(%ebp),%eax
456a3e:	2b 45 d4             	sub    -0x2c(%ebp),%eax
456a41:	01 45 e4             	add    %eax,-0x1c(%ebp)
456a44:	8b 45 c8             	mov    -0x38(%ebp),%eax
456a47:	2b 45 c0             	sub    -0x40(%ebp),%eax
456a4a:	01 45 e0             	add    %eax,-0x20(%ebp)
456a4d:	51                   	push   %ecx
456a4e:	53                   	push   %ebx
456a4f:	8d 45 e0             	lea    -0x20(%ebp),%eax
456a52:	50                   	push   %eax
456a53:	51                   	push   %ecx
456a54:	8b cf                	mov    %edi,%ecx
456a56:	e8 0e b3 fd ff       	call   0x431d69
456a5b:	85 c0                	test   %eax,%eax
456a5d:	74 a4                	je     0x456a03
456a5f:	8b 43 48             	mov    0x48(%ebx),%eax
456a62:	85 c0                	test   %eax,%eax
456a64:	74 42                	je     0x456aa8
456a66:	ff 70 20             	push   0x20(%eax)
456a69:	ff 15 b0 7d 4a 00    	call   *0x4a7db0
456a6f:	85 c0                	test   %eax,%eax
456a71:	74 17                	je     0x456a8a
456a73:	8b 7b 48             	mov    0x48(%ebx),%edi
456a76:	8b 07                	mov    (%edi),%eax
456a78:	8b 70 60             	mov    0x60(%eax),%esi
456a7b:	8b ce                	mov    %esi,%ecx
456a7d:	ff 15 2c 81 4a 00    	call   *0x4a812c
456a83:	8b cf                	mov    %edi,%ecx
456a85:	ff d6                	call   *%esi
456a87:	8b 7d bc             	mov    -0x44(%ebp),%edi
456a8a:	8b 43 48             	mov    0x48(%ebx),%eax
456a8d:	89 45 bc             	mov    %eax,-0x44(%ebp)
456a90:	85 c0                	test   %eax,%eax
456a92:	74 14                	je     0x456aa8
456a94:	8b 00                	mov    (%eax),%eax
456a96:	6a 01                	push   $0x1
456a98:	8b 70 04             	mov    0x4(%eax),%esi
456a9b:	8b ce                	mov    %esi,%ecx
456a9d:	ff 15 2c 81 4a 00    	call   *0x4a812c
456aa3:	8b 4d bc             	mov    -0x44(%ebp),%ecx
456aa6:	ff d6                	call   *%esi
456aa8:	8b 43 4c             	mov    0x4c(%ebx),%eax
456aab:	89 7b 48             	mov    %edi,0x48(%ebx)
456aae:	85 c0                	test   %eax,%eax
456ab0:	74 19                	je     0x456acb
456ab2:	89 47 78             	mov    %eax,0x78(%edi)
456ab5:	8b 73 4c             	mov    0x4c(%ebx),%esi
456ab8:	e8 78 98 fc ff       	call   0x420335
456abd:	8b c8                	mov    %eax,%ecx
456abf:	ff 15 cc 75 4a 00    	call   *0x4a75cc
456ac5:	8b 40 48             	mov    0x48(%eax),%eax
456ac8:	89 46 40             	mov    %eax,0x40(%esi)
456acb:	8b 4b 58             	mov    0x58(%ebx),%ecx
456ace:	85 c9                	test   %ecx,%ecx
456ad0:	74 13                	je     0x456ae5
456ad2:	8b 53 5c             	mov    0x5c(%ebx),%edx
456ad5:	85 d2                	test   %edx,%edx
456ad7:	74 0c                	je     0x456ae5
456ad9:	8b 43 48             	mov    0x48(%ebx),%eax
456adc:	89 48 7c             	mov    %ecx,0x7c(%eax)
456adf:	89 90 80 00 00 00    	mov    %edx,0x80(%eax)
456ae5:	d9 e8                	fld1
456ae7:	6a 01                	push   $0x1
456ae9:	51                   	push   %ecx
456aea:	51                   	push   %ecx
456aeb:	8b 4b 48             	mov    0x48(%ebx),%ecx
456aee:	dd 1c 24             	fstpl  (%esp)
456af1:	e8 27 cb fd ff       	call   0x43361d
456af6:	8b 4b 48             	mov    0x48(%ebx),%ecx
456af9:	6a 00                	push   $0x0
456afb:	6a 00                	push   $0x0
456afd:	e8 39 cc fd ff       	call   0x43373b
456b02:	ff 15 58 75 4a 00    	call   *0x4a7558
456b08:	8b 53 48             	mov    0x48(%ebx),%edx
456b0b:	8b 48 04             	mov    0x4(%eax),%ecx
456b0e:	ff 72 20             	push   0x20(%edx)
456b11:	e8 5f a9 ff ff       	call   0x451475
456b16:	33 c0                	xor    %eax,%eax
456b18:	40                   	inc    %eax
456b19:	e8 97 99 03 00       	call   0x4904b5
456b1e:	c2 04 00             	ret    $0x4
456b21:	8b ff                	mov    %edi,%edi
456b23:	56                   	push   %esi
456b24:	57                   	push   %edi
456b25:	ff 15 3c 77 4a 00    	call   *0x4a773c
456b2b:	8b 0d 2c 47 4a 00    	mov    0x4a472c,%ecx
456b31:	33 ff                	xor    %edi,%edi
456b33:	8b f0                	mov    %eax,%esi
456b35:	39 79 20             	cmp    %edi,0x20(%ecx)
456b38:	75 49                	jne    0x456b83
456b3a:	56                   	push   %esi
456b3b:	e8 ca 5e fc ff       	call   0x41ca0a
456b40:	85 c0                	test   %eax,%eax
456b42:	74 65                	je     0x456ba9
456b44:	8b 0d 68 58 4a 00    	mov    0x4a5868,%ecx
456b4a:	85 c9                	test   %ecx,%ecx
456b4c:	74 12                	je     0x456b60
456b4e:	a1 2c 47 4a 00       	mov    0x4a472c,%eax
456b53:	57                   	push   %edi
456b54:	51                   	push   %ecx
456b55:	6a 30                	push   $0x30
456b57:	ff 70 20             	push   0x20(%eax)
456b5a:	ff 15 f8 7d 4a 00    	call   *0x4a7df8
456b60:	8b 0d 2c 47 4a 00    	mov    0x4a472c,%ecx
456b66:	85 f6                	test   %esi,%esi
456b68:	74 03                	je     0x456b6d
456b6a:	8b 7e 20             	mov    0x20(%esi),%edi
456b6d:	89 79 24             	mov    %edi,0x24(%ecx)
456b70:	a1 08 58 4a 00       	mov    0x4a5808,%eax
456b75:	f7 d8                	neg    %eax
456b77:	1b c0                	sbb    %eax,%eax
456b79:	83 e0 04             	and    $0x4,%eax
456b7c:	50                   	push   %eax
456b7d:	ff 15 58 74 4a 00    	call   *0x4a7458
456b83:	68 00 50 00 00       	push   $0x5000
456b88:	8b ce                	mov    %esi,%ecx
456b8a:	ff 15 30 7b 4a 00    	call   *0x4a7b30
456b90:	68 00 a0 00 00       	push   $0xa000
456b95:	8b ce                	mov    %esi,%ecx
456b97:	ff 15 30 7b 4a 00    	call   *0x4a7b30
456b9d:	83 8e bc 00 00 00 0c 	orl    $0xc,0xbc(%esi)
456ba4:	33 c0                	xor    %eax,%eax
456ba6:	5f                   	pop    %edi
456ba7:	5e                   	pop    %esi
456ba8:	c3                   	ret
456ba9:	83 c8 ff             	or     $0xffffffff,%eax
456bac:	eb f8                	jmp    0x456ba6
456bae:	6a 0c                	push   $0xc
456bb0:	b8 02 41 49 00       	mov    $0x494102,%eax
456bb5:	e8 82 99 03 00       	call   0x49053c
456bba:	8b d9                	mov    %ecx,%ebx
456bbc:	89 5d e8             	mov    %ebx,-0x18(%ebp)
456bbf:	8b 35 0c 58 4a 00    	mov    0x4a580c,%esi
456bc5:	33 ff                	xor    %edi,%edi
456bc7:	21 3d 0c 58 4a 00    	and    %edi,0x4a580c
456bcd:	8b 43 50             	mov    0x50(%ebx),%eax
456bd0:	89 75 ec             	mov    %esi,-0x14(%ebp)
456bd3:	85 c0                	test   %eax,%eax
456bd5:	74 56                	je     0x456c2d
456bd7:	21 7d fc             	and    %edi,-0x4(%ebp)
456bda:	ff 70 20             	push   0x20(%eax)
456bdd:	ff 15 b0 7d 4a 00    	call   *0x4a7db0
456be3:	85 c0                	test   %eax,%eax
456be5:	74 1f                	je     0x456c06
456be7:	8b 7b 50             	mov    0x50(%ebx),%edi
456bea:	8b 07                	mov    (%edi),%eax
456bec:	8b 70 60             	mov    0x60(%eax),%esi
456bef:	8b ce                	mov    %esi,%ecx
456bf1:	ff 15 2c 81 4a 00    	call   *0x4a812c
456bf7:	8b cf                	mov    %edi,%ecx
456bf9:	ff d6                	call   *%esi
456bfb:	eb 09                	jmp    0x456c06
456bfd:	b8 03 6c 45 00       	mov    $0x456c03,%eax
456c02:	c3                   	ret
456c03:	8b 5d e8             	mov    -0x18(%ebp),%ebx
456c06:	8b 43 50             	mov    0x50(%ebx),%eax
456c09:	33 ff                	xor    %edi,%edi
456c0b:	47                   	inc    %edi
456c0c:	89 45 e8             	mov    %eax,-0x18(%ebp)
456c0f:	85 c0                	test   %eax,%eax
456c11:	74 13                	je     0x456c26
456c13:	8b 00                	mov    (%eax),%eax
456c15:	57                   	push   %edi
456c16:	8b 70 04             	mov    0x4(%eax),%esi
456c19:	8b ce                	mov    %esi,%ecx
456c1b:	ff 15 2c 81 4a 00    	call   *0x4a812c
456c21:	8b 4d e8             	mov    -0x18(%ebp),%ecx
456c24:	ff d6                	call   *%esi
456c26:	83 63 50 00          	andl   $0x0,0x50(%ebx)
456c2a:	8b 75 ec             	mov    -0x14(%ebp),%esi
456c2d:	89 35 0c 58 4a 00    	mov    %esi,0x4a580c