438c59:	c7 45 ec 03 00 00 00 	movl   $0x3,-0x14(%ebp)
438c60:	e9 82 00 00 00       	jmp    0x438ce7
438c65:	83 fe 01             	cmp    $0x1,%esi
438c68:	74 28                	je     0x438c92
438c6a:	83 fe 03             	cmp    $0x3,%esi
438c6d:	74 23                	je     0x438c92
438c6f:	8b 45 24             	mov    0x24(%ebp),%eax
438c72:	53                   	push   %ebx
438c73:	83 c0 0c             	add    $0xc,%eax
438c76:	50                   	push   %eax
438c77:	6a 1f                	push   $0x1f
438c79:	6a 01                	push   $0x1
438c7b:	8d 45 14             	lea    0x14(%ebp),%eax
438c7e:	50                   	push   %eax
438c7f:	8d 45 0c             	lea    0xc(%ebp),%eax
438c82:	50                   	push   %eax
438c83:	ff 75 f0             	push   -0x10(%ebp)
438c86:	e8 17 a6 ff ff       	call   0x4332a2
438c8b:	83 c4 1c             	add    $0x1c,%esp
438c8e:	09 07                	or     %eax,(%edi)
438c90:	eb 55                	jmp    0x438ce7
438c92:	8b 75 24             	mov    0x24(%ebp),%esi
438c95:	8d 45 14             	lea    0x14(%ebp),%eax
438c98:	53                   	push   %ebx
438c99:	83 c6 10             	add    $0x10,%esi
438c9c:	56                   	push   %esi
438c9d:	6a 0c                	push   $0xc
438c9f:	6a 01                	push   $0x1
438ca1:	50                   	push   %eax
438ca2:	8d 45 0c             	lea    0xc(%ebp),%eax
438ca5:	50                   	push   %eax
438ca6:	ff 75 f0             	push   -0x10(%ebp)
438ca9:	e8 f4 a5 ff ff       	call   0x4332a2
438cae:	09 07                	or     %eax,(%edi)
438cb0:	83 c4 1c             	add    $0x1c,%esp
438cb3:	ff 0e                	decl   (%esi)
438cb5:	eb 30                	jmp    0x438ce7
438cb7:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
438cbb:	75 08                	jne    0x438cc5
438cbd:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438cc0:	e8 d0 37 fe ff       	call   0x41c495
438cc5:	8b 03                	mov    (%ebx),%eax
438cc7:	ff 75 12             	push   0x12(%ebp)
438cca:	6a 48                	push   $0x48
438ccc:	8b 70 10             	mov    0x10(%eax),%esi
438ccf:	8b ce                	mov    %esi,%ecx
438cd1:	ff 15 54 43 49 00    	call   *0x494354
438cd7:	8b cb                	mov    %ebx,%ecx
438cd9:	ff d6                	call   *%esi
438cdb:	84 c0                	test   %al,%al
438cdd:	74 18                	je     0x438cf7
438cdf:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438ce2:	e8 e8 20 fe ff       	call   0x41adcf
438ce7:	8d 45 14             	lea    0x14(%ebp),%eax
438cea:	50                   	push   %eax
438ceb:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438cee:	e8 01 7f fe ff       	call   0x420bf4
438cf3:	84 c0                	test   %al,%al
438cf5:	74 c0                	je     0x438cb7
438cf7:	8d 45 14             	lea    0x14(%ebp),%eax
438cfa:	50                   	push   %eax
438cfb:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438cfe:	e8 f1 7e fe ff       	call   0x420bf4
438d03:	84 c0                	test   %al,%al
438d05:	75 61                	jne    0x438d68
438d07:	38 45 10             	cmp    %al,0x10(%ebp)
438d0a:	75 08                	jne    0x438d14
438d0c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438d0f:	e8 81 37 fe ff       	call   0x41c495
438d14:	8b 03                	mov    (%ebx),%eax
438d16:	6a 00                	push   $0x0
438d18:	ff 75 12             	push   0x12(%ebp)
438d1b:	8b 70 38             	mov    0x38(%eax),%esi
438d1e:	8b ce                	mov    %esi,%ecx
438d20:	ff 15 54 43 49 00    	call   *0x494354
438d26:	8b cb                	mov    %ebx,%ecx
438d28:	ff d6                	call   *%esi
438d2a:	3c 3a                	cmp    $0x3a,%al
438d2c:	74 32                	je     0x438d60
438d2e:	3c 2c                	cmp    $0x2c,%al
438d30:	74 2e                	je     0x438d60
438d32:	3c 2f                	cmp    $0x2f,%al
438d34:	75 32                	jne    0x438d68
438d36:	eb 28                	jmp    0x438d60
438d38:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
438d3c:	75 08                	jne    0x438d46
438d3e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438d41:	e8 4f 37 fe ff       	call   0x41c495
438d46:	8b 03                	mov    (%ebx),%eax
438d48:	ff 75 12             	push   0x12(%ebp)
438d4b:	6a 48                	push   $0x48
438d4d:	8b 70 10             	mov    0x10(%eax),%esi
438d50:	8b ce                	mov    %esi,%ecx
438d52:	ff 15 54 43 49 00    	call   *0x494354
438d58:	8b cb                	mov    %ebx,%ecx
438d5a:	ff d6                	call   *%esi
438d5c:	84 c0                	test   %al,%al
438d5e:	74 18                	je     0x438d78
438d60:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438d63:	e8 67 20 fe ff       	call   0x41adcf
438d68:	8d 45 14             	lea    0x14(%ebp),%eax
438d6b:	50                   	push   %eax
438d6c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438d6f:	e8 80 7e fe ff       	call   0x420bf4
438d74:	84 c0                	test   %al,%al
438d76:	74 c0                	je     0x438d38
438d78:	8d 45 14             	lea    0x14(%ebp),%eax
438d7b:	50                   	push   %eax
438d7c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438d7f:	e8 70 7e fe ff       	call   0x420bf4
438d84:	84 c0                	test   %al,%al
438d86:	74 08                	je     0x438d90
438d88:	83 0f 02             	orl    $0x2,(%edi)
438d8b:	e9 ce 00 00 00       	jmp    0x438e5e
438d90:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
438d94:	75 08                	jne    0x438d9e
438d96:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438d99:	e8 f7 36 fe ff       	call   0x41c495
438d9e:	8b 03                	mov    (%ebx),%eax
438da0:	ff 75 12             	push   0x12(%ebp)
438da3:	6a 04                	push   $0x4
438da5:	8b 70 10             	mov    0x10(%eax),%esi
438da8:	8b ce                	mov    %esi,%ecx
438daa:	ff 15 54 43 49 00    	call   *0x494354
438db0:	8b cb                	mov    %ebx,%ecx
438db2:	ff d6                	call   *%esi
438db4:	84 c0                	test   %al,%al
438db6:	75 27                	jne    0x438ddf
438db8:	83 7d ec 04          	cmpl   $0x4,-0x14(%ebp)
438dbc:	75 ca                	jne    0x438d88
438dbe:	ff 75 24             	push   0x24(%ebp)
438dc1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
438dc4:	8d 45 e0             	lea    -0x20(%ebp),%eax
438dc7:	57                   	push   %edi
438dc8:	ff 75 1c             	push   0x1c(%ebp)
438dcb:	ff 75 18             	push   0x18(%ebp)
438dce:	ff 75 14             	push   0x14(%ebp)
438dd1:	ff 75 10             	push   0x10(%ebp)
438dd4:	ff 75 0c             	push   0xc(%ebp)
438dd7:	50                   	push   %eax
438dd8:	e8 72 21 00 00       	call   0x43af4f
438ddd:	eb 74                	jmp    0x438e53
438ddf:	8b 45 ec             	mov    -0x14(%ebp),%eax
438de2:	83 f8 04             	cmp    $0x4,%eax
438de5:	75 25                	jne    0x438e0c
438de7:	8b 75 24             	mov    0x24(%ebp),%esi
438dea:	8d 45 14             	lea    0x14(%ebp),%eax
438ded:	53                   	push   %ebx
438dee:	83 c6 10             	add    $0x10,%esi
438df1:	56                   	push   %esi
438df2:	6a 0c                	push   $0xc
438df4:	6a 01                	push   $0x1
438df6:	50                   	push   %eax
438df7:	8d 45 0c             	lea    0xc(%ebp),%eax
438dfa:	50                   	push   %eax
438dfb:	ff 75 f0             	push   -0x10(%ebp)
438dfe:	e8 9f a4 ff ff       	call   0x4332a2
438e03:	09 07                	or     %eax,(%edi)
438e05:	83 c4 1c             	add    $0x1c,%esp
438e08:	ff 0e                	decl   (%esi)
438e0a:	eb 52                	jmp    0x438e5e
438e0c:	83 f8 03             	cmp    $0x3,%eax
438e0f:	75 23                	jne    0x438e34
438e11:	8b 45 24             	mov    0x24(%ebp),%eax
438e14:	53                   	push   %ebx
438e15:	83 c0 0c             	add    $0xc,%eax
438e18:	50                   	push   %eax
438e19:	6a 1f                	push   $0x1f
438e1b:	6a 01                	push   $0x1
438e1d:	8d 45 14             	lea    0x14(%ebp),%eax
438e20:	50                   	push   %eax
438e21:	8d 45 0c             	lea    0xc(%ebp),%eax
438e24:	50                   	push   %eax
438e25:	ff 75 f0             	push   -0x10(%ebp)
438e28:	e8 75 a4 ff ff       	call   0x4332a2
438e2d:	83 c4 1c             	add    $0x1c,%esp
438e30:	09 07                	or     %eax,(%edi)
438e32:	eb 2a                	jmp    0x438e5e
438e34:	ff 75 24             	push   0x24(%ebp)
438e37:	8b 4d f0             	mov    -0x10(%ebp),%ecx
438e3a:	8d 45 d8             	lea    -0x28(%ebp),%eax
438e3d:	57                   	push   %edi
438e3e:	ff 75 1c             	push   0x1c(%ebp)
438e41:	ff 75 18             	push   0x18(%ebp)
438e44:	ff 75 14             	push   0x14(%ebp)
438e47:	ff 75 10             	push   0x10(%ebp)
438e4a:	ff 75 0c             	push   0xc(%ebp)
438e4d:	50                   	push   %eax
438e4e:	e8 dc 21 00 00       	call   0x43b02f
438e53:	8b 08                	mov    (%eax),%ecx
438e55:	89 4d 0c             	mov    %ecx,0xc(%ebp)
438e58:	8b 40 04             	mov    0x4(%eax),%eax
438e5b:	89 45 10             	mov    %eax,0x10(%ebp)
438e5e:	8d 45 14             	lea    0x14(%ebp),%eax
438e61:	50                   	push   %eax
438e62:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438e65:	e8 8a 7d fe ff       	call   0x420bf4
438e6a:	84 c0                	test   %al,%al
438e6c:	74 03                	je     0x438e71
438e6e:	83 0f 01             	orl    $0x1,(%edi)
438e71:	8b 45 08             	mov    0x8(%ebp),%eax
438e74:	8b 4d 0c             	mov    0xc(%ebp),%ecx
438e77:	89 08                	mov    %ecx,(%eax)
438e79:	8b 4d 10             	mov    0x10(%ebp),%ecx
438e7c:	89 48 04             	mov    %ecx,0x4(%eax)
438e7f:	e8 8f 6b 00 00       	call   0x43fa13
438e84:	c2 20 00             	ret    $0x20
438e87:	55                   	push   %ebp
438e88:	8b ec                	mov    %esp,%ebp
438e8a:	ff 71 0c             	push   0xc(%ecx)
438e8d:	8d 45 14             	lea    0x14(%ebp),%eax
438e90:	6a 00                	push   $0x0
438e92:	50                   	push   %eax
438e93:	8d 45 0c             	lea    0xc(%ebp),%eax
438e96:	50                   	push   %eax
438e97:	e8 cb 4a ff ff       	call   0x42d967
438e9c:	8b c8                	mov    %eax,%ecx
438e9e:	83 c4 10             	add    $0x10,%esp
438ea1:	85 c9                	test   %ecx,%ecx
438ea3:	79 08                	jns    0x438ead
438ea5:	8b 45 20             	mov    0x20(%ebp),%eax
438ea8:	83 08 02             	orl    $0x2,(%eax)
438eab:	eb 08                	jmp    0x438eb5
438ead:	8b 45 24             	mov    0x24(%ebp),%eax
438eb0:	d1 f9                	sar    $1,%ecx
438eb2:	89 48 10             	mov    %ecx,0x10(%eax)
438eb5:	8b 45 08             	mov    0x8(%ebp),%eax
438eb8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
438ebb:	89 08                	mov    %ecx,(%eax)
438ebd:	8b 4d 10             	mov    0x10(%ebp),%ecx
438ec0:	89 48 04             	mov    %ecx,0x4(%eax)
438ec3:	5d                   	pop    %ebp
438ec4:	c2 20 00             	ret    $0x20
438ec7:	55                   	push   %ebp
438ec8:	8b ec                	mov    %esp,%ebp
438eca:	ff 71 0c             	push   0xc(%ecx)
438ecd:	8d 45 14             	lea    0x14(%ebp),%eax
438ed0:	6a 00                	push   $0x0
438ed2:	50                   	push   %eax
438ed3:	8d 45 0c             	lea    0xc(%ebp),%eax
438ed6:	50                   	push   %eax
438ed7:	e8 93 af fc ff       	call   0x403e6f
438edc:	8b c8                	mov    %eax,%ecx
438ede:	83 c4 10             	add    $0x10,%esp
438ee1:	85 c9                	test   %ecx,%ecx
438ee3:	79 08                	jns    0x438eed
438ee5:	8b 45 20             	mov    0x20(%ebp),%eax
438ee8:	83 08 02             	orl    $0x2,(%eax)
438eeb:	eb 08                	jmp    0x438ef5
438eed:	8b 45 24             	mov    0x24(%ebp),%eax
438ef0:	d1 f9                	sar    $1,%ecx
438ef2:	89 48 10             	mov    %ecx,0x10(%eax)
438ef5:	8b 45 08             	mov    0x8(%ebp),%eax
438ef8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
438efb:	89 08                	mov    %ecx,(%eax)
438efd:	8b 4d 10             	mov    0x10(%ebp),%ecx
438f00:	89 48 04             	mov    %ecx,0x4(%eax)
438f03:	5d                   	pop    %ebp
438f04:	c2 20 00             	ret    $0x20
438f07:	6a 0c                	push   $0xc
438f09:	b8 d4 25 49 00       	mov    $0x4925d4,%eax
438f0e:	e8 37 6b 00 00       	call   0x43fa4a
438f13:	8b f1                	mov    %ecx,%esi
438f15:	89 75 f0             	mov    %esi,-0x10(%ebp)
438f18:	8b 45 1c             	mov    0x1c(%ebp),%eax
438f1b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
438f1e:	ff 70 30             	push   0x30(%eax)
438f21:	e8 16 ff fe ff       	call   0x428e3c
438f26:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
438f2a:	8d 45 e8             	lea    -0x18(%ebp),%eax
438f2d:	50                   	push   %eax
438f2e:	e8 ca 5b ff ff       	call   0x42eafd
438f33:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
438f37:	8b d8                	mov    %eax,%ebx
438f39:	59                   	pop    %ecx
438f3a:	8d 4d e8             	lea    -0x18(%ebp),%ecx
438f3d:	e8 a5 64 fd ff       	call   0x40f3e7
438f42:	8b 4d 24             	mov    0x24(%ebp),%ecx
438f45:	8d 45 14             	lea    0x14(%ebp),%eax
438f48:	53                   	push   %ebx
438f49:	83 c1 08             	add    $0x8,%ecx
438f4c:	51                   	push   %ecx
438f4d:	6a 17                	push   $0x17
438f4f:	6a 00                	push   $0x0
438f51:	50                   	push   %eax
438f52:	8d 45 0c             	lea    0xc(%ebp),%eax
438f55:	50                   	push   %eax
438f56:	56                   	push   %esi
438f57:	e8 96 a1 ff ff       	call   0x4330f2
438f5c:	8b 7d 20             	mov    0x20(%ebp),%edi
438f5f:	83 c4 1c             	add    $0x1c,%esp
438f62:	09 07                	or     %eax,(%edi)
438f64:	75 53                	jne    0x438fb9
438f66:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
438f6a:	75 08                	jne    0x438f74
438f6c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438f6f:	e8 a3 cf ff ff       	call   0x435f17
438f74:	8b 03                	mov    (%ebx),%eax
438f76:	6a 00                	push   $0x0
438f78:	ff 75 12             	push   0x12(%ebp)
438f7b:	8b 70 38             	mov    0x38(%eax),%esi
438f7e:	8b ce                	mov    %esi,%ecx
438f80:	ff 15 54 43 49 00    	call   *0x494354
438f86:	8b cb                	mov    %ebx,%ecx
438f88:	ff d6                	call   *%esi
438f8a:	3c 3a                	cmp    $0x3a,%al
438f8c:	75 2b                	jne    0x438fb9
438f8e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438f91:	e8 ab ba ff ff       	call   0x434a41
438f96:	8b 45 24             	mov    0x24(%ebp),%eax
438f99:	53                   	push   %ebx
438f9a:	83 c0 04             	add    $0x4,%eax
438f9d:	50                   	push   %eax
438f9e:	6a 3b                	push   $0x3b
438fa0:	6a 00                	push   $0x0
438fa2:	8d 45 14             	lea    0x14(%ebp),%eax
438fa5:	50                   	push   %eax
438fa6:	8d 45 0c             	lea    0xc(%ebp),%eax
438fa9:	50                   	push   %eax
438faa:	ff 75 f0             	push   -0x10(%ebp)
438fad:	e8 40 a1 ff ff       	call   0x4330f2
438fb2:	83 c4 1c             	add    $0x1c,%esp
438fb5:	09 07                	or     %eax,(%edi)
438fb7:	eb 03                	jmp    0x438fbc
438fb9:	83 0f 02             	orl    $0x2,(%edi)
438fbc:	8b 07                	mov    (%edi),%eax
438fbe:	85 c0                	test   %eax,%eax
438fc0:	75 4e                	jne    0x439010
438fc2:	38 45 10             	cmp    %al,0x10(%ebp)
438fc5:	75 08                	jne    0x438fcf
438fc7:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438fca:	e8 48 cf ff ff       	call   0x435f17
438fcf:	8b 03                	mov    (%ebx),%eax
438fd1:	6a 00                	push   $0x0
438fd3:	ff 75 12             	push   0x12(%ebp)
438fd6:	8b 70 38             	mov    0x38(%eax),%esi
438fd9:	8b ce                	mov    %esi,%ecx
438fdb:	ff 15 54 43 49 00    	call   *0x494354
438fe1:	8b cb                	mov    %ebx,%ecx
438fe3:	ff d6                	call   *%esi
438fe5:	3c 3a                	cmp    $0x3a,%al
438fe7:	75 27                	jne    0x439010
438fe9:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438fec:	e8 50 ba ff ff       	call   0x434a41
438ff1:	53                   	push   %ebx
438ff2:	ff 75 24             	push   0x24(%ebp)
438ff5:	8d 45 14             	lea    0x14(%ebp),%eax
438ff8:	6a 3b                	push   $0x3b
438ffa:	6a 00                	push   $0x0
438ffc:	50                   	push   %eax