450990:	6a 00                	push   $0x0
450992:	ff 50 50             	call   *0x50(%eax)
450995:	8b 07                	mov    (%edi),%eax
450997:	89 46 28             	mov    %eax,0x28(%esi)
45099a:	8b 46 2c             	mov    0x2c(%esi),%eax
45099d:	2b 46 28             	sub    0x28(%esi),%eax
4509a0:	5f                   	pop    %edi
4509a1:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4509a4:	5e                   	pop    %esi
4509a5:	5b                   	pop    %ebx
4509a6:	73 09                	jae    0x4509b1
4509a8:	6a 00                	push   $0x0
4509aa:	6a 03                	push   $0x3
4509ac:	e8 aa 07 00 00       	call   0x45115b
4509b1:	c9                   	leave
4509b2:	c2 04 00             	ret    $0x4
4509b5:	8b 01                	mov    (%ecx),%eax
4509b7:	c3                   	ret
4509b8:	55                   	push   %ebp
4509b9:	8b ec                	mov    %esp,%ebp
4509bb:	51                   	push   %ecx
4509bc:	51                   	push   %ecx
4509bd:	56                   	push   %esi
4509be:	8b 75 0c             	mov    0xc(%ebp),%esi
4509c1:	57                   	push   %edi
4509c2:	8b 7d 08             	mov    0x8(%ebp),%edi
4509c5:	8d 45 0f             	lea    0xf(%ebp),%eax
4509c8:	50                   	push   %eax
4509c9:	8b cf                	mov    %edi,%ecx
4509cb:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
4509d1:	e8 09 a9 fb ff       	call   0x40b2df
4509d6:	80 7d 0f ff          	cmpb   $0xff,0xf(%ebp)
4509da:	72 2a                	jb     0x450a06
4509dc:	8d 45 0a             	lea    0xa(%ebp),%eax
4509df:	50                   	push   %eax
4509e0:	8b cf                	mov    %edi,%ecx
4509e2:	e8 c7 a9 fb ff       	call   0x40b3ae
4509e7:	66 81 7d 0a fe ff    	cmpw   $0xfffe,0xa(%ebp)
4509ed:	75 2c                	jne    0x450a1b
4509ef:	8d 45 0f             	lea    0xf(%ebp),%eax
4509f2:	50                   	push   %eax
4509f3:	8b cf                	mov    %edi,%ecx
4509f5:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
4509fb:	e8 df a8 fb ff       	call   0x40b2df
450a00:	80 7d 0f ff          	cmpb   $0xff,0xf(%ebp)
450a04:	73 0a                	jae    0x450a10
450a06:	0f b6 45 0f          	movzbl 0xf(%ebp),%eax
450a0a:	5f                   	pop    %edi
450a0b:	5e                   	pop    %esi
450a0c:	c9                   	leave
450a0d:	c2 08 00             	ret    $0x8
450a10:	8d 45 0a             	lea    0xa(%ebp),%eax
450a13:	50                   	push   %eax
450a14:	8b cf                	mov    %edi,%ecx
450a16:	e8 93 a9 fb ff       	call   0x40b3ae
450a1b:	66 81 7d 0a ff ff    	cmpw   $0xffff,0xa(%ebp)
450a21:	73 06                	jae    0x450a29
450a23:	0f b7 45 0a          	movzwl 0xa(%ebp),%eax
450a27:	eb e1                	jmp    0x450a0a
450a29:	8d 45 0c             	lea    0xc(%ebp),%eax
450a2c:	50                   	push   %eax
450a2d:	8b cf                	mov    %edi,%ecx
450a2f:	e8 bd a9 fb ff       	call   0x40b3f1
450a34:	8b 45 0c             	mov    0xc(%ebp),%eax
450a37:	83 f8 ff             	cmp    $0xffffffff,%eax
450a3a:	72 ce                	jb     0x450a0a
450a3c:	8d 45 f8             	lea    -0x8(%ebp),%eax
450a3f:	50                   	push   %eax
450a40:	8b cf                	mov    %edi,%ecx
450a42:	e8 1f a9 fb ff       	call   0x40b366
450a47:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
450a4b:	77 0a                	ja     0x450a57
450a4d:	8b 45 f8             	mov    -0x8(%ebp),%eax
450a50:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
450a55:	76 b3                	jbe    0x450a0a
450a57:	6a 00                	push   $0x0
450a59:	6a 01                	push   $0x1
450a5b:	e8 fb 06 00 00       	call   0x45115b
450a60:	cc                   	int3
450a61:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
450a66:	53                   	push   %ebx
450a67:	56                   	push   %esi
450a68:	57                   	push   %edi
450a69:	8b 7c 24 10          	mov    0x10(%esp),%edi
450a6d:	be ff 00 00 00       	mov    $0xff,%esi
450a72:	74 14                	je     0x450a88
450a74:	56                   	push   %esi
450a75:	8b cf                	mov    %edi,%ecx
450a77:	e8 7f a6 fb ff       	call   0x40b0fb
450a7c:	68 fe ff 00 00       	push   $0xfffe
450a81:	8b cf                	mov    %edi,%ecx
450a83:	e8 2f a7 fb ff       	call   0x40b1b7
450a88:	8b 5c 24 14          	mov    0x14(%esp),%ebx
450a8c:	3b de                	cmp    %esi,%ebx
450a8e:	8b cf                	mov    %edi,%ecx
450a90:	73 08                	jae    0x450a9a
450a92:	53                   	push   %ebx
450a93:	e8 63 a6 fb ff       	call   0x40b0fb
450a98:	eb 42                	jmp    0x450adc
450a9a:	56                   	push   %esi
450a9b:	e8 5b a6 fb ff       	call   0x40b0fb
450aa0:	81 fb fe ff 00 00    	cmp    $0xfffe,%ebx
450aa6:	8b cf                	mov    %edi,%ecx
450aa8:	73 08                	jae    0x450ab2
450aaa:	53                   	push   %ebx
450aab:	e8 07 a7 fb ff       	call   0x40b1b7
450ab0:	eb 2a                	jmp    0x450adc
450ab2:	68 ff ff 00 00       	push   $0xffff
450ab7:	e8 fb a6 fb ff       	call   0x40b1b7
450abc:	83 fb ff             	cmp    $0xffffffff,%ebx
450abf:	8b cf                	mov    %edi,%ecx
450ac1:	73 08                	jae    0x450acb
450ac3:	53                   	push   %ebx
450ac4:	e8 65 a7 fb ff       	call   0x40b22e
450ac9:	eb 11                	jmp    0x450adc
450acb:	6a ff                	push   $0xffffffff
450acd:	e8 5c a7 fb ff       	call   0x40b22e
450ad2:	6a 00                	push   $0x0
450ad4:	53                   	push   %ebx
450ad5:	8b cf                	mov    %edi,%ecx
450ad7:	e8 99 a6 fb ff       	call   0x40b175
450adc:	5f                   	pop    %edi
450add:	5e                   	pop    %esi
450ade:	5b                   	pop    %ebx
450adf:	c2 0c 00             	ret    $0xc
450ae2:	56                   	push   %esi
450ae3:	e8 19 ce 01 00       	call   0x46d901
450ae8:	6a 00                	push   $0x0
450aea:	8b f0                	mov    %eax,%esi
450aec:	e8 b5 da 01 00       	call   0x46e5a6
450af1:	8b 76 1c             	mov    0x1c(%esi),%esi
450af4:	eb 13                	jmp    0x450b09
450af6:	ff 36                	push   (%esi)
450af8:	ff 74 24 0c          	push   0xc(%esp)
450afc:	ff 15 ec 02 4b 00    	call   *0x4b02ec
450b02:	85 c0                	test   %eax,%eax
450b04:	74 07                	je     0x450b0d
450b06:	8b 76 14             	mov    0x14(%esi),%esi
450b09:	85 f6                	test   %esi,%esi
450b0b:	75 e9                	jne    0x450af6
450b0d:	6a 00                	push   $0x0
450b0f:	e8 f5 da 01 00       	call   0x46e609
450b14:	8b c6                	mov    %esi,%eax
450b16:	5e                   	pop    %esi
450b17:	c2 04 00             	ret    $0x4
450b1a:	b8 e9 31 48 00       	mov    $0x4831e9,%eax
450b1f:	e8 58 71 fc ff       	call   0x417c7c
450b24:	51                   	push   %ecx
450b25:	56                   	push   %esi
450b26:	57                   	push   %edi
450b27:	ff 15 fc 70 4a 00    	call   *0x4a70fc
450b2d:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
450b31:	8b f8                	mov    %eax,%edi
450b33:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
450b37:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
450b3b:	74 49                	je     0x450b86
450b3d:	ff 75 08             	push   0x8(%ebp)
450b40:	ff 15 90 03 4b 00    	call   *0x4b0390
450b46:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
450b4a:	81 fe 00 04 00 00    	cmp    $0x400,%esi
450b50:	7f 1c                	jg     0x450b6e
450b52:	56                   	push   %esi
450b53:	e8 a9 08 fb ff       	call   0x401401
450b58:	84 c0                	test   %al,%al
450b5a:	59                   	pop    %ecx
450b5b:	74 11                	je     0x450b6e
450b5d:	8b c6                	mov    %esi,%eax
450b5f:	83 c0 03             	add    $0x3,%eax
450b62:	83 e0 fc             	and    $0xfffffffc,%eax
450b65:	e8 86 5b fc ff       	call   0x4166f0
450b6a:	8b c4                	mov    %esp,%eax
450b6c:	eb 09                	jmp    0x450b77
450b6e:	56                   	push   %esi
450b6f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
450b72:	e8 d7 06 fb ff       	call   0x40124e
450b77:	57                   	push   %edi
450b78:	56                   	push   %esi
450b79:	ff 75 08             	push   0x8(%ebp)
450b7c:	50                   	push   %eax
450b7d:	e8 6d 58 fb ff       	call   0x4063ef
450b82:	85 c0                	test   %eax,%eax
450b84:	75 04                	jne    0x450b8a
450b86:	33 f6                	xor    %esi,%esi
450b88:	eb 08                	jmp    0x450b92
450b8a:	50                   	push   %eax
450b8b:	e8 52 ff ff ff       	call   0x450ae2
450b90:	8b f0                	mov    %eax,%esi
450b92:	8d 4d f0             	lea    -0x10(%ebp),%ecx
450b95:	e8 6d 07 fb ff       	call   0x401307
450b9a:	8b c6                	mov    %esi,%eax
450b9c:	8d 65 e8             	lea    -0x18(%ebp),%esp
450b9f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
450ba2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
450ba9:	5f                   	pop    %edi
450baa:	5e                   	pop    %esi
450bab:	c9                   	leave
450bac:	c2 04 00             	ret    $0x4
450baf:	55                   	push   %ebp
450bb0:	8b ec                	mov    %esp,%ebp
450bb2:	83 ec 44             	sub    $0x44,%esp
450bb5:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
450bba:	56                   	push   %esi
450bbb:	8b 75 0c             	mov    0xc(%ebp),%esi
450bbe:	85 f6                	test   %esi,%esi
450bc0:	89 45 fc             	mov    %eax,-0x4(%ebp)
450bc3:	74 4a                	je     0x450c0f
450bc5:	8b 4d 08             	mov    0x8(%ebp),%ecx
450bc8:	8d 45 0e             	lea    0xe(%ebp),%eax
450bcb:	50                   	push   %eax
450bcc:	e8 dd a7 fb ff       	call   0x40b3ae
450bd1:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
450bd5:	8b 4d 08             	mov    0x8(%ebp),%ecx
450bd8:	89 06                	mov    %eax,(%esi)
450bda:	8d 45 0e             	lea    0xe(%ebp),%eax
450bdd:	50                   	push   %eax
450bde:	e8 cb a7 fb ff       	call   0x40b3ae
450be3:	66 83 7d 0e 40       	cmpw   $0x40,0xe(%ebp)
450be8:	73 25                	jae    0x450c0f
450bea:	0f b7 75 0e          	movzwl 0xe(%ebp),%esi
450bee:	8b 4d 08             	mov    0x8(%ebp),%ecx
450bf1:	56                   	push   %esi
450bf2:	8d 45 bc             	lea    -0x44(%ebp),%eax
450bf5:	50                   	push   %eax
450bf6:	e8 2e fb ff ff       	call   0x450729
450bfb:	3b c6                	cmp    %esi,%eax
450bfd:	75 10                	jne    0x450c0f
450bff:	8d 45 bc             	lea    -0x44(%ebp),%eax
450c02:	50                   	push   %eax
450c03:	c6 44 35 bc 00       	movb   $0x0,-0x44(%ebp,%esi,1)
450c08:	e8 d5 fe ff ff       	call   0x450ae2
450c0d:	eb 02                	jmp    0x450c11
450c0f:	33 c0                	xor    %eax,%eax
450c11:	8b 4d fc             	mov    -0x4(%ebp),%ecx
450c14:	5e                   	pop    %esi
450c15:	e8 c4 6f fc ff       	call   0x417bde
450c1a:	c9                   	leave
450c1b:	c2 08 00             	ret    $0x8
450c1e:	56                   	push   %esi
450c1f:	8b f1                	mov    %ecx,%esi
450c21:	e8 30 fc ff ff       	call   0x450856
450c26:	83 66 24 00          	andl   $0x0,0x24(%esi)
450c2a:	5e                   	pop    %esi
450c2b:	c3                   	ret
450c2c:	55                   	push   %ebp
450c2d:	8b ec                	mov    %esp,%ebp
450c2f:	53                   	push   %ebx
450c30:	8b 5d 0c             	mov    0xc(%ebp),%ebx
450c33:	85 db                	test   %ebx,%ebx
450c35:	56                   	push   %esi
450c36:	8b f1                	mov    %ecx,%esi
450c38:	0f 84 99 00 00 00    	je     0x450cd7
450c3e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
450c42:	0f 84 8f 00 00 00    	je     0x450cd7
450c48:	8b 46 18             	mov    0x18(%esi),%eax
450c4b:	f7 d0                	not    %eax
450c4d:	a8 01                	test   $0x1,%al
450c4f:	75 0a                	jne    0x450c5b
450c51:	ff 76 14             	push   0x14(%esi)
450c54:	6a 02                	push   $0x2
450c56:	e8 00 05 00 00       	call   0x45115b
450c5b:	8b 46 28             	mov    0x28(%esi),%eax
450c5e:	57                   	push   %edi
450c5f:	8b 7e 2c             	mov    0x2c(%esi),%edi
450c62:	2b f8                	sub    %eax,%edi
450c64:	3b df                	cmp    %edi,%ebx
450c66:	73 02                	jae    0x450c6a
450c68:	8b fb                	mov    %ebx,%edi
450c6a:	57                   	push   %edi
450c6b:	ff 75 08             	push   0x8(%ebp)
450c6e:	50                   	push   %eax
450c6f:	e8 fc 6b fc ff       	call   0x417870
450c74:	01 7e 28             	add    %edi,0x28(%esi)
450c77:	01 7d 08             	add    %edi,0x8(%ebp)
450c7a:	83 c4 0c             	add    $0xc,%esp
450c7d:	2b df                	sub    %edi,%ebx
450c7f:	74 55                	je     0x450cd6
450c81:	8b ce                	mov    %esi,%ecx
450c83:	e8 ce fb ff ff       	call   0x450856
450c88:	33 d2                	xor    %edx,%edx
450c8a:	8b c3                	mov    %ebx,%eax
450c8c:	f7 76 20             	divl   0x20(%esi)
450c8f:	8b 4e 24             	mov    0x24(%esi),%ecx
450c92:	8b 01                	mov    (%ecx),%eax
450c94:	8b fb                	mov    %ebx,%edi
450c96:	2b fa                	sub    %edx,%edi
450c98:	57                   	push   %edi
450c99:	ff 75 08             	push   0x8(%ebp)
450c9c:	ff 50 38             	call   *0x38(%eax)
450c9f:	01 7d 08             	add    %edi,0x8(%ebp)
450ca2:	2b df                	sub    %edi,%ebx
450ca4:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
450ca8:	74 1a                	je     0x450cc4
450caa:	8b 4e 24             	mov    0x24(%esi),%ecx
450cad:	8b 11                	mov    (%ecx),%edx
450caf:	8d 46 2c             	lea    0x2c(%esi),%eax
450cb2:	50                   	push   %eax
450cb3:	8d 7e 30             	lea    0x30(%esi),%edi
450cb6:	57                   	push   %edi
450cb7:	ff 76 20             	push   0x20(%esi)
450cba:	6a 01                	push   $0x1
450cbc:	ff 52 50             	call   *0x50(%edx)
450cbf:	8b 07                	mov    (%edi),%eax
450cc1:	89 46 28             	mov    %eax,0x28(%esi)
450cc4:	53                   	push   %ebx
450cc5:	ff 75 08             	push   0x8(%ebp)
450cc8:	ff 76 28             	push   0x28(%esi)
450ccb:	e8 a0 6b fc ff       	call   0x417870
450cd0:	83 c4 0c             	add    $0xc,%esp
450cd3:	01 5e 28             	add    %ebx,0x28(%esi)
450cd6:	5f                   	pop    %edi
450cd7:	5e                   	pop    %esi
450cd8:	5b                   	pop    %ebx
450cd9:	5d                   	pop    %ebp
450cda:	c2 08 00             	ret    $0x8
450cdd:	56                   	push   %esi
450cde:	57                   	push   %edi
450cdf:	8b 7c 24 0c          	mov    0xc(%esp),%edi
450ce3:	b8 ff ff 00 00       	mov    $0xffff,%eax
450ce8:	3b f8                	cmp    %eax,%edi
450cea:	8b f1                	mov    %ecx,%esi
450cec:	73 08                	jae    0x450cf6
450cee:	57                   	push   %edi
450cef:	e8 c3 a4 fb ff       	call   0x40b1b7
450cf4:	eb 0e                	jmp    0x450d04
450cf6:	50                   	push   %eax
450cf7:	e8 bb a4 fb ff       	call   0x40b1b7
450cfc:	57                   	push   %edi
450cfd:	8b ce                	mov    %esi,%ecx
450cff:	e8 2a a5 fb ff       	call   0x40b22e
450d04:	5f                   	pop    %edi
450d05:	5e                   	pop    %esi
450d06:	c2 04 00             	ret    $0x4
450d09:	55                   	push   %ebp
450d0a:	8b ec                	mov    %esp,%ebp
450d0c:	51                   	push   %ecx
450d0d:	56                   	push   %esi
450d0e:	8d 45 fe             	lea    -0x2(%ebp),%eax
450d11:	50                   	push   %eax
450d12:	8b f1                	mov    %ecx,%esi
450d14:	e8 95 a6 fb ff       	call   0x40b3ae
450d19:	66 81 7d fe ff ff    	cmpw   $0xffff,-0x2(%ebp)
450d1f:	74 06                	je     0x450d27
450d21:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
450d25:	eb 0e                	jmp    0x450d35
450d27:	8d 45 fc             	lea    -0x4(%ebp),%eax
450d2a:	50                   	push   %eax
450d2b:	8b ce                	mov    %esi,%ecx
450d2d:	e8 bf a6 fb ff       	call   0x40b3f1
450d32:	8b 45 fc             	mov    -0x4(%ebp),%eax
450d35:	5e                   	pop    %esi