4737dc:	8b bd e4 ef ff ff    	mov    -0x101c(%ebp),%edi
4737e2:	57                   	push   %edi
4737e3:	ff 50 30             	call   *0x30(%eax)
4737e6:	8b d8                	mov    %eax,%ebx
4737e8:	89 9d c4 ef ff ff    	mov    %ebx,-0x103c(%ebp)
4737ee:	e9 55 ff ff ff       	jmp    0x473748
4737f3:	8b bd c4 ef ff ff    	mov    -0x103c(%ebp),%edi
4737f9:	8b ce                	mov    %esi,%ecx
4737fb:	57                   	push   %edi
4737fc:	ff b5 e4 ef ff ff    	push   -0x101c(%ebp)
473802:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
473809:	ff 50 38             	call   *0x38(%eax)
47380c:	8b 8d d4 ef ff ff    	mov    -0x102c(%ebp),%ecx
473812:	85 c9                	test   %ecx,%ecx
473814:	74 06                	je     0x47381c
473816:	8b 01                	mov    (%ecx),%eax
473818:	6a 01                	push   $0x1
47381a:	ff 10                	call   *(%eax)
47381c:	8b 8d e0 ef ff ff    	mov    -0x1020(%ebp),%ecx
473822:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
473826:	e8 f5 ad 02 00       	call   0x49e620
47382b:	8b 9d d8 ef ff ff    	mov    -0x1028(%ebp),%ebx
473831:	8b 70 14             	mov    0x14(%eax),%esi
473834:	8b 53 04             	mov    0x4(%ebx),%edx
473837:	8b fa                	mov    %edx,%edi
473839:	8b 03                	mov    (%ebx),%eax
47383b:	2b f8                	sub    %eax,%edi
47383d:	c1 ff 02             	sar    $0x2,%edi
473840:	89 95 d8 ef ff ff    	mov    %edx,-0x1028(%ebp)
473846:	89 85 e0 ef ff ff    	mov    %eax,-0x1020(%ebp)
47384c:	89 bd d0 ef ff ff    	mov    %edi,-0x1030(%ebp)
473852:	83 ff 20             	cmp    $0x20,%edi
473855:	7f 10                	jg     0x473867
473857:	56                   	push   %esi
473858:	52                   	push   %edx
473859:	50                   	push   %eax
47385a:	e8 41 8a ff ff       	call   0x46c2a0
47385f:	83 c4 0c             	add    $0xc,%esp
473862:	e9 aa 00 00 00       	jmp    0x473911
473867:	8b c7                	mov    %edi,%eax
473869:	99                   	cltd
47386a:	2b c2                	sub    %edx,%eax
47386c:	d1 f8                	sar    $1,%eax
47386e:	2b f8                	sub    %eax,%edi
473870:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
473875:	3b f8                	cmp    %eax,%edi
473877:	0f 4c c7             	cmovl  %edi,%eax
47387a:	81 ff 00 04 00 00    	cmp    $0x400,%edi
473880:	76 3f                	jbe    0x4738c1
473882:	8b f8                	mov    %eax,%edi
473884:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
473889:	77 26                	ja     0x4738b1
47388b:	85 c0                	test   %eax,%eax
47388d:	7e 22                	jle    0x4738b1
47388f:	90                   	nop
473890:	8d 04 bd 00 00 00 00 	lea    0x0(,%edi,4),%eax
473897:	68 20 0f 67 00       	push   $0x670f20
47389c:	50                   	push   %eax
47389d:	e8 c2 e3 15 00       	call   0x5d1c64
4738a2:	83 c4 08             	add    $0x8,%esp
4738a5:	85 c0                	test   %eax,%eax
4738a7:	0f 85 82 00 00 00    	jne    0x47392f
4738ad:	d1 ef                	shr    $1,%edi
4738af:	75 df                	jne    0x473890
4738b1:	33 c0                	xor    %eax,%eax
4738b3:	50                   	push   %eax
4738b4:	e8 a6 e3 15 00       	call   0x5d1c5f
4738b9:	83 c4 04             	add    $0x4,%esp
4738bc:	bf 00 04 00 00       	mov    $0x400,%edi
4738c1:	8d 85 f0 ef ff ff    	lea    -0x1010(%ebp),%eax
4738c7:	89 85 e8 ef ff ff    	mov    %eax,-0x1018(%ebp)
4738cd:	89 bd ec ef ff ff    	mov    %edi,-0x1014(%ebp)
4738d3:	56                   	push   %esi
4738d4:	57                   	push   %edi
4738d5:	50                   	push   %eax
4738d6:	ff b5 d0 ef ff ff    	push   -0x1030(%ebp)
4738dc:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
4738e3:	ff b5 d8 ef ff ff    	push   -0x1028(%ebp)
4738e9:	ff b5 e0 ef ff ff    	push   -0x1020(%ebp)
4738ef:	e8 6c ab ff ff       	call   0x46e460
4738f4:	83 c4 18             	add    $0x18,%esp
4738f7:	81 bd ec ef ff ff 00 	cmpl   $0x400,-0x1014(%ebp)
4738fe:	04 00 00
473901:	76 0e                	jbe    0x473911
473903:	ff b5 e8 ef ff ff    	push   -0x1018(%ebp)
473909:	e8 51 e3 15 00       	call   0x5d1c5f
47390e:	83 c4 04             	add    $0x4,%esp
473911:	8b c3                	mov    %ebx,%eax
473913:	8b 4d f4             	mov    -0xc(%ebp),%ecx
473916:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
47391d:	59                   	pop    %ecx
47391e:	5f                   	pop    %edi
47391f:	5e                   	pop    %esi
473920:	5b                   	pop    %ebx
473921:	8b 4d f0             	mov    -0x10(%ebp),%ecx
473924:	33 cd                	xor    %ebp,%ecx
473926:	e8 fb e0 15 00       	call   0x5d1a26
47392b:	8b e5                	mov    %ebp,%esp
47392d:	5d                   	pop    %ebp
47392e:	c3                   	ret
47392f:	81 ff 00 04 00 00    	cmp    $0x400,%edi
473935:	0f 86 78 ff ff ff    	jbe    0x4738b3
47393b:	eb 8a                	jmp    0x4738c7
47393d:	e8 5e 8e fe ff       	call   0x45c7a0
473942:	cc                   	int3
473943:	cc                   	int3
473944:	cc                   	int3
473945:	cc                   	int3
473946:	cc                   	int3
473947:	cc                   	int3
473948:	cc                   	int3
473949:	cc                   	int3
47394a:	cc                   	int3
47394b:	cc                   	int3
47394c:	cc                   	int3
47394d:	cc                   	int3
47394e:	cc                   	int3
47394f:	cc                   	int3
473950:	55                   	push   %ebp
473951:	8b ec                	mov    %esp,%ebp
473953:	6a ff                	push   $0xffffffff
473955:	68 fe 9e 5f 00       	push   $0x5f9efe
47395a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
473960:	50                   	push   %eax
473961:	83 ec 74             	sub    $0x74,%esp
473964:	a1 c0 14 69 00       	mov    0x6914c0,%eax
473969:	33 c5                	xor    %ebp,%eax
47396b:	89 45 f0             	mov    %eax,-0x10(%ebp)
47396e:	53                   	push   %ebx
47396f:	56                   	push   %esi
473970:	57                   	push   %edi
473971:	50                   	push   %eax
473972:	8d 45 f4             	lea    -0xc(%ebp),%eax
473975:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
47397b:	8b 7d 08             	mov    0x8(%ebp),%edi
47397e:	8b 5d 10             	mov    0x10(%ebp),%ebx
473981:	8b 45 14             	mov    0x14(%ebp),%eax
473984:	8b 75 0c             	mov    0xc(%ebp),%esi
473987:	89 7d 80             	mov    %edi,-0x80(%ebp)
47398a:	c7 45 8c 00 00 00 00 	movl   $0x0,-0x74(%ebp)
473991:	89 5d 84             	mov    %ebx,-0x7c(%ebp)
473994:	89 45 88             	mov    %eax,-0x78(%ebp)
473997:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
47399d:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
4739a4:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
4739ab:	50                   	push   %eax
4739ac:	56                   	push   %esi
4739ad:	8d 45 c0             	lea    -0x40(%ebp),%eax
4739b0:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4739b7:	50                   	push   %eax
4739b8:	8b cb                	mov    %ebx,%ecx
4739ba:	c7 45 8c 01 00 00 00 	movl   $0x1,-0x74(%ebp)
4739c1:	e8 fa 28 ff ff       	call   0x4662c0
4739c6:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4739cd:	0f 1f 00             	nopl   (%eax)
4739d0:	ff 75 88             	push   -0x78(%ebp)
4739d3:	8d 45 90             	lea    -0x70(%ebp),%eax
4739d6:	8b cb                	mov    %ebx,%ecx
4739d8:	56                   	push   %esi
4739d9:	50                   	push   %eax
4739da:	e8 a1 29 ff ff       	call   0x466380
4739df:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4739e2:	50                   	push   %eax
4739e3:	8d 45 c0             	lea    -0x40(%ebp),%eax
4739e6:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4739ea:	50                   	push   %eax
4739eb:	8b 11                	mov    (%ecx),%edx
4739ed:	8b 42 14             	mov    0x14(%edx),%eax
4739f0:	ff d0                	call   *%eax
4739f2:	84 c0                	test   %al,%al
4739f4:	0f 94 c3             	sete   %bl
4739f7:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
4739fa:	8d 55 90             	lea    -0x70(%ebp),%edx
4739fd:	52                   	push   %edx
4739fe:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
473a02:	8b 01                	mov    (%ecx),%eax
473a04:	ff 50 40             	call   *0x40(%eax)
473a07:	83 7d b0 09          	cmpl   $0x9,-0x50(%ebp)
473a0b:	75 34                	jne    0x473a41
473a0d:	8b 55 ac             	mov    -0x54(%ebp),%edx
473a10:	83 fa 10             	cmp    $0x10,%edx
473a13:	72 2c                	jb     0x473a41
473a15:	8b 4d 98             	mov    -0x68(%ebp),%ecx
473a18:	42                   	inc    %edx
473a19:	8b c1                	mov    %ecx,%eax
473a1b:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
473a21:	72 14                	jb     0x473a37
473a23:	8b 49 fc             	mov    -0x4(%ecx),%ecx
473a26:	83 c2 23             	add    $0x23,%edx
473a29:	2b c1                	sub    %ecx,%eax
473a2b:	83 c0 fc             	add    $0xfffffffc,%eax
473a2e:	83 f8 1f             	cmp    $0x1f,%eax
473a31:	0f 87 e5 00 00 00    	ja     0x473b1c
473a37:	52                   	push   %edx
473a38:	51                   	push   %ecx
473a39:	e8 17 d8 15 00       	call   0x5d1255
473a3e:	83 c4 08             	add    $0x8,%esp
473a41:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
473a45:	84 db                	test   %bl,%bl
473a47:	74 4e                	je     0x473a97
473a49:	8b 47 04             	mov    0x4(%edi),%eax
473a4c:	8d 4d c8             	lea    -0x38(%ebp),%ecx
473a4f:	51                   	push   %ecx
473a50:	3b 47 08             	cmp    0x8(%edi),%eax
473a53:	74 26                	je     0x473a7b
473a55:	8b c8                	mov    %eax,%ecx
473a57:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)
473a5e:	e8 8d ba ff ff       	call   0x46f4f0
473a63:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
473a66:	8d 55 c0             	lea    -0x40(%ebp),%edx
473a69:	83 47 04 20          	addl   $0x20,0x4(%edi)
473a6d:	52                   	push   %edx
473a6e:	8b 01                	mov    (%ecx),%eax
473a70:	ff 50 48             	call   *0x48(%eax)
473a73:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
473a76:	e9 55 ff ff ff       	jmp    0x4739d0
473a7b:	50                   	push   %eax
473a7c:	8b cf                	mov    %edi,%ecx
473a7e:	e8 bd 80 ff ff       	call   0x46bb40
473a83:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
473a86:	8d 55 c0             	lea    -0x40(%ebp),%edx
473a89:	52                   	push   %edx
473a8a:	8b 01                	mov    (%ecx),%eax
473a8c:	ff 50 48             	call   *0x48(%eax)
473a8f:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
473a92:	e9 39 ff ff ff       	jmp    0x4739d0
473a97:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
473a9a:	8d 55 c0             	lea    -0x40(%ebp),%edx
473a9d:	52                   	push   %edx
473a9e:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
473aa5:	8b 01                	mov    (%ecx),%eax
473aa7:	ff 50 40             	call   *0x40(%eax)
473aaa:	83 7d e0 09          	cmpl   $0x9,-0x20(%ebp)
473aae:	75 30                	jne    0x473ae0
473ab0:	8b 55 dc             	mov    -0x24(%ebp),%edx
473ab3:	83 fa 10             	cmp    $0x10,%edx
473ab6:	72 28                	jb     0x473ae0
473ab8:	8b 4d c8             	mov    -0x38(%ebp),%ecx
473abb:	42                   	inc    %edx
473abc:	8b c1                	mov    %ecx,%eax
473abe:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
473ac4:	72 10                	jb     0x473ad6
473ac6:	8b 49 fc             	mov    -0x4(%ecx),%ecx
473ac9:	83 c2 23             	add    $0x23,%edx
473acc:	2b c1                	sub    %ecx,%eax
473ace:	83 c0 fc             	add    $0xfffffffc,%eax
473ad1:	83 f8 1f             	cmp    $0x1f,%eax
473ad4:	77 46                	ja     0x473b1c
473ad6:	52                   	push   %edx
473ad7:	51                   	push   %ecx
473ad8:	e8 78 d7 15 00       	call   0x5d1255
473add:	83 c4 08             	add    $0x8,%esp
473ae0:	8b 57 04             	mov    0x4(%edi),%edx
473ae3:	8b ca                	mov    %edx,%ecx
473ae5:	8b 37                	mov    (%edi),%esi
473ae7:	2b ce                	sub    %esi,%ecx
473ae9:	ff 75 80             	push   -0x80(%ebp)
473aec:	c1 f9 05             	sar    $0x5,%ecx
473aef:	51                   	push   %ecx
473af0:	52                   	push   %edx
473af1:	56                   	push   %esi
473af2:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
473af6:	e8 d5 a7 ff ff       	call   0x46e2d0
473afb:	83 c4 10             	add    $0x10,%esp
473afe:	8b c7                	mov    %edi,%eax
473b00:	8b 4d f4             	mov    -0xc(%ebp),%ecx
473b03:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
473b0a:	59                   	pop    %ecx
473b0b:	5f                   	pop    %edi
473b0c:	5e                   	pop    %esi
473b0d:	5b                   	pop    %ebx
473b0e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
473b11:	33 cd                	xor    %ebp,%ecx
473b13:	e8 0e df 15 00       	call   0x5d1a26
473b18:	8b e5                	mov    %ebp,%esp
473b1a:	5d                   	pop    %ebp
473b1b:	c3                   	ret
473b1c:	e8 cf 26 16 00       	call   0x5d61f0
473b21:	cc                   	int3
473b22:	cc                   	int3
473b23:	cc                   	int3
473b24:	cc                   	int3
473b25:	cc                   	int3
473b26:	cc                   	int3
473b27:	cc                   	int3
473b28:	cc                   	int3
473b29:	cc                   	int3
473b2a:	cc                   	int3
473b2b:	cc                   	int3
473b2c:	cc                   	int3
473b2d:	cc                   	int3
473b2e:	cc                   	int3
473b2f:	cc                   	int3
473b30:	55                   	push   %ebp
473b31:	8b ec                	mov    %esp,%ebp
473b33:	8b 45 08             	mov    0x8(%ebp),%eax
473b36:	ff 75 14             	push   0x14(%ebp)
473b39:	c1 e0 03             	shl    $0x3,%eax
473b3c:	83 c8 01             	or     $0x1,%eax
473b3f:	50                   	push   %eax
473b40:	e8 7b cf fd ff       	call   0x450ac0
473b45:	f2 0f 10 45 0c       	movsd  0xc(%ebp),%xmm0
473b4a:	83 c4 08             	add    $0x8,%esp
473b4d:	f2 0f 11 00          	movsd  %xmm0,(%eax)
473b51:	83 c0 08             	add    $0x8,%eax
473b54:	5d                   	pop    %ebp
473b55:	c3                   	ret
473b56:	cc                   	int3
473b57:	cc                   	int3
473b58:	cc                   	int3
473b59:	cc                   	int3
473b5a:	cc                   	int3
473b5b:	cc                   	int3
473b5c:	cc                   	int3
473b5d:	cc                   	int3
473b5e:	cc                   	int3
473b5f:	cc                   	int3
473b60:	55                   	push   %ebp
473b61:	8b ec                	mov    %esp,%ebp
473b63:	8b 45 08             	mov    0x8(%ebp),%eax
473b66:	ff 75 10             	push   0x10(%ebp)
473b69:	c1 e0 03             	shl    $0x3,%eax
473b6c:	83 c8 05             	or     $0x5,%eax
473b6f:	50                   	push   %eax
473b70:	e8 4b cf fd ff       	call   0x450ac0
473b75:	8b 4d 0c             	mov    0xc(%ebp),%ecx
473b78:	83 c4 08             	add    $0x8,%esp
473b7b:	89 08                	mov    %ecx,(%eax)
473b7d:	83 c0 04             	add    $0x4,%eax
473b80:	5d                   	pop    %ebp
473b81:	c3                   	ret
473b82:	cc                   	int3
473b83:	cc                   	int3
473b84:	cc                   	int3
473b85:	cc                   	int3
473b86:	cc                   	int3
473b87:	cc                   	int3
473b88:	cc                   	int3
473b89:	cc                   	int3
473b8a:	cc                   	int3
473b8b:	cc                   	int3
473b8c:	cc                   	int3
473b8d:	cc                   	int3
473b8e:	cc                   	int3
473b8f:	cc                   	int3
473b90:	55                   	push   %ebp
473b91:	8b ec                	mov    %esp,%ebp
473b93:	8b 45 08             	mov    0x8(%ebp),%eax
473b96:	ff 75 14             	push   0x14(%ebp)
473b99:	c1 e0 03             	shl    $0x3,%eax