451863:	56                   	push   %esi
451864:	8b f1                	mov    %ecx,%esi
451866:	f6 46 18 01          	testb  $0x1,0x18(%esi)
45186a:	57                   	push   %edi
45186b:	75 0a                	jne    0x451877
45186d:	ff 76 14             	push   0x14(%esi)
451870:	6a 01                	push   $0x1
451872:	e9 a6 01 00 00       	jmp    0x451a1d
451877:	8b 45 08             	mov    0x8(%ebp),%eax
45187a:	85 c0                	test   %eax,%eax
45187c:	bb ff ff 00 00       	mov    $0xffff,%ebx
451881:	74 0a                	je     0x45188d
451883:	39 58 08             	cmp    %ebx,0x8(%eax)
451886:	75 05                	jne    0x45188d
451888:	e8 a4 3b fe ff       	call   0x435431
45188d:	6a 00                	push   $0x0
45188f:	8b ce                	mov    %esi,%ecx
451891:	e8 10 fe ff ff       	call   0x4516a6
451896:	8d 45 f0             	lea    -0x10(%ebp),%eax
451899:	50                   	push   %eax
45189a:	8b ce                	mov    %esi,%ecx
45189c:	e8 0d 9b fb ff       	call   0x40b3ae
4518a1:	66 81 7d f0 ff 7f    	cmpw   $0x7fff,-0x10(%ebp)
4518a7:	75 10                	jne    0x4518b9
4518a9:	8d 45 e8             	lea    -0x18(%ebp),%eax
4518ac:	50                   	push   %eax
4518ad:	8b ce                	mov    %esi,%ecx
4518af:	e8 3d 9b fb ff       	call   0x40b3f1
4518b4:	8b 7d e8             	mov    -0x18(%ebp),%edi
4518b7:	eb 1a                	jmp    0x4518d3
4518b9:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
4518bd:	8b f8                	mov    %eax,%edi
4518bf:	81 e7 00 80 ff ff    	and    $0xffff8000,%edi
4518c5:	c1 e7 10             	shl    $0x10,%edi
4518c8:	0b f8                	or     %eax,%edi
4518ca:	81 e7 ff 7f ff ff    	and    $0xffff7fff,%edi
4518d0:	89 7d e8             	mov    %edi,-0x18(%ebp)
4518d3:	85 ff                	test   %edi,%edi
4518d5:	78 20                	js     0x4518f7
4518d7:	8b 45 10             	mov    0x10(%ebp),%eax
4518da:	85 c0                	test   %eax,%eax
4518dc:	0f 84 36 01 00 00    	je     0x451a18
4518e2:	89 38                	mov    %edi,(%eax)
4518e4:	33 c0                	xor    %eax,%eax
4518e6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4518e9:	5f                   	pop    %edi
4518ea:	5e                   	pop    %esi
4518eb:	5b                   	pop    %ebx
4518ec:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4518f3:	c9                   	leave
4518f4:	c2 0c 00             	ret    $0xc
4518f7:	66 39 5d f0          	cmp    %bx,-0x10(%ebp)
4518fb:	0f 85 97 00 00 00    	jne    0x451998
451901:	8d 45 ec             	lea    -0x14(%ebp),%eax
451904:	50                   	push   %eax
451905:	56                   	push   %esi
451906:	e8 a4 f2 ff ff       	call   0x450baf
45190b:	8b d8                	mov    %eax,%ebx
45190d:	85 db                	test   %ebx,%ebx
45190f:	75 0a                	jne    0x45191b
451911:	ff 76 14             	push   0x14(%esi)
451914:	6a 06                	push   $0x6
451916:	e9 02 01 00 00       	jmp    0x451a1d
45191b:	8b 43 08             	mov    0x8(%ebx),%eax
45191e:	8b c8                	mov    %eax,%ecx
451920:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
451926:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
451929:	74 4c                	je     0x451977
45192b:	85 c0                	test   %eax,%eax
45192d:	78 0a                	js     0x451939
45192f:	ff 76 14             	push   0x14(%esi)
451932:	6a 07                	push   $0x7
451934:	e9 e4 00 00 00       	jmp    0x451a1d
451939:	83 7e 3c 00          	cmpl   $0x0,0x3c(%esi)
45193d:	75 27                	jne    0x451966
45193f:	6a 1c                	push   $0x1c
451941:	e8 0f e7 fe ff       	call   0x440055
451946:	59                   	pop    %ecx
451947:	89 45 e4             	mov    %eax,-0x1c(%ebp)
45194a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
45194e:	85 c0                	test   %eax,%eax
451950:	74 0b                	je     0x45195d
451952:	6a 0a                	push   $0xa
451954:	8b c8                	mov    %eax,%ecx
451956:	e8 86 cf fe ff       	call   0x43e8e1
45195b:	eb 02                	jmp    0x45195f
45195d:	33 c0                	xor    %eax,%eax
45195f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
451963:	89 46 3c             	mov    %eax,0x3c(%esi)
451966:	8b 4e 3c             	mov    0x3c(%esi),%ecx
451969:	8b 7d ec             	mov    -0x14(%ebp),%edi
45196c:	53                   	push   %ebx
45196d:	e8 f3 cf fe ff       	call   0x43e965
451972:	89 38                	mov    %edi,(%eax)
451974:	8b 7d e8             	mov    -0x18(%ebp),%edi
451977:	8b ce                	mov    %esi,%ecx
451979:	e8 14 fd ff ff       	call   0x451692
45197e:	8b 46 34             	mov    0x34(%esi),%eax
451981:	6a 01                	push   $0x1
451983:	8d 48 01             	lea    0x1(%eax),%ecx
451986:	53                   	push   %ebx
451987:	89 4e 34             	mov    %ecx,0x34(%esi)
45198a:	8b 4e 38             	mov    0x38(%esi),%ecx
45198d:	50                   	push   %eax
45198e:	e8 e2 b4 fe ff       	call   0x43ce75
451993:	8b 45 ec             	mov    -0x14(%ebp),%eax
451996:	eb 47                	jmp    0x4519df
451998:	8b c7                	mov    %edi,%eax
45199a:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
45199f:	23 c7                	and    %edi,%eax
4519a1:	74 75                	je     0x451a18
4519a3:	8b 4e 38             	mov    0x38(%esi),%ecx
4519a6:	8b 51 08             	mov    0x8(%ecx),%edx
4519a9:	4a                   	dec    %edx
4519aa:	3b c2                	cmp    %edx,%eax
4519ac:	77 6a                	ja     0x451a18
4519ae:	50                   	push   %eax
4519af:	e8 42 39 fc ff       	call   0x4152f6
4519b4:	8b 4e 3c             	mov    0x3c(%esi),%ecx
4519b7:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
4519bb:	85 c9                	test   %ecx,%ecx
4519bd:	8b d8                	mov    %eax,%ebx
4519bf:	74 13                	je     0x4519d4
4519c1:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4519c4:	50                   	push   %eax
4519c5:	53                   	push   %ebx
4519c6:	e8 32 ce fe ff       	call   0x43e7fd
4519cb:	85 c0                	test   %eax,%eax
4519cd:	74 05                	je     0x4519d4
4519cf:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4519d2:	eb 05                	jmp    0x4519d9
4519d4:	8b 43 08             	mov    0x8(%ebx),%eax
4519d7:	23 c7                	and    %edi,%eax
4519d9:	8b 7d e8             	mov    -0x18(%ebp),%edi
4519dc:	89 45 ec             	mov    %eax,-0x14(%ebp)
4519df:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4519e3:	74 15                	je     0x4519fa
4519e5:	ff 75 08             	push   0x8(%ebp)
4519e8:	8b cb                	mov    %ebx,%ecx
4519ea:	e8 e8 ef fe ff       	call   0x4409d7
4519ef:	85 c0                	test   %eax,%eax
4519f1:	0f 84 1a ff ff ff    	je     0x451911
4519f7:	8b 45 ec             	mov    -0x14(%ebp),%eax
4519fa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4519fd:	85 c9                	test   %ecx,%ecx
4519ff:	74 04                	je     0x451a05
451a01:	89 01                	mov    %eax,(%ecx)
451a03:	eb 03                	jmp    0x451a08
451a05:	89 46 10             	mov    %eax,0x10(%esi)
451a08:	8b 45 10             	mov    0x10(%ebp),%eax
451a0b:	85 c0                	test   %eax,%eax
451a0d:	74 02                	je     0x451a11
451a0f:	89 38                	mov    %edi,(%eax)
451a11:	8b c3                	mov    %ebx,%eax
451a13:	e9 ce fe ff ff       	jmp    0x4518e6
451a18:	ff 76 14             	push   0x14(%esi)
451a1b:	6a 05                	push   $0x5
451a1d:	e8 39 f7 ff ff       	call   0x45115b
451a22:	cc                   	int3
451a23:	8b 41 18             	mov    0x18(%ecx),%eax
451a26:	f7 d0                	not    %eax
451a28:	a8 01                	test   $0x1,%al
451a2a:	74 05                	je     0x451a31
451a2c:	e9 79 fd ff ff       	jmp    0x4517aa
451a31:	6a 00                	push   $0x0
451a33:	6a 00                	push   $0x0
451a35:	ff 74 24 0c          	push   0xc(%esp)
451a39:	e8 17 fe ff ff       	call   0x451855
451a3e:	c2 04 00             	ret    $0x4
451a41:	56                   	push   %esi
451a42:	8b f1                	mov    %ecx,%esi
451a44:	8b 46 18             	mov    0x18(%esi),%eax
451a47:	f7 d0                	not    %eax
451a49:	a8 01                	test   $0x1,%al
451a4b:	75 0a                	jne    0x451a57
451a4d:	ff 76 14             	push   0x14(%esi)
451a50:	6a 02                	push   $0x2
451a52:	e8 04 f7 ff ff       	call   0x45115b
451a57:	57                   	push   %edi
451a58:	6a 00                	push   $0x0
451a5a:	8b ce                	mov    %esi,%ecx
451a5c:	e8 45 fc ff ff       	call   0x4516a6
451a61:	8b 7c 24 0c          	mov    0xc(%esp),%edi
451a65:	85 ff                	test   %edi,%edi
451a67:	75 0a                	jne    0x451a73
451a69:	57                   	push   %edi
451a6a:	8b ce                	mov    %esi,%ecx
451a6c:	e8 46 97 fb ff       	call   0x40b1b7
451a71:	eb 62                	jmp    0x451ad5
451a73:	8b 4e 38             	mov    0x38(%esi),%ecx
451a76:	53                   	push   %ebx
451a77:	57                   	push   %edi
451a78:	e8 e8 ce fe ff       	call   0x43e965
451a7d:	8b 18                	mov    (%eax),%ebx
451a7f:	85 db                	test   %ebx,%ebx
451a81:	74 23                	je     0x451aa6
451a83:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
451a88:	3b d8                	cmp    %eax,%ebx
451a8a:	8b ce                	mov    %esi,%ecx
451a8c:	73 08                	jae    0x451a96
451a8e:	53                   	push   %ebx
451a8f:	e8 23 97 fb ff       	call   0x40b1b7
451a94:	eb 3e                	jmp    0x451ad4
451a96:	50                   	push   %eax
451a97:	e8 1b 97 fb ff       	call   0x40b1b7
451a9c:	53                   	push   %ebx
451a9d:	8b ce                	mov    %esi,%ecx
451a9f:	e8 8a 97 fb ff       	call   0x40b22e
451aa4:	eb 2e                	jmp    0x451ad4
451aa6:	8b 07                	mov    (%edi),%eax
451aa8:	8b cf                	mov    %edi,%ecx
451aaa:	ff 10                	call   *(%eax)
451aac:	50                   	push   %eax
451aad:	8b ce                	mov    %esi,%ecx
451aaf:	e8 f6 fc ff ff       	call   0x4517aa
451ab4:	8b ce                	mov    %esi,%ecx
451ab6:	e8 d7 fb ff ff       	call   0x451692
451abb:	8b 4e 38             	mov    0x38(%esi),%ecx
451abe:	57                   	push   %edi
451abf:	e8 a1 ce fe ff       	call   0x43e965
451ac4:	8b 4e 34             	mov    0x34(%esi),%ecx
451ac7:	89 08                	mov    %ecx,(%eax)
451ac9:	ff 46 34             	incl   0x34(%esi)
451acc:	8b 07                	mov    (%edi),%eax
451ace:	56                   	push   %esi
451acf:	8b cf                	mov    %edi,%ecx
451ad1:	ff 50 08             	call   *0x8(%eax)
451ad4:	5b                   	pop    %ebx
451ad5:	5f                   	pop    %edi
451ad6:	5e                   	pop    %esi
451ad7:	c2 04 00             	ret    $0x4
451ada:	55                   	push   %ebp
451adb:	8b ec                	mov    %esp,%ebp
451add:	51                   	push   %ecx
451ade:	51                   	push   %ecx
451adf:	56                   	push   %esi
451ae0:	8b f1                	mov    %ecx,%esi
451ae2:	f6 46 18 01          	testb  $0x1,0x18(%esi)
451ae6:	57                   	push   %edi
451ae7:	75 07                	jne    0x451af0
451ae9:	ff 76 14             	push   0x14(%esi)
451aec:	6a 04                	push   $0x4
451aee:	eb 50                	jmp    0x451b40
451af0:	8d 45 fc             	lea    -0x4(%ebp),%eax
451af3:	50                   	push   %eax
451af4:	8d 45 f8             	lea    -0x8(%ebp),%eax
451af7:	50                   	push   %eax
451af8:	ff 75 08             	push   0x8(%ebp)
451afb:	8b ce                	mov    %esi,%ecx
451afd:	e8 53 fd ff ff       	call   0x451855
451b02:	85 c0                	test   %eax,%eax
451b04:	75 3f                	jne    0x451b45
451b06:	8b 4e 38             	mov    0x38(%esi),%ecx
451b09:	8b 41 08             	mov    0x8(%ecx),%eax
451b0c:	48                   	dec    %eax
451b0d:	39 45 fc             	cmp    %eax,-0x4(%ebp)
451b10:	76 07                	jbe    0x451b19
451b12:	ff 76 14             	push   0x14(%esi)
451b15:	6a 05                	push   $0x5
451b17:	eb 27                	jmp    0x451b40
451b19:	ff 75 fc             	push   -0x4(%ebp)
451b1c:	e8 d5 37 fc ff       	call   0x4152f6
451b21:	8b f8                	mov    %eax,%edi
451b23:	85 ff                	test   %edi,%edi
451b25:	74 62                	je     0x451b89
451b27:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
451b2b:	74 5c                	je     0x451b89
451b2d:	ff 75 08             	push   0x8(%ebp)
451b30:	8b cf                	mov    %edi,%ecx
451b32:	e8 c7 ee fe ff       	call   0x4409fe
451b37:	85 c0                	test   %eax,%eax
451b39:	75 4e                	jne    0x451b89
451b3b:	ff 76 14             	push   0x14(%esi)
451b3e:	6a 06                	push   $0x6
451b40:	e8 16 f6 ff ff       	call   0x45115b
451b45:	8b c8                	mov    %eax,%ecx
451b47:	e8 32 ee fe ff       	call   0x44097e
451b4c:	8b f8                	mov    %eax,%edi
451b4e:	85 ff                	test   %edi,%edi
451b50:	75 05                	jne    0x451b57
451b52:	e8 c0 38 fe ff       	call   0x435417
451b57:	53                   	push   %ebx
451b58:	8b ce                	mov    %esi,%ecx
451b5a:	e8 33 fb ff ff       	call   0x451692
451b5f:	8b 46 34             	mov    0x34(%esi),%eax
451b62:	6a 01                	push   $0x1
451b64:	8d 48 01             	lea    0x1(%eax),%ecx
451b67:	57                   	push   %edi
451b68:	89 4e 34             	mov    %ecx,0x34(%esi)
451b6b:	8b 4e 38             	mov    0x38(%esi),%ecx
451b6e:	50                   	push   %eax
451b6f:	e8 01 b3 fe ff       	call   0x43ce75
451b74:	8b 45 f8             	mov    -0x8(%ebp),%eax
451b77:	8b 5e 10             	mov    0x10(%esi),%ebx
451b7a:	89 46 10             	mov    %eax,0x10(%esi)
451b7d:	8b 07                	mov    (%edi),%eax
451b7f:	56                   	push   %esi
451b80:	8b cf                	mov    %edi,%ecx
451b82:	ff 50 08             	call   *0x8(%eax)
451b85:	89 5e 10             	mov    %ebx,0x10(%esi)
451b88:	5b                   	pop    %ebx
451b89:	8b c7                	mov    %edi,%eax
451b8b:	5f                   	pop    %edi
451b8c:	5e                   	pop    %esi
451b8d:	c9                   	leave
451b8e:	c2 04 00             	ret    $0x4
451b91:	b8 d8 0b 49 00       	mov    $0x490bd8,%eax
451b96:	c3                   	ret
451b97:	56                   	push   %esi
451b98:	8b f1                	mov    %ecx,%esi
451b9a:	e8 9a 22 ff ff       	call   0x443e39
451b9f:	83 66 50 00          	andl   $0x0,0x50(%esi)
451ba3:	8b c6                	mov    %esi,%eax
451ba5:	5e                   	pop    %esi
451ba6:	c3                   	ret
451ba7:	56                   	push   %esi
451ba8:	8b 74 24 08          	mov    0x8(%esp),%esi
451bac:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
451bb0:	75 0e                	jne    0x451bc0
451bb2:	6a 08                	push   $0x8
451bb4:	e8 42 2d ff ff       	call   0x4448fb
451bb9:	c7 46 28 8c af 48 00 	movl   $0x48af8c,0x28(%esi)
451bc0:	8b 46 20             	mov    0x20(%esi),%eax
451bc3:	a9 00 00 80 00       	test   $0x800000,%eax
451bc8:	74 0c                	je     0x451bd6
451bca:	80 4e 2d 02          	orb    $0x2,0x2d(%esi)
451bce:	25 ff ff 7f ff       	and    $0xff7fffff,%eax
451bd3:	89 46 20             	mov    %eax,0x20(%esi)
451bd6:	33 c0                	xor    %eax,%eax
451bd8:	40                   	inc    %eax
451bd9:	5e                   	pop    %esi
451bda:	c2 04 00             	ret    $0x4
451bdd:	56                   	push   %esi
451bde:	57                   	push   %edi
451bdf:	8b f9                	mov    %ecx,%edi
451be1:	e8 66 3b ff ff       	call   0x44574c
451be6:	8b f0                	mov    %eax,%esi
451be8:	85 f6                	test   %esi,%esi
451bea:	74 16                	je     0x451c02
451bec:	8b ce                	mov    %esi,%ecx
451bee:	e8 89 eb 00 00       	call   0x46077c
451bf3:	3b c7                	cmp    %edi,%eax
451bf5:	75 0b                	jne    0x451c02
451bf7:	6a 01                	push   $0x1
451bf9:	6a 00                	push   $0x0
451bfb:	8b ce                	mov    %esi,%ecx
451bfd:	e8 81 eb 00 00       	call   0x460783
451c02:	8b cf                	mov    %edi,%ecx
451c04:	5f                   	pop    %edi
451c05:	5e                   	pop    %esi